5.3 Cuando añadir variables perjudica
Añadir variables no siempre mejora un modelo. Dos problemas comunes son la multicolinealidad (predictores demasiado correlacionados) y el sesgo post-tratamiento (controlar por una consecuencia del tratamiento).
5.3.1 Multicolinealidad
La multicolinealidad ocurre cuando dos o más predictores están altamente correlacionados. Cuando los predictores son casi idénticos, el modelo no puede distinguir sus efectos, y los errores estándar de los coeficientes se vuelven muy grandes.
# Demonstrate multicollinearity
set.seed(42)
n <- 100
# Two highly correlated predictors
x1 <- rnorm(n)
x2 <- x1 + rnorm(n, sd = 0.1) # very correlated with x1
# Outcome depends on x1 only
y <- 1 + 2 * x1 + rnorm(n, sd = 1)
# Fit regression with both predictors
fit_multi <- lm(y ~ x1 + x2)
cat("Multivariate model (x1 and x2 correlated):\n")
cat(" beta_x1:", round(coef(fit_multi)[2], 3),
" SE:", round(summary(fit_multi)$coefficients[2, 2], 3), "\n")
cat(" beta_x2:", round(coef(fit_multi)[3], 3),
" SE:", round(summary(fit_multi)$coefficients[3, 2], 3), "\n")
# Compare with model using only x1
fit_single <- lm(y ~ x1)
cat("\nSingle predictor model (x1 only):\n")
cat(" beta_x1:", round(coef(fit_single)[2], 3),
" SE:", round(summary(fit_single)$coefficients[2, 2], 3), "\n")
cat("\nCorrelation between x1 and x2:", round(cor(x1, x2), 3), "\n")
cat("Multicollinearity inflates the standard errors.\n")Los errores estándar son mucho más grandes en el modelo multivariado porque el modelo no puede decir qué predictor es responsable del efecto. Los coeficientes también son inestables — pequeños cambios en los datos pueden causar grandes cambios en las estimaciones.
5.3.2 Sesgo post-tratamiento
El sesgo post-tratamiento ocurre cuando controlamos por una variable que es una consecuencia del tratamiento. Esto bloquea el camino causal que queremos estimar.
# Demonstrate post-treatment bias
set.seed(42)
n <- 200
# Treatment: tutoring program
tutoring <- rbinom(n, 1, 0.5)
# Post-treatment variable: study hours (influenced by tutoring)
study_hours <- 2 + 1.5 * tutoring + rnorm(n, sd = 1)
# Outcome: test score (influenced by both tutoring and study hours)
# Total effect of tutoring = direct + indirect through study hours
score <- 50 + 3 _ tutoring + 2 _ study_hours + rnorm(n, sd = 3)
# Correct model: estimate total effect of tutoring
m_total <- lm(score ~ tutoring)
cat("Total effect model (score ~ tutoring):\n")
cat(" beta_tutoring:", round(coef(m_total)[2], 3), "\n")
# Post-treatment bias: controlling for study hours
m_bias <- lm(score ~ tutoring + study_hours)
cat("\nPost-treatment model (score ~ tutoring + study_hours):\n")
cat(" beta_tutoring:", round(coef(m_bias)[2], 3), "\n")
cat(" beta_study:", round(coef(m_bias)[3], 3), "\n")
cat("\nThe total effect (6.0) is split into direct (3.0) and indirect (3.0)\n")
cat("Controlling for study_hours blocks the indirect path\n")
cat("and underestimates the total effect of tutoring.\n")El efecto total de la tutoría incluye tanto el efecto directo como el efecto indirecto a través de las horas de estudio. Al condicionar sobre las horas de estudio, bloqueamos el camino indirecto y subestimamos el efecto total.
5.3.3 Cuándo añadir variables
La decisión de añadir una variable debe guiarse por el grafo causal, no por criterios estadísticos:
- Añada variables que son causas comunes (confusores) del predictor y el resultado.
- No añada variables que son consecuencias del predictor (variables post-tratamiento).
- Tenga cuidado con variables que están altamente correlacionadas con otros predictores (multicolinealidad).
- Añada variables que revelan relaciones enmascaradas (caminos indirectos).
El grafo causal es la estrategia. Los modelos estadísticos son herramientas, pero las herramientas necesitan una estrategia. El grafo causal (DAG) es la estrategia. Le dice qué variables incluir, qué variables excluir y sobre cuáles condicionar. Sin un grafo causal, solo está girando perillas y esperando lo mejor. Con un grafo causal, puede tomar decisiones principiadas sobre la especificación del modelo. Este es el enfoque de los modelos causales estructurales, y es la base de la inferencia causal moderna.
Overthinking
El factor de inflación de la varianza. El factor de inflación de la varianza (VIF) mide cuánto la multicolinealidad infla la varianza de un coeficiente:
donde es el de regresar el predictor sobre todos los demás predictores. Un VIF de 1 significa que no hay multicolinealidad. Un VIF de 10 significa que la varianza es 10 veces más grande de lo que sería sin multicolinealidad. Como regla general, VIF > 5 indica multicolinealidad problemática. Sin embargo, la multicolinealidad no siempre es un problema — si solo le interesa la predicción, la multicolinealidad no perjudica. Solo perjudica cuando quiere interpretar coeficientes individuales.
Resumen de la Sección 5.3
- Multicolinealidad: Predictores altamente correlacionados inflan los errores estándar y hacen los coeficientes inestables.
- Sesgo post-tratamiento: Controlar por una consecuencia del tratamiento bloquea el camino causal y sesga el efecto total.
- La decisión de añadir variables debe guiarse por el grafo causal, no por criterios estadísticos.
- Los confusores deben añadirse; las variables post-tratamiento no.
- El VIF mide la severidad de la multicolinealidad.