Multicolinealidad y VIF
La multicolinealidad ocurre cuando dos o más predictores de una regresión múltiple están muy correlacionados linealmente entre sí. No sesga las predicciones ni perjudica el ajuste global del modelo, pero infla los errores estándar de los coeficientes afectados, haciendo que los coeficientes individuales sean inestables y que sus contrastes de significación no sean fiables. Esta entrada amplía las breves menciones de regresión lineal múltiple y diagnósticos de regresión.
Por qué la multicolinealidad es un problema
Con predictores correlacionados, la regresión no puede separar con claridad el efecto individual de cada predictor sobre la respuesta. Pequeños cambios en los datos pueden hacer oscilar mucho los coeficientes estimados, los errores estándar se disparan, e incluso el signo de un coeficiente puede volverse poco plausible, aunque las predicciones globales del modelo se mantengan precisas. Los valores ajustados \(\hat y\) siguen siendo fiables; son los coeficientes individuales, y cualquier historia que intentes contar a partir de ellos, los que dejan de serlo.
El factor de inflación de la varianza
Para el predictor \(j\), se regresiona sobre todos los DEMÁS predictores y se toma el \(R_j^2\) resultante:
\[VIF_j = \frac{1}{1 - R_j^2}\]
Si el predictor \(j\) no está correlacionado en absoluto con los demás, \(R_j^2 = 0\) y \(VIF_j = 1\): ninguna inflación. Cuando \(R_j^2 \to 1\) (el predictor \(j\) queda casi perfectamente explicado por una combinación lineal de los demás), \(VIF_j \to \infty\).
La interpretación directa: \(VIF_j\) indica que la varianza del coeficiente es \(VIF_j\) veces mayor de lo que sería si el predictor \(j\) no estuviera correlacionado con los demás predictores. De forma equivalente, el error estándar se infla en un factor de \(\sqrt{VIF_j}\).
Ejemplo resuelto: predecir un salario
La forma más clara de ver la multicolinealidad es construir una regresión con predictores deliberadamente entrelazados entre sí y observar qué le ocurre a los coeficientes.
Un conjunto de datos de \(n=50\) empleados predice el salario a partir de tres predictores deliberadamente correlacionados: años de experiencia, edad y años desde la graduación. En esta muestra simulada, la edad y los años desde la graduación se mueven casi al mismo ritmo que la experiencia.
Matriz de correlación entre los predictores:
| experience | age | grad_years | |
|---|---|---|---|
| experience | 1,000 | 0,975 | 0,968 |
| age | 0,975 | 1,000 | 0,995 |
| grad_years | 0,968 | 0,995 | 1,000 |
Las tres correlaciones por pares superan 0,96, una señal de alarma por sí sola incluso antes de calcular el VIF.
Coeficientes de la regresión a partir de lm(salary ~ experience + age + grad_years):
| Predictor | Estimación | Error estándar | Valor t | p-valor |
|---|---|---|---|---|
| Intercepto | 15561 | 9908 | 1,57 | 0,123 |
| experience | 1246 | 192 | 6,50 | < 0,001 |
| age | 772 | 453 | 1,71 | 0,095 |
| grad_years | -276 | 418 | -0,66 | 0,512 |
El ajuste global es excelente: \(R^2 = 0{,}974\), \(F(3,46) = 576\), \(p < 0{,}001\). Sin embargo, solo experience es claramente significativo; age está en el límite y grad_years no es significativo en absoluto, y su coeficiente incluso tiene el signo equivocado (negativo, lo que implicaría que más años desde la graduación de alguna forma reduce el salario predicho, algo sin sentido sustantivo). Esta es la firma clásica de la multicolinealidad: un modelo global fuerte y significativo, pero con coeficientes individuales inestables y poco fiables.
Valores de VIF:
| Predictor | VIF |
|---|---|
| experience | 20,6 |
| age | 119,7 |
| grad_years | 94,1 |
Los tres están muy por encima del umbral de alarma habitual de 5. El VIF de age, 119,7, significa que la varianza de su coeficiente es unas 120 veces mayor, y su error estándar unas \(\sqrt{119{,}7} \approx 10{,}9\) veces mayor, de lo que sería si age no estuviera correlacionada con experience y grad_years.

Detectar la multicolinealidad
Además de calcular el VIF directamente, conviene fijarse en:
- Una matriz de correlación o mapa de calor de correlaciones entre los predictores, como primera comprobación rápida, exactamente como se ha mostrado arriba.
- Un \(R^2\) global alto o un test F significativo combinado con pocos o ningún coeficiente individualmente significativo, una señal de alarma clásica, exactamente lo que ha ocurrido en el ejemplo anterior.
- Coeficientes con un signo o magnitud poco plausibles, como se ha visto con
grad_yearsarriba.
⚠️ La multicolinealidad no sesga las predicciones ni perjudica el R-cuadrado
La multicolinealidad es un problema puramente de interpretación de coeficientes, no de predicción. Si el único objetivo es predecir \(\hat y\), la multicolinealidad a menudo puede ignorarse con seguridad: los valores ajustados y el \(R^2\) siguen siendo fiables incluso con VIF de varios cientos. Solo se convierte en un problema real cuando necesitas interpretar un coeficiente individual, por ejemplo “¿cuánto aumenta el salario por cada año de edad, manteniendo fijos la experiencia y los años desde la graduación?”, una pregunta que la multicolinealidad hace prácticamente imposible de responder con estos datos, ya que los predictores apenas varían de forma independiente entre sí en la muestra.
Solucionar la multicolinealidad
- Eliminar uno de los predictores muy correlacionados, conservando el más directamente relevante o el mejor medido. Aquí,
experiencees probablemente el más directamente significativo y el menos redundante de los tres. - Combinar los predictores correlacionados en un único índice, o usar reducción de dimensionalidad como la regresión sobre componentes principales, consulta el análisis de componentes principales.
- Usar regularización: la regresión ridge maneja especialmente bien los predictores correlacionados al encoger los coeficientes, consulta la regresión ridge.
- Recopilar más datos, o datos con más variación independiente en los predictores, cuando sea posible.
Hacerlo en R
El flujo completo, desde ajustar el modelo hasta comprobar el VIF y la matriz de correlación bruta, cabe en pocas líneas:
fit <- lm(salary ~ experience + age + grad_years)
summary(fit)
library(car)
vif(fit)
# Matriz de correlación de los predictores como primera comprobación rápida
cor(data.frame(experience, age, grad_years))
💡 Umbrales orientativos del VIF
VIF = 1 significa que no hay correlación con otros predictores. VIF entre 1 y 5 suele estar bien. VIF entre 5 y 10 merece revisarse con más cuidado. VIF por encima de 10 (algunos profesionales usan un umbral más estricto de 5) es una señal clara de multicolinealidad problemática que probablemente necesite alguna de las soluciones anteriores. El VIF no tiene límite superior. Solo detecta relaciones LINEALES entre predictores, y técnicamente contrasta cada predictor frente a una combinación lineal de todos los demás, no solo la correlación por pares, por eso puede detectar multicolinealidad que una simple matriz de correlaciones por pares pasaría por alto.