1.背景:statsmodels包是统计学开发的python包,专门处理统计检验和统计模型,所以statsmodel包有很完善的很漂亮的统计表格,较为友好,比如在输出逻辑回归时,sm包除了输出估计参数外,还能输出bse、t值、p值、置信区间等等,另一方面统计学家认为,不要人为的给样本赋权,因为有时给样本赋权和实际分布出现的了偏离,导致模型反而会通不过统计检验,所以sm包目前无法加权重。
而sklearn包中经过上面的研究可以加入权重,但是输出只有一个估计参数,没有其他统计检验的值,这样不便于查看统计检验指标,进行专业的判断。所以有必要将两种包进行重构,以sklearn包跑估计参数,接着用sm包里的底层代码根据估计参数,去检验其他的值。
2.探索sm包:
coef:模型参数,其中sklearn中选择penalty='none' and solver='newtom-cg'时,出来的系数与sm包完全一致。根据sm底层源码也显示其在计算最大似然估计时运用的牛顿法进行估计。(牛顿法需要用到Hessian矩阵)
std err:参数的标准误差,其计算基于Hessian矩阵的逆矩阵中的对角元素开方获得。
t:参数的t检验值,其等于参数/std err
P值:基于t检验计算出来的p值。

本文介绍了如何结合sklearn和statsmodels进行logistic回归分析。statsmodels提供了完整的统计检验信息,但无法添加权重,而sklearn可以加权重但缺乏详细统计信息。文章探讨了如何通过sklearn获取参数,然后利用statsmodels的底层代码计算标准误差、t值和p值,从而在sklearn模型中实现统计检验。
最低0.47元/天 解锁文章
2407

被折叠的 条评论
为什么被折叠?



