python 回归去掉共线性_Python计算方差膨胀因子VIF

本文探讨了在Python中进行线性回归时如何处理共线性问题,特别是通过计算方差膨胀因子(VIF)来诊断多重共线性。文章指出,直接使用`variance_inflation_factor`函数可能得到异常大的VIF值,原因是该函数在计算时未考虑截距项。解决方案是手动添加一列常数作为截距项,重新定义计算VIF的函数,从而得到正确的VIF值。
摘要由CSDN通过智能技术生成

方差扩大因子(variance inflation factor)简称VIF,是表征自变量观察值之间复共线性程度的数值。线性回归分析中,回归系数βj的估计量的方差为σ2Cjj,其中Cjj=(1-Rj)-1,称Cjj为βj的方差扩大因子,这里Rj为xj对其余p-1个自变量的复相关系数的平方,显然Cjj≥1,它的大小可以反映出自变量的观察值之间是否存在复共线性以及其程度如何,Cjj越大,复共线性越严重。(以上引自百度百科),更多关于多重共线性的内容,可自行查询资料,资料很多。

本文重点说一下用Python调用variance_inflation_factor计算VIF函数遇到的坑。

下面的定义函数中直接调用的variance_inflation_factor函数计算的VIF,得到的结果是不对的。

def 

v2-ef79cd63600f53a9adc1033cdd60dcbc_b.jpg
以上所用数据集都是经过预处理WOE转换过的

可以看到上边计算的VIF都异常的大(VIF大于10就认为存在严重多重共线性,严格一些大于5也认为存在多重共线性)。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值