7.1 Construyendo una interacción
Una interacción ocurre cuando el efecto de una variable depende del valor de otra. Modelar interacciones es esencial cuando la pendiente de una relación cambia entre grupos o contextos.
7.1.1 ¿Qué es una interacción?
Sin una interacción, el modelo asume que el efecto de cada predictor es constante — el mismo para todos los valores de los otros predictores. Con una interacción, el efecto de un predictor se convierte en una función del otro.
El término es el término de interacción. Permite que la pendiente de dependa de y viceversa.
# Demonstrate an interaction
# The effect of study time on test scores depends on sleep
set.seed(42)
n <- 200
# Study hours
study <- runif(n, 0, 10)
# Sleep hours
sleep <- runif(n, 4, 9)
# Test score: effect of study depends on sleep
# When sleep is low, study has less effect
# When sleep is high, study has more effect
score <- 50 + 3 _ study + 2 _ sleep + 0.5 _ study _ sleep + rnorm(n, sd = 5)
# Fit model without interaction
m_no <- lm(score ~ study + sleep)
# Fit model with interaction
m_int <- lm(score ~ study * sleep)
cat("Without interaction:\n")
cat(" study:", round(coef(m_no)[2], 3), "\n")
cat(" sleep:", round(coef(m_no)[3], 3), "\n")
cat("\nWith interaction:\n")
cat(" study:", round(coef(m_int)[2], 3), "\n")
cat(" sleep:", round(coef(m_int)[3], 3), "\n")
cat(" study:sleep:", round(coef(m_int)[4], 3), "\n")
cat("\nThe interaction term (0.5) means:\n")
cat(" Each extra hour of sleep increases the study effect by 0.5\n")7.1.2 El ejemplo de los tulipanes
El libro usa un experimento con tulipanes: el crecimiento de los tulipanes depende tanto de la luz como del agua, y el efecto de la luz depende de la disponibilidad de agua.
# Simulate the tulip data
set.seed(42)
n <- 27
# Light and water levels (0, 1, 2)
light <- rep(c(0, 1, 2), each = 9)
water <- rep(rep(c(0, 1, 2), each = 3), 3)
# Blooms: interaction of light and water
blooms <- 10 + 5 _ light + 5 _ water + 3 _ light _ water + rnorm(n, sd = 2)
# Fit models
m_main <- lm(blooms ~ light + water)
m_int <- lm(blooms ~ light * water)
cat("Main effects only:\n")
cat(" light:", round(coef(m_main)[2], 2), "\n")
cat(" water:", round(coef(m_main)[3], 2), "\n")
cat("\nWith interaction:\n")
cat(" light:", round(coef(m_int)[2], 2), "\n")
cat(" water:", round(coef(m_int)[3], 2), "\n")
cat(" light:water:", round(coef(m_int)[4], 2), "\n")
# Visualize
par(mfrow = c(1, 3))
for (w in 0:2) {
idx <- water == w
plot(light[idx], blooms[idx], pch = 16, col = "steelblue",
xlim = c(0, 2), ylim = range(blooms),
main = sprintf("Water = %d", w),
xlab = "Light", ylab = "Blooms")
abline(lm(blooms[idx] ~ light[idx]), lwd = 2, col = "firebrick")
}
par(mfrow = c(1, 1))7.1.3 Interpretación de la interacción
El coeficiente de interacción nos dice cómo cambia la pendiente de por cada unidad de aumento en :
Así, la pendiente de es cuando , y aumenta en por cada unidad de aumento en .
Las interacciones no son opcionales cuando la teoría las exige. Si su teoría dice que el efecto de la educación sobre el ingreso depende de la clase social, entonces debe incluir una interacción. No hacerlo obliga al modelo a asumir un efecto constante, lo que contradice la teoría. El modelo es un golem — no añadirá interacciones por sí solo. Usted debe decirle que lo haga. Y una vez que añade una interacción, debe interpretarla cuidadosamente: los efectos principales ya no son "el efecto" de cada variable — son el efecto cuando la otra variable es cero.
Resumen de la Sección 7.1
- Una interacción significa que el efecto de un predictor depende del valor de otro.
- El término de interacción permite que la pendiente varíe.
- La pendiente de es — depende de .
- Las interacciones deben incluirse cuando la teoría lo exige, no solo cuando son significativas.
- Con una interacción, los efectos principales son el efecto cuando la otra variable es cero.