Calcular el VIF
Como viste en el vídeo, uno de los diagnósticos más utilizados para la multicolinealidad es el factor de inflación de la varianza o VIF, que se calcula para cada variable explicativa.
Recuerda del vídeo que la regla práctica marca un umbral de VIF en 2.5; es decir, si el VIF está por encima de 2.5 deberías considerar que hay efecto de multicolinealidad en tu modelo ajustado.
El model previamente ajustado y el conjunto de datos crab están precargados en el espacio de trabajo.
Este ejercicio forma parte del curso
Modelos lineales generalizados en Python
Instrucciones del ejercicio
- Importa desde
statsmodelsla funciónvariance_inflation_factor. - Del conjunto de datos
crabeligeweight,widthycolory guárdalos comoX. Añade aXuna columnaInterceptde unos. - Usando la función
DataFrame()depandas, crea un dataframevifvacío y añade los nombres de las columnas deXen la columnaVariables. - Para cada variable, calcula el VIF con la función
variance_inflation_factor()y guárdalo en el dataframevifen la columnaVIF.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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
____(____)