0
在statsmodel计算VIF的代码如下:VIF计算在python statsmodel
k_vars = exog.shape[1]
x_i = exog[:, exog_idx]
mask = np.arange(k_vars) != exog_idx
x_noti = exog[:, mask]
r_squared_i = OLS(x_i, x_noti).fit().rsquared ## NO INTERCEPT
vif = 1./(1. - r_squared_i)
当拟合,它不包括一个截距。根据Wooldridge的“介绍性计量经济学(6ed)”,似乎应该包括拦截:“......在所有其他自变量(和包括拦截)上对Xj进行回归的R平方。”
statmodels错了吗?是否有另一个我可以检查的包?谢谢。
没有什么“错误”。这假设'exog'来自一个包含常数的回归模型,如果用户需要的话。请参阅statsmodels github上的几个相关问题。 IIRC,您可以将结果与SAS和Stata进行比较。 – user333700
是的,谢谢。答案已更新。 – iwbabn