НачатьНачать бесплатно

Вычисление 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
____(____)
Редактировать и запускать код