Обчислення VIF
Як ви дізналися з відео, один із найпоширеніших діагностичних показників мультиколінеарності — це коефіцієнт інфляції дисперсії (VIF), який обчислюють для кожної пояснювальної змінної.
Згадайте з відео правило великого пальця: пороговим значенням вважають VIF на рівні 2,5. Тобто якщо VIF перевищує 2,5, варто припустити, що на вашу модель впливає мультиколінеарність.
Раніше навчена model і набір даних crab уже завантажені в робочу область.
Ця вправа є частиною курсу
Узагальнені лінійні моделі в Python
Інструкції до вправи
- Імпортуйте з
statsmodelsфункціюvariance_inflation_factor. - Із набору даних
crabвиберітьweight,widthіcolorта збережіть якX. Додайте доXстовпецьIntercept, заповнений одиницями. - Використовуючи функцію
pandasDataFrame(), створіть порожній датафреймvifі додайте назви стовпцівXу стовпецьVariables. - Для кожної змінної обчисліть 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
____(____)