2017-02-09 9 views
0

код для вычисления VIF в statsmodel ниже:ПНП вычисления в 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) 

При установке, он не включает в себя перехват. Кажется, перехват должен быть включен в соответствии с «Вводной эконометрикой (6ed)» Wooldridge: «... R-квадрат от регрессии Xj по всем другим независимым переменным (и включая перехват)».

Является ли statmodels неправильным? Есть ли другой пакет, который я могу проверить? Благодарю.

+0

Там нет ничего "плохого". Это предполагает, что 'exog' является регрессионной моделью, которая включает константу, если пользователь этого хочет. См. Несколько связанных вопросов о statsmodels github. IIRC, вы можете сравнить результаты с SAS и Stata. – user333700

+0

Да, спасибо. Ответ обновлен. – iwbabn

ответ