5.7 Práctica
Los problemas de práctica del Capítulo 5 le piden ajustar regresiones multivariadas, diagnosticar multicolinealidad y explorar el efecto de añadir o eliminar variables.
Problemas fáciles
5E1. ¿Cuáles de los modelos lineales a continuación son regresiones múltiples?
(a)
(b)
(c)
5E2. Escriba una regresión múltiple para evaluar la afirmación: Ni la cantidad de financiamiento ni las puntuaciones de examen predicen la calidad docente, pero juntas sí.
5E3. Escriba una regresión múltiple para evaluar la afirmación: La cantidad de financiamiento está positivamente asociada con la calidad docente, pero solo cuando se controla por el porcentaje de estudiantes en pobreza.
Problemas medios
5M1. Invente su propio ejemplo de una asociación espuria. Dibuje el grafo causal y simule datos para demostrarlo.
# 5M1: Spurious association example
# Ice cream sales and sunburns are both caused by temperature
set.seed(42)
n <- 100
# Temperature is the common cause
temp <- rnorm(n, mean = 25, sd = 8)
# Ice cream sales increase with temperature
ice_cream <- 10 + 2 * temp + rnorm(n, sd = 5)
# Sunburns increase with temperature
sunburns <- 5 + 1.5 * temp + rnorm(n, sd = 4)
# Bivariate: ice cream vs sunburns (spurious)
m_biv <- lm(sunburns ~ ice_cream)
cat("Bivariate (sunburns ~ ice_cream):\n")
cat(" beta:", round(coef(m_biv)[2], 3), "\n")
# Multivariate: controlling for temperature
m_multi <- lm(sunburns ~ ice_cream + temp)
cat("\nMultivariate (sunburns ~ ice_cream + temp):\n")
cat(" beta_ice_cream:", round(coef(m_multi)[2], 3), "\n")
cat(" beta_temp:", round(coef(m_multi)[3], 3), "\n")
cat("\nThe ice cream effect disappears after controlling for temperature.\n")5M2. Invente su propio ejemplo de una relación enmascarada. Dibuje el grafo causal y simule datos para demostrarlo.
5M3. Invente su propio ejemplo de sesgo post-tratamiento. Dibuje el grafo causal y simule datos para demostrarlo.
Problemas difíciles
5H1. Ajuste una regresión multivariada con dos predictores. Calcule la distribución a posteriori de ambos coeficientes y sus intervalos creíbles del 95%.
# 5H1: Multivariate regression with posterior intervals
set.seed(42)
n <- 100
x1 <- rnorm(n)
x2 <- 0.5 * x1 + rnorm(n, sd = 0.5)
y <- 1 + 2 * x1 - 1 * x2 + rnorm(n, sd = 1)
fit <- lm(y ~ x1 + x2)
library(MASS)
post <- mvrnorm(1e4, mu = coef(fit), Sigma = vcov(fit))
cat("Posterior summaries:\n")
cat(" alpha: mean =", round(mean(post[,1]), 3),
" 95% CI = [", round(quantile(post[,1], 0.025), 3), ",",
round(quantile(post[,1], 0.975), 3), "]\n")
cat(" beta1: mean =", round(mean(post[,2]), 3),
" 95% CI = [", round(quantile(post[,2], 0.025), 3), ",",
round(quantile(post[,2], 0.975), 3), "]\n")
cat(" beta2: mean =", round(mean(post[,3]), 3),
" 95% CI = [", round(quantile(post[,3], 0.025), 3), ",",
round(quantile(post[,3], 0.975), 3), "]\n")5H2. Ajuste un modelo con un predictor categórico usando variables índice. Compare las medias a posteriori de cada categoría.
5H3. Ajuste un modelo con un predictor categórico y uno continuo. Grafique las líneas predictivas a posteriori para cada categoría.