Interpretation verschachtelter zufälliger Effekte

Oct 10 2020

Ich spielte mit einigen Daten herum und hatte Schwierigkeiten, die Bedeutung verschachtelter Effekte zu verstehen.

Hier ist ein Beispiel für einen Datensatz (selfesteem2 from 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"

Dies ist ein Design mit wiederholten Messungen, was bedeutet, dass jeder Teilnehmer (ID) zu allen drei Zeitpunkten (t1, t2, t3) die Behandlung-ctr und die Behandlung-Diät durchlaufen hat .

Wenn ich dies im Rahmen gemischter Modelle analysieren würde, würde ich Folgendes tun:

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

Wenn ich recht habe, analysiert dieses Modell die Haupteffekte und das Zusammenspiel von Behandlung und Zeit und kontrolliert gleichzeitig, dass Datenpunkte nicht unabhängig sind (dieselben Teilnehmer sollten in verschiedenen Designgruppen ähnlichere Ergebnisse erzielen als verschiedene Teilnehmer).

Angenommen, wir geben zwei weitere Modelle an:

> 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
  1. Gibt mod2 an, dass dieselben Personen für dieselbe Behandlung ähnlicher sein sollten als andere?
  2. Welche Abhängigkeit schlägt mod3 vor? Was ist der Unterschied zu mod2?
  3. Müssen wir überhaupt eine Abhängigkeit angeben, (1|treatment:id)wenn wir die Behandlung bereits als festen Effekt berücksichtigen? Was gewinnen wir zusätzlich, wenn wir dies als verschachtelten Zufallseffekt angeben?

Antworten

7 RobertLong Oct 10 2020 at 15:22

Gibt an mod2, dass dieselben Personen für dieselbe Behandlung ähnlicher sein sollten als andere?

mod2impliziert, dass Sie innerhalb jeder Kombination von treatmentund Maßnahmen wiederholt haben id. Nach Ihrer Beschreibung scheint dies nicht der Fall zu sein.

Welche Abhängigkeit schlägt mod3 vor? Was ist der Unterschied zu mod2?

mod3passt auch zufällige Interceps für an id, was impliziert, dass treatmentdarin verschachtelt ist id. Auch dies ist hier nicht der Fall.

Müssen wir überhaupt eine Abhängigkeit im Sinne von (1 | Behandlung: ID) angeben, wenn wir die Behandlung bereits als festen Effekt berücksichtigen?

Da Sie an dem festen Effekt für interessiert zu sein scheinen treatment, ist es nicht sinnvoll, ihn auch als Gruppierungsfaktor für zufällige Abschnitte als Teil einer Interaktion einzubeziehen.

Was gewinnen wir zusätzlich, wenn wir dies als verschachtelten Zufallseffekt angeben?

Wir gewinnen nichts. Da wir keine verschachtelten zufälligen Effekte haben, sind die Standardfehler für die Schätzungen der festen Effekte falsch.