Contenido de este artículo
- 0
- 0
- 0
- 0
Actualizado el 7 de mayo de 2021, por Luis Benites.
La multicolinealidad en el análisis de regresión ocurre cuando dos o más variables predictoras están altamente correlacionadas entre sí, de modo que no brindan información única o independiente en el modelo de regresión.
Si el grado de correlación entre variables es lo suficientemente alto, puede causar problemas al ajustar e interpretar el modelo de regresión .
La forma más común de detectar la multicolinealidad es utilizando el factor de inflación de la varianza (VIF), que mide la correlación y la fuerza de la correlación entre las variables predictoras en un modelo de regresión.
El valor de VIF comienza en 1 y no tiene límite superior. Una regla general para interpretar los VIF es la siguiente:
- Un valor de 1 indica que no hay correlación entre una variable predictora dada y cualquier otra variable predictora en el modelo.
- Un valor entre 1 y 5 indica una correlación moderada entre una variable predictora dada y otras variables predictoras en el modelo, pero esto a menudo no es lo suficientemente grave como para requerir atención.
- Un valor mayor que 5 indica una correlación potencialmente severa entre una variable predictora dada y otras variables predictoras en el modelo. En este caso, las estimaciones de los coeficientes y los valores p en el resultado de la regresión probablemente no sean confiables.
Tenga en cuenta que hay algunos casos en los que los valores altos de VIF se pueden ignorar de forma segura .
Cómo calcular VIF en R
Para ilustrar cómo calcular VIF para un modelo de regresión en R, usaremos el conjunto de datos integrado mtcars :
#ver las primeras seis líneas de mtcars cabeza (mtcars) # mpg cyl disp hp drat wt qsec vs am gear carb # Mazda RX4 21,0 6160110 3,90 2,620 16,46 0 1 4 4 # Mazda RX4 Wag 21.0 6160110 3.90 2.875 17.02 0 1 4 4 # Datsun 710 22,8 4108 93 3,85 2,320 18,61 1 1 4 1 #Hornet 4 Impulso 21,4 6 258110 3,08 3,215 19,44 1 0 3 1 #Hornet Sportabout 18,7 8360175 3,15 3,440 17,02 0 0 3 2 #Valiente 18,1 6225105 2,76 3,460 20,22 1 0 3 1
Primero, ajustaremos un modelo de regresión usando mpg como variable de respuesta y disp , hp , wt y drat como variables predictoras:
#ajustar el modelo de regresión modelo <- lm (mpg ~ disp + hp + wt + drat, data = mtcars) #ver el resultado del resumen del modelo de regresión (modelo) #Llamada: #lm (fórmula = mpg ~ disp + hp + wt + drat, data = mtcars) # #Derechos residuales de autor: # Mín. 1T Mediana 3T Máx. # -3.5077 -1.9052 -0.5057 0.9821 5.6883 # #Coeficientes: # Estimar Std. Valor t de error Pr (> | t |) # (Intercepción) 29.148738 6.293588 4.631 8.2e-05 *** #disp 0.003815 0.010805 0.353 0.72675 #hp -0.034784 0.011597 -2.999 0.00576 ** #wt -3.479668 1.078371 -3.227 0.00327 ** #drat 1.768049 1.319779 1.340 0.19153 # --- #Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1 # # Error estándar residual: 2.602 en 27 grados de libertad # R-cuadrado múltiple: 0,8376, R-cuadrado ajustado: 0,8136 # Estadístico F: 34,82 en 4 y 27 DF, valor p: 2,704e-10
Podemos ver en el resultado que el valor de R cuadrado para el modelo es 0.8376 . También podemos ver que el estadístico F general es 34.82 y el valor p correspondiente es 2.704e-10 , lo que indica que el modelo de regresión general es significativo. Además, las variables predictoras hp y wt son estadísticamente significativas al nivel de significancia de 0.05, mientras que disp y drat no lo son.
A continuación, usaremos la función vif () de la biblioteca del automóvil para calcular el VIF para cada variable de predicción en el modelo:
#cargar la biblioteca de autos biblioteca (coche) #calcular el VIF para cada variable de predicción en el modelo vif (modelo) # disp hp wt drat # 8.209402 2.894373 5.096601 2.279547
Podemos ver que el VIF tanto para disp como para wt es mayor que 5, lo que es potencialmente preocupante.
Visualización de valores VIF
Para visualizar los valores de VIF para cada variable de predicción, podemos crear un gráfico de barras horizontales simple y agregar una línea vertical en 5 para que podamos ver claramente qué valores de VIF exceden 5:
#create vector de valores VIF vif_values <- vif (modelo) #cree un gráfico de barras horizontales para mostrar cada gráfico de barras de valor VIF (vif_values, main = "VIF Values", horiz = TRUE, col = "steelblue") #add línea vertical en 5 abline (v = 5, lwd = 3, lty = 2)
Tenga en cuenta que este tipo de gráfico sería más útil para un modelo que tiene muchas variables predictoras, por lo que podríamos visualizar fácilmente todos los valores de VIF a la vez. Sin embargo, sigue siendo un gráfico útil en este ejemplo.
Dependiendo del valor de VIF que considere demasiado alto para incluirlo en el modelo, puede optar por eliminar ciertas variables predictoras y ver si el valor de R cuadrado correspondiente o el error estándar del modelo se ven afectados.
Visualización de correlaciones entre variables predictoras
Para comprender mejor por qué una variable predictora puede tener un valor VIF alto, podemos crear una matriz de correlación para ver los coeficientes de correlación lineal entre cada par de variables:
#definir las variables que queremos incluir en la matriz de correlación datos <- mtcars [, c ("disp", "hp", "wt", "drat")] #crear matriz de correlación cor (datos) # disp hp wt drat #disp 1.0000000 0.7909486 0.8879799 -0.7102139 #hp 0.7909486 1.0000000 0.6587479 -0.4487591 # peso 0.8879799 0.6587479 1.0000000 -0.7124406 #drat -0.7102139 -0.4487591 -0.7124406 1.0000000
Recuerde que la variable disp tenía un valor de VIF superior a 8, que era el valor de VIF más grande entre todas las variables predictoras del modelo. De la matriz de correlación podemos ver que disp está fuertemente correlacionado con las otras tres variables predictoras, lo que explica por qué tiene un valor VIF tan alto.
En este caso, es posible que desee eliminar disp del modelo porque tiene un valor de VIF alto y no era estadísticamente significativo en el nivel de significancia de 0.05.
Tenga en cuenta que una matriz de correlación y un VIF le proporcionarán información similar: ambos le indican cuándo una variable está altamente correlacionada con una o más de otras variables en un modelo de regresión.
Lecturas adicionales:
Guía de multicolinealidad y VIF en regresión
¿Qué es un buen valor R cuadrado?
- https://r-project.org
- https://www.python.org/
- https://www.stata.com/
¿Te hemos ayudado?
Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:La ayuda no cuesta nada
Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo: