Interceptos de efecto aleatorio
Los modelos lineales en R estiman parámetros que se consideran fijos o no aleatorios y se denominan efectos fijos. En cambio, los parámetros de efecto aleatorio suponen que los datos comparten una distribución común del error y pueden producir estimaciones distintas cuando hay poca cantidad de datos o valores atípicos. Los modelos con efectos fijos y aleatorios son modelos de efectos mixtos o regresión lineal de efectos mixtos.
El paquete lme4 ajusta modelos de efectos mixtos (modelos con efectos fijos y aleatorios) con lmer(), que usa una fórmula similar a lm(). Pero los interceptos de efectos aleatorios usan una sintaxis especial:
lmer(y ~ x + (1 | random-effect), data = my_data)
La función lmer() requiere que el modelo incluya al menos un efecto aleatorio; de lo contrario, el modelo devuelve un error. Aquí ajustarás un lm() y un lmer(), y luego compararás gráficamente los modelos ajustados usando un subconjunto de los datos. Te damos este código por el procesado avanzado de datos que requiere, ya que los efectos aleatorios normalmente no se representan en gráficos (ggplot2 tampoco incluye opciones cómodas para graficar modelos de efectos mixtos). En este gráfico, fíjate en cómo las líneas de trazos de las pendientes de efectos aleatorios se comparan con las líneas continuas de las pendientes de efectos fijos.
Nota: se necesita broom.mixed porque el paquete broom no es compatible con lme4.
Este ejercicio forma parte del curso
Modelos jerárquicos y de efectos mixtos en R
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Build a liner model including class as fixed-effect model
lm_out <- ___
# Build a mixed-effect model including class id as a random-effect
lmer_out <- lmer(___ ~ ___ + (1 | ___), data = ___)
# Extract out the slope estimate for mathkind
tidy(lm_out) %>%
filter(term == "mathkind")
tidy(lmer_out) %>%
filter(term == "mathkind")