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