Obliczanie VIF
Jak pokazano w filmie, jedną z najczęściej stosowanych diagnostyk wielokoliniowości jest współczynnik inflacji wariancji (VIF, ang. variance inflation factor), obliczany dla każdej zmiennej objaśniającej.
Pamiętaj, że stosowana reguła kciuka zakłada próg VIF na poziomie 2,5 – jeśli VIF przekracza tę wartość, należy wziąć pod uwagę wpływ wielokoliniowości na dopasowany model.
Wcześniej dopasowany model oraz zbiór danych crab są wstępnie załadowane w przestrzeni roboczej.
To ćwiczenie jest częścią kursu
Uogólnione modele liniowe w Pythonie
Instrukcje do ćwiczenia
- Z biblioteki
statsmodelszaimportujvariance_inflation_factor. - Ze zbioru danych
crabwybierz kolumnyweight,widthicolori zapisz jakoX. Dodaj doXkolumnęInterceptwypełnioną jedynkami. - Używając funkcji
DataFrame()z bibliotekipandas, utwórz pustą ramkę danychvifi dodaj nazwy kolumn zXw kolumnieVariables. - Dla każdej zmiennej oblicz VIF za pomocą funkcji
variance_inflation_factor()i zapisz wynik w ramce danychvifw kolumnieVIF.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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
____(____)