Meine Frage basiert auf dieser Antwort, die zeigte, welches lme4::lmer
Modell einer Zwei-Wege-ANOVA mit wiederholten Messungen entspricht:
require(lme4)
set.seed(1234)
d <- data.frame(
y = rnorm(96),
subject = factor(rep(1:12, 4)),
a = factor(rep(1:2, each=24)),
b = factor(rep(rep(1:2, each=12))),
c = factor(rep(rep(1:2, each=48))))
# standard two-way repeated measures ANOVA:
summary(aov(y~a*b+Error(subject/(a*b)), d[d$c == "1",]))
# corresponding lmer call:
anova(lmer(y ~ a*b+(1|subject) + (1|a:subject) + (1|b:subject), d[d$c == "1",]))
Meine Frage ist nun, wie ich dies auf den Fall einer Drei-Wege-ANOVA ausweiten kann:
summary(aov(y~a*b*c+Error(subject/(a*b*c)), d))
## [...]
## Error: subject:a:b:c
## Df Sum Sq Mean Sq F value Pr(>F)
## a:b:c 1 0.101 0.1014 0.115 0.741
## Residuals 11 9.705 0.8822
Die natürliche Erweiterung sowie deren Versionen stimmen nicht mit den ANOVA-Ergebnissen überein:
anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject), d))
## [...]
## a:b:c 1 0.1014 0.1014 0.1500
anova(lmer(y ~ a*b*c +(1|subject) + (1|a:subject) + (1|b:subject) + (1|c:subject) +
(1|a:b:subject) + (1|a:c:subject) + (1|b:c:subject), d))
## [...]
## a:b:c 1 0.1014 0.1014 0.1539
Beachten Sie, dass eine sehr ähnliche Frage gestellt wurde , bevor . Es fehlten jedoch Beispieldaten (die hier bereitgestellt werden).
y ~ a*b + (1 + a*b|subject), d[d$c == "1",]
? Oder fehlt mir vielleicht etwas?lmer
wird sich beschweren, da die zufälligen Effekte nicht mehr identifiziert werden. Anfangs dachte ich auch, dass dies das Modell ist, das ich will, aber es ist nicht so. Wenn Sie das von mir für den 2-Wege-Fall vorgeschlagene Modell mit der Standard-ANOVA vergleichen, werden Sie feststellen, dass die F-Werte genau übereinstimmen. Wie in der Antwort gesagt, habe ich verlinkt.lmer
wird nicht erwartet, dass das erste Modell, das Sie geschrieben haben (das die zufälligen Zwei-Wege-Interaktionen ausschließt) , einer 3-Wege-RM-ANOVA entspricht, sondern das zweite, das Sie geschrieben haben (das den Zufall enthält) wechselseitige Wechselwirkungen) sollte sein. Was die Gründe angeht, warum es selbst bei diesem Modell eine Diskrepanz gibt, habe ich eine Ahnung, was das Problem ist. Wenn ich zum Abendessen gehe, schaue ich mir den Spielzeugdatensatz noch einmal an.Antworten:
Die direkte Antwort auf Ihre Frage lautet: Das letzte Modell, das Sie geschrieben haben:
Ich glaube, es ist "im Prinzip" richtig, obwohl es eine seltsame Parametrisierung ist, die in der Praxis nicht immer gut zu funktionieren scheint.
aov()
Ich denke, es gibt zwei Gründe, warum die Ausgabe, die Sie von diesem Modell erhalten, nicht mit der Ausgabe übereinstimmt.lmer()
(und den meisten anderen gemischten Modellprogrammen) nicht zugelassen werden.Lassen Sie mich zunächst die Parametrisierung demonstrieren, die ich in Ihrem ersten Zwei-Wege-ANOVA-Beispiel bevorzuge. Angenommen, Ihr Datensatz
d
ist geladen. Ihr Modell (beachten Sie, dass ich von Dummy- zu Kontrastcodes gewechselt habe) war:was hier gut funktionierte, da es mit der
aov()
Ausgabe übereinstimmte . Das Modell, das ich bevorzuge, beinhaltet zwei Änderungen: Manuelles Kontrastcodieren der Faktoren, damit wir nicht mit R-Faktor-Objekten arbeiten (was ich in 100% der Fälle empfehle) und unterschiedliche Angabe der Zufallseffekte:Die beiden Ansätze sind im einfachen Zwei-Wege-Problem völlig gleichwertig. Jetzt gehen wir zu einem 3-Wege-Problem über. Ich habe bereits erwähnt, dass der von Ihnen angegebene Beispieldatensatz pathologisch war. Bevor ich mich also mit Ihrem Beispieldatensatz befasse, möchte ich zunächst einen Datensatz aus einem tatsächlichen Varianzkomponentenmodell generieren (dh wenn Varianzkomponenten ungleich Null in das wahre Modell integriert sind). Zuerst werde ich zeigen, wie meine bevorzugte Parametrisierung besser zu funktionieren scheint als die von Ihnen vorgeschlagene. Dann werde ich einen anderen Weg zur Schätzung der Varianzkomponenten demonstrieren, der nicht impliziert, dass sie nicht negativ sein dürfen. Dann sind wir in der Lage, das Problem mit dem ursprünglichen Beispieldatensatz zu sehen.
Der neue Datensatz wird in seiner Struktur identisch sein, außer dass wir 50 Probanden haben werden:
Die F-Verhältnisse, die wir anpassen möchten, sind:
Hier sind unsere beiden Modelle:
Wie wir sehen können, stimmt nur die zweite Methode mit der Ausgabe von überein
aov()
, obwohl sich die erste Methode zumindest im Baseballstadion befindet. Die zweite Methode erreicht auch eine höhere Log-Wahrscheinlichkeit. Ich bin mir nicht sicher, warum diese beiden Methoden unterschiedliche Ergebnisse liefern, da ich wiederum denke, dass sie "im Prinzip" äquivalent sind, aber vielleicht aus numerischen / rechnerischen Gründen. Oder vielleicht irre ich mich und sie sind selbst im Prinzip nicht gleichwertig.Jetzt werde ich eine andere Möglichkeit zeigen, die Varianzkomponenten basierend auf traditionellen ANOVA-Ideen zu schätzen. Grundsätzlich nehmen wir die erwarteten mittleren Quadratgleichungen für Ihr Design, ersetzen die beobachteten Werte der mittleren Quadrate und lösen die Varianzkomponenten. Um die erwarteten mittleren Quadrate zu erhalten, verwenden wir eine R-Funktion, die ich vor einigen Jahren geschrieben habe
EMS()
und die HIER dokumentiert ist . Unten gehe ich davon aus, dass die Funktion bereits geladen ist.Okay, jetzt kehren wir zum ursprünglichen Beispiel zurück. Die F-Verhältnisse, die wir zu erreichen versuchen, sind:
Hier sind unsere beiden Modelle:
In diesem Fall liefern die beiden Modelle grundsätzlich die gleichen Ergebnisse, obwohl die zweite Methode eine sehr geringfügig höhere Log-Wahrscheinlichkeit aufweist. Keine der beiden Methoden stimmt überein
aov()
. Aber schauen wir uns an, was wir erhalten, wenn wir wie oben nach den Varianzkomponenten suchen. Verwenden Sie dazu das ANOVA-Verfahren, das die Varianzkomponenten nicht als nicht negativ einschränkt (sondern nur in ausgeglichenen Designs ohne kontinuierliche Prädiktoren und ohne verwendet werden kann) fehlende Daten; die klassischen ANOVA-Annahmen).Jetzt können wir sehen, was am ursprünglichen Beispiel pathologisch ist. Das am besten passende Modell impliziert, dass mehrere der zufälligen Varianzkomponenten negativ sind. Aber
lmer()
(und die meisten anderen gemischten Modellprogramme) beschränken die Schätzungen der Varianzkomponenten auf nicht negativ. Dies wird allgemein als sinnvolle Einschränkung angesehen, da Abweichungen natürlich niemals wirklich negativ sein können. Eine Konsequenz dieser Einschränkung ist jedoch, dass gemischte Modelle Datensätze mit negativen Korrelationen innerhalb der Klasse nicht genau darstellen können, d. H. Datensätze, bei denen die Beobachtungen aus demselben Cluster geringer sind(eher als mehr) im Durchschnitt ähnlich wie Beobachtungen, die zufällig aus dem Datensatz gezogen wurden, und folglich, wenn die Varianz innerhalb des Clusters die Varianz zwischen den Clustern wesentlich übersteigt. Solche Datensätze sind durchaus vernünftige Datensätze, die man gelegentlich in der realen Welt findet (oder versehentlich simuliert!), Sie können jedoch von einem Varianzkomponentenmodell nicht sinnvoll beschrieben werden, da sie negative Varianzkomponenten implizieren. Sie können jedoch von solchen Modellen "unsinnig" beschrieben werden, wenn die Software dies zulässt.aov()
erlaubt es.lmer()
nicht.quelle
I am not sure why these two methods give different results, as again I think they are "in principle" equivalent, but maybe it is for some numerical/computational reasons
- verstehen Sie vielleicht das besser jetzt (zwei Jahre später)? Ich habe versucht herauszufinden, was der Unterschied ist, aber verstehe es auch nicht ...A
(1|A:sub)
(0+A|sub)
lmer
Aufrufe identischeanova()
Ausgaben erzeugen , die zufälligen Effektvarianzen dennoch sehr unterschiedlich sind: sieheVarCorr(mod1)
undVarCorr(mod2)
. Ich verstehe nicht ganz, warum das passiert; machst du? Fürmod3
undmod4
kann man sehen, dass vier von sieben Varianzen fürmod3
tatsächlich gleich Null sind (fürmod4
alle sieben sind sie ungleich Null); Diese "Singularität"mod3
ist wahrscheinlich der Grund, warum sich die Anova-Tabellen unterscheiden. Abgesehen davon, wie würden Sie Ihren „bevorzugten Weg“ verwenden , wenna
undb
mehr als zwei Ebene haben?Ist
a
,b
,c
fest oder zufällige Effekte? Wenn sie festgelegt sind, lautet Ihre Syntax einfachquelle
subject
allen Effekten (dhWithin
) nur einen Fehlerterm erhalten . Siehe Experimentelles Design: Verfahren für Verhaltenswissenschaften (2013) von Kirk, Kapitel 10 (S.458) oder meinen Beitrag hierlmer
? Ich werde trotzdem mein Exemplar von Kirk (nur 2. Auflage) bekommen und sehen, was darin steht.lmer
Modelle zu montieren . Der beste Weg, um die Modellanpassung zu überprüfen, besteht darin, ihre dfs mit zu überprüfen,lmerTest
da die KR-Näherung Ihnenexact
dfs und damit p-Werte geben soll.