青岛建站合作,百度免费推广平台,临夏建设网站,360网站怎么建设参考资料#xff1a;用python动手学统计学 残差是表现数据与模型不契合的程度的重要指标。
1、导入库
# 导入库
# 用于数值计算的库
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats
# 导入绘图的库
import matplotlib.pyplot as plt
i…参考资料用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_resultpd.read_csv(r文件路径)
# 拟合模型
mod_glmsmf.glm(result~hours,datatest_result,familysm.families.Binomial()).fit()
3、皮尔逊残差
二项式的皮尔逊残差的计算公式如下 其中y为响应变量二值随机变量即考试合格情况N为试验次数为估计的成功概率由mod_glm.predict()得到的预测值。
对于每个预测结果试验次数都是1所以皮尔逊残差如下 4、皮尔逊残差的含义 皮尔逊残差的分母中的就是二项分布的方差它的平方根就是二项分布的标准差。为残差。残差除以分布的标准差得到的就是皮尔逊残差。 假设N不变那么当p0.5时二项分布的方差Np(1-p)最大。当合格与不合格各占一半时数据非常分散此时预测值与实际值之间的差距看起来反而更小易于接受。当p0.9时预测的结果是基本合格方差较小此时预测值与实际值之间的差距看起来反而更大难以接受。这就是皮尔逊残差的含义。 皮尔逊残差的平方和叫作皮尔逊卡方统计量。是模型契合度的指标。
5、计算皮尔逊残差 按计算公式的计算代码如下
# 预测的成功概率
predmod_glm.predict()
# 响应变量合格情况
ytest_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]