(Dies ist eine ziemlich lange Antwort, es gibt eine Zusammenfassung am Ende)
Sie verstehen nicht falsch, was verschachtelte und gekreuzte zufällige Effekte in dem von Ihnen beschriebenen Szenario sind. Ihre Definition von gekreuzten zufälligen Effekten ist jedoch etwas eng. Eine allgemeinere Definition von gekreuzten zufälligen Effekten lautet einfach: nicht verschachtelt . Wir werden uns dies am Ende dieser Antwort ansehen, aber der Großteil der Antwort konzentriert sich auf das von Ihnen vorgestellte Szenario mit Klassenräumen in Schulen.
Beachten Sie zuerst, dass:
Das Verschachteln ist eine Eigenschaft der Daten oder vielmehr des experimentellen Designs, nicht des Modells.
Ebenfalls,
Verschachtelte Daten können auf mindestens zwei verschiedene Arten codiert werden. Dies ist der Kern des Problems, das Sie gefunden haben.
Der Datensatz in Ihrem Beispiel ist ziemlich groß, daher werde ich ein anderes Schulbeispiel aus dem Internet verwenden, um die Probleme zu erklären. Betrachten Sie zunächst das folgende stark vereinfachte Beispiel:
Hier haben wir Klassen in Schulen verschachtelt, was ein bekanntes Szenario ist. Der wichtige Punkt dabei ist, dass die Klassen zwischen den einzelnen Schulen dieselbe Kennung haben, obwohl sie sich unterscheiden, wenn sie verschachtelt sind . Class1
erscheint in School1
, School2
und School3
. Jedoch , wenn die Daten verschachtelt sind dann Class1
in School1
ist nicht die gleiche Maßeinheit Class1
in School2
und School3
. Wenn sie gleich wären, hätten wir diese Situation:
Das bedeutet, dass jede Klasse zu jeder Schule gehört. Ersteres ist ein verschachteltes Design, und Letzteres ist ein gekreuztes Design (manche nennen es auch Mehrfachmitgliedschaft), und wir würden dies folgendermaßen formulieren lme4
:
(1|School/Class)
oder äquivalent (1|School) + (1|Class:School)
und
(1|School) + (1|Class)
beziehungsweise. Aufgrund der Mehrdeutigkeit, ob zufällige Effekte verschachtelt oder gekreuzt werden, ist es sehr wichtig, das Modell korrekt anzugeben, da diese Modelle unterschiedliche Ergebnisse liefern, wie nachfolgend gezeigt wird. Darüber hinaus ist es nicht möglich, allein durch Überprüfung der Daten zu erkennen, ob wir zufällige Effekte verschachtelt oder gekreuzt haben. Dies kann nur mit Kenntnis der Daten und ermittelt werden des Versuchsaufbaus .
Betrachten wir zunächst einen Fall, in dem die Klassenvariable schulübergreifend eindeutig codiert ist:
Beim Verschachteln oder Überkreuzen gibt es keine Unklarheiten mehr. Die Verschachtelung ist explizit. Lassen Sie uns dies nun an einem Beispiel in R sehen, wo wir 6 Schulen (mit I
- gekennzeichnet VI
) und 4 Klassen in jeder Schule (mit a
bis gekennzeichnet d
) haben:
> 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
Aus dieser Kreuztabelle können wir ersehen, dass jede Klassen-ID in jeder Schule erscheint, was Ihrer Definition von gekreuzten zufälligen Effekten entspricht (in diesem Fall haben wir vollständig gekreuzte zufällige Effekte im Gegensatz zu teilweise gekreuzten Effekten, da jede Klasse in jeder Schule vorkommt). Das ist also die gleiche Situation, die wir in der ersten Abbildung oben hatten. Wenn die Daten jedoch wirklich verschachtelt und nicht gekreuzt sind, müssen wir explizit mitteilen 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
Wie erwartet unterscheiden sich die Ergebnisse, da m0
es sich dabei um ein verschachteltes Modell handeltm1
ein gekreuztes Modell handelt.
Wenn wir nun eine neue Variable für die Klassenkennung einführen:
> 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
Die Kreuztabelle zeigt, dass jede Klassenstufe gemäß Ihrer Definition der Verschachtelung nur in einer Schulstufe vorkommt. Dies ist auch bei Ihren Daten der Fall, es ist jedoch schwierig, dies bei Ihren Daten zu zeigen, da diese sehr spärlich sind. Beide Modellformulierungen erzeugen nun die gleiche Ausgabe (die des m0
obigen verschachtelten Modells ):
> 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
Es ist anzumerken, dass gekreuzte zufällige Effekte nicht innerhalb desselben Faktors auftreten müssen - oben war die Kreuzung vollständig innerhalb der Schule. Dies muss jedoch nicht der Fall sein und ist es sehr oft auch nicht. Wenn wir uns zum Beispiel an ein Schulszenario halten und statt Schulklassen Schüler in Schulen haben und uns auch für die Ärzte interessieren, bei denen die Schüler registriert sind, dann haben wir auch eine Verschachtelung von Schülern in Ärzten. Es gibt keine Verschachtelung von Schulen innerhalb von Ärzten oder umgekehrt, daher ist dies auch ein Beispiel für gekreuzte zufällige Effekte, und wir sagen, dass Schulen und Ärzte gekreuzt sind. Ein ähnliches Szenario, in dem gekreuzte zufällige Effekte auftreten, besteht darin, dass einzelne Beobachtungen gleichzeitig in zwei Faktoren verschachtelt sind, was häufig bei sogenannten wiederholten Messungen der Fall istBetreff-Artikel- Daten. In der Regel wird jedes Objekt mehrmals mit / an verschiedenen Objekten gemessen / getestet, und dieselben Objekte werden von verschiedenen Objekten gemessen / getestet. Daher werden Beobachtungen in Subjekten und in Elementen zusammengefasst, aber Elemente werden nicht in Subjekten verschachtelt oder umgekehrt. Wieder sagen wir, dass Themen und Gegenstände gekreuzt sind .
Zusammenfassung: TL; DR
Der Unterschied zwischen gekreuzten und verschachtelten Zufallseffekten besteht darin, dass verschachtelte Zufallseffekte auftreten, wenn ein Faktor (Gruppierungsvariable) nur innerhalb einer bestimmten Ebene eines anderen Faktors (Gruppierungsvariable) auftritt. Dies wird angegeben in lme4
mit:
(1|group1/group2)
wo group2
ist in verschachtelt group1
.
Gekreuzte zufällige Effekte sind einfach: nicht verschachtelt . Dies kann bei drei oder mehr Gruppierungsvariablen (Faktoren) auftreten, bei denen ein Faktor in beiden anderen Faktoren separat verschachtelt ist, oder bei zwei oder mehr Faktoren, bei denen einzelne Beobachtungen innerhalb der beiden Faktoren separat verschachtelt sind. Diese sind angegeben in lme4
mit:
(1|group1) + (1|group2)
interaction(city, dealer)
?