Вычисление VIF
Как вы узнали из видео, одним из наиболее широко применяемых диагностических инструментов для выявления мультиколлинеарности является коэффициент инфляции дисперсии (VIF), который вычисляется для каждой объясняющей переменной.
Напомним, что практическое пороговое значение VIF равно 2,5: если VIF превышает 2,5, следует учитывать влияние мультиколлинеарности на подогнанную модель.
Ранее подогнанная модель model и набор данных crab уже загружены в рабочую среду.
Это упражнение является частью курса
Обобщённые линейные модели в Python
Инструкции к упражнению
- Импортируйте
variance_inflation_factorизstatsmodels. - Выберите из набора данных
crabпеременныеweight,widthиcolorи сохраните их какX. Добавьте вXстолбецIntercept, заполненный единицами. - С помощью функции
DataFrame()изpandasсоздайте пустой датафреймvifи запишите в столбецVariablesназвания столбцов изX. - Для каждой переменной вычислите VIF с помощью функции
variance_inflation_factor()и сохраните результат в датафреймеvifв столбцеVIF.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import functions
from statsmodels.stats.outliers_influence import ____
# Get variables for which to compute VIF and add intercept term
X = ____[[____, ____, ____]]
X[____] = 1
# Compute and view VIF
vif = pd.____
vif["variables"] = X.____
vif["VIF"] = [____(X.values, i) for i in range(X.shape[1])]
# View results using print
____(____)