Výpočet VIF
Jak sis ukázal/a ve videu, jednou z nejpoužívanějších diagnostik pro multikolinearitu je faktor inflace rozptylu, neboli VIF, který se počítá pro každou vysvětlující proměnnou.
Z videa si vzpomeneš, že orientační práh je hodnota VIF 2,5 – pokud je VIF vyšší než 2,5, je třeba uvažovat o tom, že multikolinearita ovlivňuje tvůj natrénovaný model.
V pracovním prostředí jsou předem načteny dříve natrénovaný model a dataset crab.
Toto cvičení je součástí kurzu
Zobecněné lineární modely v Pythonu
Pokyny k cvičení
- Z
statsmodelsimportujvariance_inflation_factor. - Z datasetu
crabvyber sloupceweight,widthacolora ulož jakoX. Přidej doXsloupecInterceptobsahující jedničky. - Pomocí funkce
DataFrame()zpandasvytvoř prázdný datový rámecvifa do sloupceVariablespřidej názvy sloupců zX. - Pro každou proměnnou vypočítej VIF pomocí funkce
variance_inflation_factor()a výsledek ulož do datového rámcevifdo sloupce s názvemVIF.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
____(____)