python统计分析——广义线性模型的评估

参考资料:用python动手学统计学

        残差是表现数据与模型不契合的程度的重要指标。

1、导入库

# 导入库
# 用于数值计算的库
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats
# 导入绘图的库
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 用于估计统计模型的库
import statsmodels.formula.api as smf
import statsmodels.api as sm

2、数据准备

# 读取数据
test_result=pd.read_csv(r"文件路径")
# 拟合模型
mod_glm=smf.glm('result~hours',data=test_result,family=sm.families.Binomial()).fit()

3、皮尔逊残差

二项式的皮尔逊残差的计算公式如下:

Pearson\, residuals=\frac{y-N\hat{p}}{\sqrt{N \hat{p}(1-\hat{p})}}

其中,y为响应变量(二值随机变量,即考试合格情况),N为试验次数,\hat{p}为估计的成功概率(由mod_glm.predict()得到的预测值)。

对于每个预测结果,试验次数都是1,所以皮尔逊残差如下:

Pearson\, residuals=\frac{y-N\hat{p}}{\sqrt{N \hat{p}(1-\hat{p})}}

4、皮尔逊残差的含义

        皮尔逊残差的分母中的N\hat{p}(1-\hat{p})就是二项分布的方差,它的平方根就是二项分布的标准差。y-\hat{p}为残差。残差除以分布的标准差,得到的就是皮尔逊残差。

        假设N不变,那么当p=0.5时,二项分布的方差Np(1-p)最大。当合格与不合格各占一半时,数据非常分散,此时预测值与实际值之间的差距看起来反而更小(易于接受)。当p=0.9时,预测的结果是基本合格,方差较小,此时预测值与实际值之间的差距看起来反而更大(难以接受)。这就是皮尔逊残差的含义。

        皮尔逊残差的平方和叫作皮尔逊卡方统计量。是模型契合度的指标。

5、计算皮尔逊残差

        按计算公式的计算代码如下:

# 预测的成功概率
pred=mod_glm.predict()
# 响应变量(合格情况)
y=test_result.result
# 皮尔逊残差
pearson_resid=(y-pred)/np.sqrt(pred*(1-pred))
pearson_resid

        从拟合的模型中直接获取皮尔逊残差

mod_glm.resid_pearson

结果如下:

        皮尔逊残差的平方和即为皮尔逊卡方统计量。

# 方法一
np.sum(mod_glm.resid_pearson**2)
# 方法二
mod_glm.pearson_chi2

6、模型偏差

        模型偏差(deviance)是评估模型契合度的指标。模型偏差越大,契合度越差。

        模型偏差用似然的方式表现了残差平方和,最大似然法所得的结果等于使得模型偏差最小的参数估计的结果。

        模型偏差的含义就是广义线性模型中的残差平方和。对两个模型偏差的差值进行检验的含义和方差分析相同。按模型偏差的定义,两个模型偏差的差值近似卡方分布。

        模型偏差的差值检验也叫做似然比检验。

        偏差残差的平方和就是模型偏差。偏差残差计算公式相对比较复杂,直接从拟合的模型中获取即可如下:

# 偏差残差
mod_glm.resid_deviance
# 模型偏差
np.sum(mod_glm.resid_deviance**2)

        当然和可以模型的summary结果中直接获取模型偏差。

mod_glm.summary().tables[0]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/267077.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AcWing 466. 回文日期

先贴个题目: 以及原题链接:466. 回文日期 - AcWing题库https://www.acwing.com/problem/content/468/ 这题乍一看有点恶心,如果枚举日期还要判断合法性,然后每个日期再判断是不是回文,即麻烦,时间复杂度又高…

day07_分类管理EasyExcel品牌管理

文章目录 1 分类管理1.1 菜单添加1.2 表结构介绍1.3 页面制作1.4 列表查询1.4.1 需求分析1.4.2 后端接口CategoryCategoryControllerCategoryServiceCategoryMapperCategoryMapper.xml 1.4.3 前端对接category.jscategory.vue 2 EasyExcel2.1 数据导入导出意义2.2 EasyExcel简介…

本地maven库缓存导入私库

为了加速编译代码,想将本地maven缓存导入内网私库使用。 脚本网上搜的 #!/bin/bash # copy and run this script to the root of the repository directory containing files # this script attempts to exclude uploading itself explicitly so the script name …

物体检测-系列教程19:YOLOV5 源码解析9 (Focus模块、Model类构造函数)

😎😎😎物体检测-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 13、Focus模块 13.1 基本流程 原始输入图像的格式为:tensor: float32[1,3,64…

Unity(第十八部)物理力学,碰撞,触发、关节和材质

1、重力 刚体组件 英文中文描述RigidBody刚体组件physics->rigidbody ,刚体组件使一个物体有了质量,重力等。,use gravity 勾选后,物体才会受到重力,会自动下落,取消勾选就不会。,&#xf…

Unity中URP下实现水体(水面反射)

文章目录 前言一、原理1、法一:使用立方体纹理 CubeMap,作为反射纹理使用2、法二:使用反射探针生成环境反射图,所谓反射的采样纹理 二、实现水面反射1、定义和申明CubeMap2、反射向量需要什么3、计算 N ⃗ \vec{N} N 4、计算 V ⃗…

【力扣白嫖日记】550.游戏玩法分析IV

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 550.游戏玩法分析IV 表:Activity 列名类型player_idintdevice_idintevent_datedategames_played…

C语言--修饰符(auto、extern、static)与变量(局部变量+全局变量)和函数的关系

其中extern功能和用法上,比较特殊。先了解extern修饰全局变量,我总结为以下几点 为了方便描述,我创建了一个工程,工程包含了两个源文件,main.c和database.c **1):database.c中使用extern时用来…

Facebook的元宇宙实践:数字化社交的新前景

近年来,元宇宙(Metaverse)这一概念备受瞩目,被认为是数字化社交的未来趋势之一。而在众多科技巨头中,Facebook(现更名为Meta)一直处于元宇宙发展的前沿。在本文中,我们将深入探讨Fac…

Cesium插件系列——3dtiles压平

本系列为自己基于cesium写的一套插件具体实现。 这里是根据Cesium提供的CustomShader来实现的。 在CustomShader的vertexShaderText里,需要定义vertexMain函数,例如下: struct VertexInput {Attributes attributes;FeatureIds featureIds;…

NX二次开发:ListingWindow窗口的应用

一、概述 在NX二次开发的学习中,浏览博客时发现看到[社恐猫]和[王牌飞行员_里海]这两篇博客中写道有关信息窗口内容的打印和将窗口内容保存为txt,个人人为在二次开发项目很有必要,因此做以下记录。 ListingWindow信息窗口发送信息四种位置类型 设置Listi…

C语言学生成绩信息管理系统【结构体+文本】

功能描述&#xff1a; 1、录入成绩 2、显示不及格学生信息 3、统计每档学生数量 4、总成绩统计 代码&#xff1a; #include<stdio.h>#define N 30//结构体&#xff1a;typedef struct STUDENT{char id[10];//学号char name[20];//姓名float score[3];//三门成绩,分别代…

用node或者vscode开启一个简单的本地server服务器,加载html网页

使用Live Server 想要加载本地html页面可以快速能让它在你本地浏览器中打开&#xff0c;可以有好多种方式&#xff0c;如果你有使用vscode&#xff0c;可以安装一个插件&#xff1a;Live Server&#xff0c;然后直接在vscode中直接右键就可以开启这个服务&#xff1a; 安装好之…

新一代湖仓集存储,多模型统一架构,高效挖掘数据价值

星环科技TDH一直致力于给用户带来高性能、高可靠的一站式大数据基础平台&#xff0c;满足对海量数据的存储和复杂业务的处理需求。 同时在易用性方面持续深耕&#xff0c;降低用户开发和运维成本&#xff0c;让数据处理平民化&#xff0c;助力用户以更便捷、高效的方式去挖掘数…

Springboot 项目读取yaml的配置文件信息给静态方法使用,以及通过配置 ResourceBundle 类读取config.properties

读取yaml 的配置文件 配置文件信息 iot_saas_tenement:user_id: 7........8d9bprivate_key: MII.......qQbj_url: http://4.....5:8088project_name: iot_s.......rojectdevice_name: te.....ice 创建一个类 ProxyProperties 读取配置文件信息&#xff0c;并对外提供get方法 …

PaddleOCR 高精度文字识别:丰富多样的前沿算法 | 开源日报 No.187

PaddlePaddle/PaddleOCR Stars: 34.1k License: Apache-2.0 PaddleOCR 是一个丰富、领先和实用的 OCR 工具库&#xff0c;旨在帮助开发者训练更好的模型并将其应用到实际场景中。该项目具有以下特点和优势&#xff1a; 支持多种 OCR 相关前沿算法提供产业级特色模型 PP-OCR、…

大数据毕业设计之前端04:管理系统为什么要自己实现图标组件

关键字&#xff1a;BuildAdmin、Icon、图标、Vue、ElementUI 前言 说到图标&#xff0c;在BuildAdmin中用到的地方很多。比如上一篇中的折叠图标&#xff0c;还有菜单栏图标、导航菜单栏图标等。常见的图标有&#xff1a;ElementUI图标、font-awesome、iconfont阿里图标以及本…

【数据库管理系统】Mysql 8.0.36入门级安装

下载地址 官方网址&#xff1a;MySQL 注意事项 建议不要安装最新版本&#xff0c;一般找mysql5.0或mysql8.0系列版本即可&#xff1b;mysq1官网有.zip和.msi两种安装形式&#xff1b;zip是压缩包&#xff0c;直接解压缩以后使用的&#xff0c;需要自己配置各种东西&#xff…

就业班 2401--3.1 Linux Day9--文件查找和压缩

一、文件查找与打包压缩 grep: 文件内容过滤 [rootqfedu.com ~]# grep root /etc/passwd #从/etc/passwd文件中过滤root字段 grep ^root root$ root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin 查找命令 [rootqfedu.com ~]# which ls ali…

MyBatis 学习(四)之 SQL 映射文件

目录 1 SQL 映射文件介绍 2 select 元素 3 insert 元素 4 update 和 delete 元素 5 sql 元素 6 parameterType 元素 7 resultType 元素 8 resultMap 元素&#xff08;重要&#xff09; 9 参考文档 1 SQL 映射文件介绍 映射器是 MyBatis 中最复杂并且是最重要的…