Skrzyżowane i zagnieżdżone efekty losowe: czym się różnią i jak są poprawnie określone w lme4?


88

Oto jak zrozumiałem zagnieżdżone vs. skrzyżowane efekty losowe:

Zagnieżdżone efekty losowe występują, gdy niższy współczynnik poziomu pojawia się tylko w określonym poziomie współczynnika wyższego poziomu.

  • Na przykład uczniowie w ramach klas w ustalonym momencie.
  • W lme4Myślałem, że reprezentują losowe efekty dla zagnieżdżonych danych w jednym z dwóch równoważnych sposobów:

    (1|class/pupil)  # or  
    (1|class) + (1|class:pupil)

Przekreślone efekty losowe oznaczają, że dany czynnik występuje na więcej niż jednym poziomie czynnika wyższego poziomu.

  • Na przykład w klasach są uczniowie mierzeni w ciągu kilku lat.
  • W lme4napisalibyśmy:

    (1|class) + (1|pupil)

Jednak gdy patrzyłem na konkretny zagnieżdżony zestaw danych, zauważyłem, że obie formuły modelu dały identyczne wyniki (kod i dane wyjściowe poniżej). Widziałem jednak inne zbiory danych, w których te dwie formuły dawały różne wyniki. Więc co tu się dzieje?

mydata <- read.csv("https://web.archive.org/web/20160624172041if_/http://www-personal.umich.edu/~bwest/classroom.csv")
# (the data is no longer at `http://www-personal.umich.edu/~bwest/classroom.csv`
# hence the link to web.archive.org)
# Crossed version: 
Linear mixed model fit by REML ['lmerMod']
Formula: mathgain ~ (1 | schoolid) + (1 | classid)
   Data: mydata

REML criterion at convergence: 11768.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6441 -0.5984 -0.0336  0.5334  5.6335 

Random effects:
 Groups   Name        Variance Std.Dev.
 classid  (Intercept)   99.23   9.961  
 schoolid (Intercept)   77.49   8.803  
 Residual             1028.23  32.066  
Number of obs: 1190, groups:  classid, 312; schoolid, 107


# Nested version:
Formula: mathgain ~ (1 | schoolid/classid)

REML criterion at convergence: 11768.8

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-4.6441 -0.5984 -0.0336  0.5334  5.6335 

Random effects:
 Groups           Name        Variance Std.Dev.
 classid:schoolid (Intercept)   99.23   9.961  
 schoolid         (Intercept)   77.49   8.803  
 Residual                     1028.23  32.066  
Number of obs: 1190, groups:  classid:schoolid, 312; schoolid, 107

Odpowiedzi:


148

(To dość długa odpowiedź, na końcu jest streszczenie)

Nie mylisz się, rozumiejąc, jakie zagnieżdżone i skrzyżowane efekty losowe występują w opisywanym scenariuszu. Jednak twoja definicja skrzyżowanych efektów losowych jest trochę wąska. Bardziej ogólna definicja skrzyżowanych efektów losowych jest po prostu: nie zagnieżdżona . Przyjrzymy się temu na końcu tej odpowiedzi, ale większość odpowiedzi skupi się na przedstawionym przez ciebie scenariuszu, klas w szkołach.

Pierwsza uwaga, że:

Zagnieżdżanie jest właściwością danych, a raczej projektem eksperymentalnym, a nie modelem.

Również,

Zagnieżdżone dane można kodować na co najmniej 2 różne sposoby, i to jest sedno znalezionego problemu.

Zbiór danych w twoim przykładzie jest dość duży, więc wykorzystam inny przykład szkoły z Internetu, aby wyjaśnić problemy. Najpierw jednak rozważ następujący nadmiernie uproszczony przykład:

wprowadź opis zdjęcia tutaj

Tutaj mamy zajęcia zagnieżdżone w szkołach, co jest znanym scenariuszem. Ważną kwestią jest to, że pomiędzy szkołami klasy mają ten sam identyfikator, nawet jeśli są odrębne, jeśli są zagnieżdżone . Class1pojawia się School1, School2i School3. Jeśli jednak dane są zagnieżdżone, to Class1w nieSchool1 jest ta sama jednostka miary, co w i . Gdyby były takie same, mielibyśmy taką sytuację:Class1School2School3

wprowadź opis zdjęcia tutaj

co oznacza, że ​​każda klasa należy do każdej szkoły. Pierwszy z nich to projekt zagnieżdżony, a drugi to projekt przekrojowy (niektórzy mogą również nazwać to wielokrotnym członkostwem), i sformułowalibyśmy je lme4za pomocą:

(1|School/Class) lub równoważnie (1|School) + (1|Class:School)

i

(1|School) + (1|Class)

odpowiednio, kolejno. Ze względu na dwuznaczność tego, czy występuje efekt zagnieżdżenia, czy skrzyżowania efektów losowych, bardzo ważne jest prawidłowe określenie modelu, ponieważ modele te będą dawały różne wyniki, co pokażemy poniżej. Co więcej, nie można dowiedzieć się, po prostu poprzez sprawdzenie danych, czy zagnieżdżiliśmy lub skrzyżowaliśmy efekty losowe. Można to ustalić wyłącznie na podstawie danych i projektu eksperymentalnego.

Ale najpierw rozważmy przypadek, w którym zmienna Class jest unikatowo kodowana w szkołach:

wprowadź opis zdjęcia tutaj

Nie ma już żadnych dwuznaczności dotyczących zagnieżdżania lub krzyżowania. Zagnieżdżanie jest jawne. Przejdźmy teraz zobaczyć to na przykładzie w R, gdzie mamy 6 szkół (oznaczone I- VI) i 4 klas w każdej szkole (oznaczonego ana d):

> dt <- read.table("http://bayes.acs.unt.edu:8083/BayesContent/class/Jon/R_SC/Module9/lmm.data.txt",
                   header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
> # data was previously publicly available from
> # http://researchsupport.unt.edu/class/Jon/R_SC/Module9/lmm.data.txt
> # but the link is now broken
> xtabs(~ school + class, dt)

        class
school  a  b  c  d
   I   50 50 50 50
   II  50 50 50 50
   III 50 50 50 50
   IV  50 50 50 50
   V   50 50 50 50
   VI  50 50 50 50

Na podstawie tego zestawienia krzyżowego możemy zobaczyć, że każdy identyfikator klasy pojawia się w każdej szkole, co spełnia twoją definicję skrzyżowanych efektów losowych (w tym przypadku mamy pełne , a nie częściowo skrzyżowane efekty losowe, ponieważ każda klasa występuje w każdej szkole). To jest ta sama sytuacja, którą mieliśmy na pierwszym rysunku powyżej. Jeśli jednak dane są naprawdę zagnieżdżone, a nie skrzyżowane, musimy wyraźnie powiedzieć lme4:

> m0 <- lmer(extro ~ open + agree + social + (1 | school/class), data = dt)
> summary(m0)

Random effects:
 Groups       Name        Variance Std.Dev.
 class:school (Intercept)  8.2043  2.8643  
 school       (Intercept) 93.8421  9.6872  
 Residual                  0.9684  0.9841  
Number of obs: 1200, groups:  class:school, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117909  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

> m1 <- lmer(extro ~ open + agree + social + (1 | school) + (1 |class), data = dt)
summary(m1)

Random effects:
 Groups   Name        Variance Std.Dev.
 school   (Intercept) 95.887   9.792   
 class    (Intercept)  5.790   2.406   
 Residual              2.787   1.669   
Number of obs: 1200, groups:  school, 6; class, 4

Fixed effects:
             Estimate Std. Error t value
(Intercept) 60.198841   4.212974  14.289
open         0.010834   0.008349   1.298
agree       -0.005420   0.009605  -0.564
social      -0.001762   0.003107  -0.567

Zgodnie z oczekiwaniami wyniki różnią się, ponieważ m0jest to model zagnieżdżony, m1a model skrzyżowany.

Teraz, jeśli wprowadzimy nową zmienną dla identyfikatora klasy:

> dt$classID <- paste(dt$school, dt$class, sep=".")
> xtabs(~ school + classID, dt)

      classID
school I.a I.b I.c I.d II.a II.b II.c II.d III.a III.b III.c III.d IV.a IV.b
   I    50  50  50  50    0    0    0    0     0     0     0     0    0    0
   II    0   0   0   0   50   50   50   50     0     0     0     0    0    0
   III   0   0   0   0    0    0    0    0    50    50    50    50    0    0
   IV    0   0   0   0    0    0    0    0     0     0     0     0   50   50
   V     0   0   0   0    0    0    0    0     0     0     0     0    0    0
   VI    0   0   0   0    0    0    0    0     0     0     0     0    0    0

      classID
school IV.c IV.d V.a V.b V.c V.d VI.a VI.b VI.c VI.d
   I      0    0   0   0   0   0    0    0    0    0
   II     0    0   0   0   0   0    0    0    0    0
   III    0    0   0   0   0   0    0    0    0    0
   IV    50   50   0   0   0   0    0    0    0    0
   V      0    0  50  50  50  50    0    0    0    0
   VI     0    0   0   0   0   0   50   50   50   50

Tabela krzyżowa pokazuje, że każdy poziom klasy występuje tylko na jednym poziomie szkoły, zgodnie z twoją definicją gniazdowania. Dotyczy to również twoich danych, jednak trudno jest to pokazać w przypadku twoich danych, ponieważ są one bardzo rzadkie. Oba formulacje modelu będą teraz wytwarzać takie same wyniki (jak w przypadku modelu zagnieżdżonego m0powyżej):

> m2 <- lmer(extro ~ open + agree + social + (1 | school/classID), data = dt)
> summary(m2)

Random effects:
 Groups         Name        Variance Std.Dev.
 classID:school (Intercept)  8.2043  2.8643  
 school         (Intercept) 93.8419  9.6872  
 Residual                    0.9684  0.9841  
Number of obs: 1200, groups:  classID:school, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117882  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

> m3 <- lmer(extro ~ open + agree + social + (1 | school) + (1 |classID), data = dt)
> summary(m3)

Random effects:
 Groups   Name        Variance Std.Dev.
 classID  (Intercept)  8.2043  2.8643  
 school   (Intercept) 93.8419  9.6872  
 Residual              0.9684  0.9841  
Number of obs: 1200, groups:  classID, 24; school, 6

Fixed effects:
              Estimate Std. Error t value
(Intercept) 60.2378227  4.0117882  15.015
open         0.0061065  0.0049636   1.230
agree       -0.0076659  0.0056986  -1.345
social       0.0005404  0.0018524   0.292

Warto zauważyć, że skrzyżowane efekty losowe nie muszą występować w ramach tego samego czynnika - powyżej przejście było całkowicie w szkole. Jednak nie musi tak być i bardzo często tak nie jest. Na przykład, pozostając przy scenariuszu szkolnym, jeśli zamiast klas w szkole mamy uczniów w szkołach, a także interesujemy się lekarzami, w których uczniowie zostali zarejestrowani, wówczas mielibyśmy również gniazdowanie uczniów w obrębie lekarzy. Nie ma gniazdowania szkół wśród lekarzy i odwrotnie, więc jest to również przykład skrzyżowanych efektów losowych i mówimy, że szkoły i lekarze są skrzyżowani. Podobny scenariusz, w którym występują skrzyżowane efekty losowe, polega na tym, że indywidualne obserwacje są zagnieżdżone w dwóch czynnikach jednocześnie, co zwykle występuje przy tak zwanych powtarzanych pomiarachdane przedmiotu . Zazwyczaj każdy przedmiot jest mierzony / testowany wiele razy z / na różnych elementach i te same elementy są mierzone / testowane przez różne podmioty. Zatem obserwacje są skupione w podmiotach i przedmiotach, ale przedmioty nie są zagnieżdżone w przedmiotach i odwrotnie. Ponownie mówimy, że przedmioty i przedmioty są skrzyżowane .

Podsumowanie: TL; DR

Różnica między skrzyżowanymi i zagnieżdżonymi efektami losowymi polega na tym, że zagnieżdżone efekty losowe występują, gdy jeden czynnik (zmienna grupująca) pojawia się tylko na określonym poziomie innego czynnika (zmienna grupująca). Jest to określone za lme4pomocą:

(1|group1/group2)

gdzie group2jest zagnieżdżony group1.

Skrzyżowane efekty losowe są po prostu: nie zagnieżdżone . Może się to zdarzyć w przypadku trzech lub więcej zmiennych grupujących (czynników), w których jeden czynnik jest osobno zagnieżdżony w obu pozostałych, lub w przypadku dwóch lub więcej czynników, w których poszczególne obserwacje są zagnieżdżone osobno w ramach dwóch czynników. Są one określone w lme4:

(1|group1) + (1|group2)


16
+6, to naprawdę fajna odpowiedź. Przypomnij mi za kilka dni, a ja naliczę za to nagrodę.
gung

2
Doskonałe wyjaśnienie. Czy istnieje nazwa potencjalnie trzeciego rodzaju eksperymentalnego projektu, w którym tworzysz unikalne poziomy dla dwóch czynników (ewentualnie zagnieżdżonych), więc jeśli śledzę kohorty kupujące motocykle od różnych sprzedawców w różnych miastach, jak mam przekazać czytelnikom, że zasadniczo stworzyłeś jeden poziom współczynnika interaction(city, dealer)?
AdamO,

2
+6, to świetna odpowiedź, że czułem, że mogę doładować nagrodę @ gung inną. Nawiasem mówiąc, walczę z tym, co prawdopodobnie jest bardzo podstawowym zamieszaniem ( tutaj jest moje Q ) i bardzo doceniłbym twoją pomoc.
ameba

1
@RobertLong Wygląda na to, że projekty podzielonej działki (powtarzane miary) są często nazywane „zagnieżdżonymi”, nawet jeśli tak naprawdę nie są zagnieżdżone zgodnie z twoją odpowiedzią. Ta niespójność terminologiczna prawdopodobnie przyczyniła się do mojego zamieszania w powiązanym pytaniu. Byłoby wspaniale, gdybyś mógł to wyjaśnić, tu lub tam. Zastanawiam się nawet, czy powinienem opublikować osobne (nie zorientowane na R) pytanie terminologiczne dotyczące tego, co jest zagnieżdżone na podzielonych działkach.
ameba

2
Zaktualizuj mój poprzedni komentarz. Sprawdziłem dwie stare i autorytatywne książki na temat eksperymentalnego projektu: Maxwell i Delaney, 1990, Projektowanie eksperymentów i analizowanie danych oraz Montgomery, 1976, Projektowanie i analiza eksperymentów. Obaj mówią o projektach zagnieżdżonych i obaj mówią o powtarzanych pomiarach, czyli dzielonych wykresach; oba używają słowa „zagnieżdżone” tylko w takim znaczeniu, w jakim go używasz, i nigdy nie odnoszą się do powtarzających się miar jako zagnieżdżonych. Nie sądzę więc, by w ogóle istniała jakakolwiek różnica terminologiczna.
ameba
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.