2017-02-09 60 views
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錯了嗎?是否有另一個我可以檢查的包?謝謝。

+0

沒有什麼「錯誤」。這假設'exog'來自一個包含常數的迴歸模型,如果用戶需要的話。請參閱statsmodels github上的幾個相關問題。 IIRC,您可以將結果與SAS和Stata進行比較。 – user333700

+0

是的,謝謝。答案已更新。 – iwbabn

回答