Python 在使用variance_inflation_factor 做VIF多重共线性检验时,是否要加入常数项?

用一份数据跑回归,惯例先做了一下多重共线性的检验

参考网上的各种教程,大部分都是直接把自变量丢进去就可以出来结果

我的代码:

Python 在使用variance_inflation_factor 做VIF多重共线性检验时,是否要加入常数项?_第1张图片

 但这个结果和我拿spss跑回归得出来的VIF值完全不一样

python,只有自变量的VIF结果(左);spss,因变量+自变量跑回归中的VIF

Python 在使用variance_inflation_factor 做VIF多重共线性检验时,是否要加入常数项?_第2张图片Python 在使用variance_inflation_factor 做VIF多重共线性检验时,是否要加入常数项?_第3张图片

 同样的自变量,为什么会有这么大的差异?

然后我继续搜索多重共线性的文章,终于发现这篇里提到需要在df里加入一组常数项

利用Python进行VIF检验 - 知乎 (zhihu.com)

 于是我自己也加入了一个常数项

实验的结果——除了最后一列常数项,其他的和spss结果一模一样了

Python 在使用variance_inflation_factor 做VIF多重共线性检验时,是否要加入常数项?_第4张图片

 所以这是为什么?

你可能感兴趣的:(python,数据分析,线性回归)