Skip to content
Statistical RethinkingStatistical Rethinking

7.6 Práctica

Los problemas de práctica del Capítulo 7 le piden ajustar modelos con interacciones, interpretar los coeficientes y visualizar los efectos predichos.

Practice

Problemas fáciles

7E1. Para cada uno de los siguientes modelos, escriba el modelo de interacción lineal en notación matemática:

(a) y ~ x * z

(b) y ~ x + z + x:z

(c) y ~ x * z * w

7E2. En el modelo μi=α+βxxi+βzzi+βxzxizi\mu_i = \alpha + \beta_x x_i + \beta_z z_i + \beta_{xz} x_i z_i, ¿cuál es la pendiente de xx cuando z=5z = 5?

7E3. ¿Por qué la interacción es simétrica? Explíquelo con sus propias palabras.

Problemas medios

7M1. Ajuste un modelo con una interacción entre dos predictores continuos. Grafique el resultado predicho en tres valores del moderador.

# 7M1: Fit and visualize a continuous interaction
set.seed(42)
n <- 100
x <- runif(n, 0, 10)
z <- runif(n, 0, 10)
y <- 1 + 2 * x + 1 * z + 0.3 * x * z + rnorm(n, sd = 2)

m <- lm(y ~ x * z)

# Plot predictions at z = 2, 5, 8

x_seq <- seq(0, 10, length.out = 100)
z_vals <- c(2, 5, 8)
colors <- c("firebrick", "steelblue", "darkgreen")

plot(NULL, xlim = c(0, 10), ylim = range(y),
xlab = "x", ylab = "y", main = "7M1: Interaction at different z values")
for (i in 1:3) {
pred <- coef(m)[1] + coef(m)[2] _ x_seq + coef(m)[3] _ z*vals[i] +
coef(m)[4] * x*seq * z_vals[i]
lines(x_seq, pred, lwd = 2, col = colors[i])
}
legend("topleft", legend = paste("z =", z_vals), col = colors, lwd = 2)

cat("Slope of x at z = 2:", round(coef(m)[2] + coef(m)[4] _ 2, 3), "\n")
cat("Slope of x at z = 5:", round(coef(m)[2] + coef(m)[4] _ 5, 3), "\n")
cat("Slope of x at z = 8:", round(coef(m)[2] + coef(m)[4] * 8, 3), "\n")
Click Run to execute this code in your browser with WebR

7M2. Centre ambos predictores y reajuste el modelo. ¿Cómo cambian los efectos principales? ¿Cambia la interacción?

7M3. Ajuste un modelo con una interacción categórica x continua. Grafique las líneas de regresión separadas para cada categoría.

# 7M3: Categorical x continuous interaction
set.seed(42)
n <- 150
group <- sample(1:3, n, replace = TRUE)
x <- runif(n, 0, 10)
# Different slopes for each group
slopes <- c(1, 2, 3)
y <- 10 + slopes[group] * x + rnorm(n, sd = 2)

m <- lm(y ~ group * x)

cat("Categorical x continuous interaction:\n")
cat(" Group 1 slope:", round(coef(m)[2], 3), "\n")
cat(" Group 2 slope:", round(coef(m)[2] + coef(m)[4], 3), "\n")
cat(" Group 3 slope:", round(coef(m)[2] + coef(m)[5], 3), "\n")

# Plot

colors <- c("steelblue", "firebrick", "darkgreen")
plot(x, y, pch = 16, col = colors[group],
main = "7M3: Categorical x continuous interaction",
xlab = "x", ylab = "y")
x*seq <- seq(0, 10, length.out = 100)
for (g in 1:3) {
if (g == 1) {
pred <- coef(m)[1] + coef(m)[2] * x*seq
} else {
pred <- coef(m)[1] + coef(m)[1 + g] + (coef(m)[2] + coef(m)[2 + g]) * x_seq
}
lines(x_seq, pred, lwd = 2, col = colors[g])
}
legend("topleft", legend = paste("Group", 1:3), col = colors, lwd = 2)
Click Run to execute this code in your browser with WebR

Problemas difíciles

7H1. Simule datos con una interacción verdadera. Ajuste modelos con y sin interacción. Compare sus AIC. ¿Gana el modelo con interacción?

# 7H1: Compare models with and without interaction
set.seed(42)
n <- 100
x <- runif(n, 0, 10)
z <- runif(n, 0, 10)
y <- 1 + 2 * x + 1 * z + 0.5 * x * z + rnorm(n, sd = 2)

m_no <- lm(y ~ x + z)
m_int <- lm(y ~ x * z)

cat("AIC comparison:\n")
cat(" No interaction:", round(AIC(m_no), 2), "\n")
cat(" With interaction:", round(AIC(m_int), 2), "\n")
cat(" Difference:", round(AIC(m_no) - AIC(m_int), 2), "\n")

if (AIC(m_int) < AIC(m_no)) {
cat("\nThe interaction model is preferred.\n")
} else {
cat("\nThe no-interaction model is preferred.\n")
}
Click Run to execute this code in your browser with WebR

7H2. Ajuste un modelo con una interacción de orden 3. Interprete los resultados graficando predicciones en diferentes combinaciones de los tres predictores.

7H3. Vuelva al ejemplo de los tulipanes (Sección 7.1). Ajuste el modelo de interacción y calcule la distribución a posteriori del efecto de la luz en cada nivel de agua.