python计算方差膨胀因子_Python计算方差膨胀因子VIF

方差扩大因子(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 checkVIF(df):

from statsmodels.stats.outliers_influence import variance_inflation_factor

name = df.columns

x = np.matrix(df)

VIF_list = [variance_inflation_factor(x,i) for i in range(x.shape[1])]

VIF = pd.DataFrame({'feature':name,"VIF":VIF_list})

max_VIF = max(VIF_list)

print(max_VIF)

return VIF以上所用数据集都是经过预处理WOE转换过的

可以看到上边计算的VIF都异常

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值