Calcolare il VIF
Come hai visto nel video, uno dei diagnostici più usati per la multicollinearità è il variance inflation factor, o VIF, calcolato per ogni variabile esplicativa.
Ricorda dal video che una regola pratica fissa la soglia del VIF a 2.5: se il VIF è superiore a 2.5, dovresti considerare presente un effetto di multicollinearità sul modello stimato.
Il model già adattato e il dataset crab sono pre-caricati nell’ambiente di lavoro.
Questo esercizio fa parte del corso
Modelli lineari generalizzati in Python
Istruzioni dell'esercizio
- Da
statsmodelsimportavariance_inflation_factor. - Dal dataset
crabselezionaweight,widthecolore salva comeX. Aggiungi aXla colonnaInterceptdi soli uno. - Usando la funzione
pandasDataFrame()crea un dataframevifvuoto e aggiungi i nomi delle colonne diXnella colonnaVariables. - Per ciascuna variabile calcola il VIF usando la funzione
variance_inflation_factor()e salvalo nel dataframevifcon il nome di colonnaVIF.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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
____(____)