Interprétation des effets aléatoires imbriqués
Je jouais avec certaines données et j'avais du mal à comprendre la signification des effets imbriqués.
Voici un exemple d'ensemble de données (selfesteem2 à partir du package 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"
Il s'agit d'une conception de mesures répétées, ce qui signifie que chaque participant (id) a suivi le traitement-ctr et le traitement-régime, dans les trois moments (t1, t2, t3).
Si je devais analyser cela dans le cadre des modèles mixtes, je ferais:
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 j'ai raison, ce modèle analyse les principaux effets et l'interaction du traitement et du temps, tout en contrôlant le fait que les points de données ne sont pas indépendants (les mêmes participants devraient avoir des résultats plus similaires dans divers groupes de conception que des participants différents).
Disons que nous spécifions deux autres modèles:
> 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 précise-t-il que les mêmes personnes pour le même traitement devraient être plus similaires que les autres?
- Quel genre de dépendance suggère mod3? Quelle est la différence avec mod2?
- Avons-nous même besoin de spécifier la dépendance dans le sens
(1|treatment:id)où nous prenons déjà en compte le traitement comme un effet fixe? Que gagnons-nous en plus en spécifiant cela comme un effet aléatoire imbriqué?
Réponses
mod2Spécifie- t-il que les mêmes personnes pour le même traitement devraient être plus similaires que les autres?
mod2implique que vous avez des mesures répétées dans chaque combinaison de treatmentet id. D'après votre description, cela ne semble pas être le cas.
Quel genre de dépendance suggère mod3? Quelle est la différence avec mod2?
mod3correspond également à des interceps aléatoires id, ce qui implique qu'il treatmentest imbriqué dans id. Encore une fois, ce n'est pas le cas ici.
Faut-il même spécifier la dépendance au sens de (1 | treatment: id) si l'on tient déjà compte du traitement comme un effet fixe?
Puisque vous semblez être intéressé par l'effet fixe pour treatment, cela n'a pas de sens de l'inclure également comme facteur de regroupement pour les interceptions aléatoires dans le cadre d'une interaction.
Que gagnons-nous en plus en spécifiant cela comme un effet aléatoire imbriqué?
Nous ne gagnons rien. Puisque nous n'avons pas d'effets aléatoires imbriqués, les erreurs standard pour les estimations des effets fixes seront erronées.