Interpretación de efectos aleatorios anidados
Estaba jugando con algunos datos y me costó entender el significado de los efectos anidados.
Aquí hay un ejemplo de un conjunto de datos (selfesteem2 del paquete datarium)
dat <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L,
12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L,
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L,
6L, 7L, 8L, 9L, 10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 12L), .Label = c("1", "2", "3", "4", "5", "6",
"7", "8", "9", "10", "11", "12"), class = "factor"), treatment = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("ctr", "Diet"), class = "factor"),
time = c("t1", "t1", "t1", "t1", "t1", "t1", "t1", "t1",
"t1", "t1", "t1", "t1", "t1", "t1", "t1", "t1", "t1", "t1",
"t1", "t1", "t1", "t1", "t1", "t1", "t2", "t2", "t2", "t2",
"t2", "t2", "t2", "t2", "t2", "t2", "t2", "t2", "t2", "t2",
"t2", "t2", "t2", "t2", "t2", "t2", "t2", "t2", "t2", "t2",
"t3", "t3", "t3", "t3", "t3", "t3", "t3", "t3", "t3", "t3",
"t3", "t3", "t3", "t3", "t3", "t3", "t3", "t3", "t3", "t3",
"t3", "t3", "t3", "t3"), val = c(83, 97, 93, 92, 77, 72,
92, 92, 95, 92, 92, 79, 84, 100, 91, 91, 74, 76, 90, 89,
93, 90, 93, 80, 77, 95, 92, 92, 73, 65, 89, 87, 91, 84, 92,
69, 86, 99, 91, 92, 76, 75, 87, 89, 94, 93, 92, 80, 69, 88,
89, 89, 68, 63, 79, 81, 84, 81, 91, 62, 88, 97, 92, 95, 72,
76, 87, 88, 93, 95, 91, 78)), row.names = c(NA, -72L), class = c("tbl_df",
"tbl", "data.frame"))
dat %>% arrange(id)
# A tibble: 72 x 4
id treatment time val
<fct> <fct> <chr> <dbl>
1 1 ctr t1 83
2 1 Diet t1 84
3 1 ctr t2 77
4 1 Diet t2 86
5 1 ctr t3 69
6 1 Diet t3 88
7 2 ctr t1 97
8 2 Diet t1 100
9 2 ctr t2 95
10 2 Diet t2 99
# ... with 62 more rows
dat$id %>% unique [1] 1 2 3 4 5 6 7 8 9 10 11 12 Levels: 1 2 3 4 5 6 7 8 9 10 11 12 > dat$treatment %>% unique
[1] ctr Diet
Levels: ctr Diet
> dat$time %>% unique
[1] "t1" "t2" "t3"
Este es un diseño de medidas repetidas, lo que significa que cada participante (id) ha pasado por tratamiento-ctr y tratamiento-dieta, en los tres puntos de tiempo (t1, t2, t3).
Si tuviera que analizar esto dentro del marco de modelos mixtos, haría:
library(lme4)
mod1 <- lmer(val ~ treatment*time + (1|id), data = dat) %>% anova
mod1
Analysis of Variance Table
npar Sum Sq Mean Sq F value
treatment 1 316.68 316.68 41.037
time 2 258.69 129.35 16.762
treatment:time 2 266.36 133.18 17.258
Si estoy en lo cierto, este modelo analiza los efectos principales y la interacción del tratamiento y el tiempo, mientras controla el hecho de que los puntos de datos no son independientes (los mismos participantes deberían tener resultados más similares en varios grupos de diseño que diferentes participantes).
Digamos que especificamos dos modelos más:
> mod2 <- lmer(val ~ treatment*time + (1|treatment:id), data = dat) %>% anova
mod2
Analysis of Variance Table
npar Sum Sq Mean Sq F value
treatment 1 6.518 6.518 1.432
time 2 258.694 129.347 28.417
treatment:time 2 266.361 133.181 29.259
> mod3 <- lmer(val ~ treatment*time + (1|id) + (1|treatment:id), data = dat) %>% anova
mod3
Analysis of Variance Table
npar Sum Sq Mean Sq F value
treatment 1 70.738 70.738 15.541
time 2 258.694 129.347 28.417
treatment:time 2 266.361 133.181 29.259
- ¿Mod2 especifica que las mismas personas para el mismo tratamiento deben ser más similares que otras?
- ¿Qué tipo de dependencia sugiere mod3? ¿Cuál es la diferencia con mod2?
- ¿Necesitamos incluso especificar la dependencia en el sentido de
(1|treatment:id)si ya contabilizamos el tratamiento como un efecto fijo? ¿Qué ganamos adicionalmente al especificar esto como un efecto aleatorio anidado?
Respuestas
¿
mod2Especifica que las mismas personas para el mismo tratamiento deben ser más similares que otras?
mod2implica que tiene medidas repetidas dentro de cada combinación de treatmenty id. De su descripción, este no parece ser el caso.
¿Qué tipo de dependencia sugiere mod3? ¿Cuál es la diferencia con mod2?
mod3también se ajusta a las intercepciones aleatorias id, lo que implica que treatmentestá anidado dentro id. Una vez más, este no es el caso aquí.
¿Necesitamos siquiera especificar la dependencia en el sentido de (1 | tratamiento: id) si ya contamos el tratamiento como un efecto fijo?
Dado que parece estar interesado en el efecto fijo de treatment, no tiene sentido incluirlo también como factor de agrupación para intersecciones aleatorias como parte de una interacción.
¿Qué ganamos adicionalmente al especificar esto como un efecto aleatorio anidado?
No ganamos nada. Dado que no tenemos efectos aleatorios anidados, los errores estándar para las estimaciones de efectos fijos serán incorrectos.