2017-02-09 3 views
0

Der Code in VIF statsmodel für die Berechnung ist unten:VIF Berechnung in 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) 

Bei der Montage, es enthält kein intercept. Es scheint, dass der Abschnitt gemäß "Introductory Econometrics (6ed)" von Wooldridge enthalten sein sollte: "... R-Quadrat von der Regression von Xj auf allen anderen unabhängigen Variablen (und einschließlich eines Abschnitts)."

Sind Statmodels falsch? Gibt es ein anderes Paket, das ich überprüfen kann? Vielen Dank.

+0

Es gibt nichts "falsch" ist. Dies setzt voraus, dass "exog" von einem Regressionsmodell stammt, das eine Konstante enthält, wenn der Benutzer eine wollte. Sehen Sie einige verwandte Ausgaben auf statsmodels github. IIRC, können Sie die Ergebnisse mit SAS und Stata vergleichen. – user333700

+0

Ja danke. Antwort aktualisiert – iwbabn

Antwort