Wiederholte ANOVA-Messungen mit lme / lmer in R für zwei subjektinterne Faktoren

19

Ich versuche, lmeaus dem nlmePaket Ergebnisse von aovANOVAs für wiederholte Messungen zu replizieren . Ich habe dies für ein Einzelfaktor-Experiment mit wiederholten Messungen und für ein Zweifaktor-Experiment mit einem Zwischensubjektfaktor und einem Innensubjektfaktor getan, aber ich habe Probleme, es für ein Zweifaktor-Experiment mit zwei Innensubjekten durchzuführen Faktoren.

Ein Beispiel ist unten gezeigt. Aund Bsind Faktoren mit festem Effekt und subjectsind ein Faktor mit zufälligem Effekt.

set.seed(1)
d <- data.frame(
    Y = rnorm(48),
    subject = factor(rep(1:12, 4)),
    A = factor(rep(1:2, each=24)),
    B = factor(rep(rep(1:2, each=12), 2)))

summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d))  # Standard repeated measures ANOVA

library(nlme)
# Attempts:
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject))  # not same as above
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject/(A+B)))  # gives error

Ich konnte keine Erklärung dafür im Buch von Pinheiro und Bates finden, aber ich habe es vielleicht übersehen.

mark999
quelle

Antworten:

15

Was Sie anpassen, aovwird als Strip-Plot bezeichnet und ist schwierig anzupassen, lmeda die subject:Aund subject:Bzufälligen Effekte überkreuzt sind.

Ihr erster Versuch entspricht aov(Y ~ A*B + Error(subject), data=d), wobei nicht alle zufälligen Effekte berücksichtigt werden. Ihr zweiter Versuch ist die richtige Idee, aber die Syntax für gekreuzte zufällige Effekte mit lme ist sehr schwierig.

Verwenden Sie lmeaus dem nlmePaket, wäre der Code

lme(Y ~ A*B, random=list(subject=pdBlocked(list(~1, pdIdent(~A-1), pdIdent(~B-1)))), data=d)

Verwenden Sie lmeraus dem lme4Paket, wäre der Code so etwas wie

lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d)    

Diese Threads von R-help können hilfreich sein (und um Anerkennung zu geben, habe ich den nlmeCode von dort erhalten).

http://www.biostat.wustl.edu/archives/html/s-news/2005-01/msg00091.html

http://permalink.gmane.org/gmane.comp.lang.r.lme4.devel/3328

http://www.mail-archive.com/[email protected]/msg10843.html

Dieser letzte Link bezieht sich auf S.165 von Pinheiro / Bates; das kann auch hilfreich sein.

BEARBEITEN: Beachten Sie auch, dass in dem Datensatz, den Sie haben, einige der Varianzkomponenten negativ sind, was bei Verwendung von Zufallseffekten mit lme nicht zulässig ist, sodass sich die Ergebnisse unterscheiden. Mit einem Seed von 8 kann ein Datensatz mit allen positiven Varianzkomponenten erstellt werden. Die Ergebnisse stimmen dann überein. Siehe diese Antwort für Details.

Auch beachten , dass lmeaus nlmenicht den Nenner - Freiheitsgrade korrekt berechnen, so dass die F-Statistik zustimmen , aber nicht die p-Werte, und lmervon lme4nicht versuchen , weil es in Gegenwart von unsymmetrischen gekreuzt zufälligen Effekten sehr schwierig ist, und kann nicht sei sogar eine vernünftige Sache. Aber das ist mehr, als ich hier beschreiben möchte.

Aaron - Setzen Sie Monica wieder ein
quelle
Aaron, ich glaube nicht, dass dein lmer-Code korrekt ist. Die aovAufforderung zur Einreichung von Vorschlägen ist einfach ein Standardentwurf mit wiederholten Messungen, den man mit lmer als analysieren würde lmer(Y~A*B+(1|subject)). (Siehe auch diese Antwort für kompliziertere Modelle, die eine Abschätzung der Varianz und der Korrelationen zwischen Ss- Effekten ermöglichen : stats.stackexchange.com/questions/13166/rs-lmer-cheat-sheet/… )
Mike Lawrence
4
Der AOV-Aufruf des OP hat drei zufällige Effekte. das mit lmermeinem obigen code zu replizieren ist richtig. Ihr lmerCode hat nur einen zufälligen Effekt. Was richtig ist, hängt vom Kontext ab.
Aaron - Reinstate Monica
Beachten Sie auch, dass die von Ihnen verknüpfte Antwort keine Beispiele für gekreuzte zufällige Effekte enthält.
Aaron - Reinstate Monica
6

Ihr erster Versuch ist die richtige Antwort, wenn das alles ist, was Sie versuchen zu tun. nlme () ermittelt die zwischen und innerhalb von Komponenten, Sie müssen sie nicht angeben.

Das Problem, auf das Sie stoßen, liegt nicht darin, dass Sie nicht wissen, wie Sie das Modell angeben sollen, sondern dass wiederholte Messungen von ANOVA und gemischten Effekten nicht dasselbe sind. Manchmal stimmen die Ergebnisse des ANOVA- und des Mixed-Effects-Modells überein. Dies ist insbesondere dann der Fall, wenn Sie Ihre Daten wie bei einer ANOVA aggregieren und daraus beides berechnen. Aber im Allgemeinen, wenn es richtig gemacht wird, sind die Ergebnisse so gut wie nie gleich, obwohl die Schlussfolgerungen ähnlich sein mögen. Ihre Beispieldaten sind keine realen wiederholten Kennzahlen, bei denen Sie häufig Replikationen jeder Kennzahl innerhalb von S haben. Wenn Sie eine ANOVA durchführen, aggregieren Sie normalerweise diese Replikationen, um eine Schätzung des Effekts für jedes Subjekt zu erhalten. Beim Mixed-Effects-Modellieren gibt es so etwas nicht. Sie arbeiten mit den Rohdaten. Wenn du das tust,

[Wenn Sie nebenbei lmer () (aus dem lme4-Paket) anstelle von lme () verwenden, geben Sie mir SS- und MS-Werte, die exakt mit der ANOVA für die Effekte in Ihrem Beispiel übereinstimmen. Es ist nur so, dass die Fs unterschiedlich sind.]

John
quelle
1
Ich glaube, dass wenn alles ausgeglichen ist, das Ergebnis mit einem gemischten Modell (dh Schätzungen mit ML oder REML) und das Ergebnis mit einer ANOVA (dh Schätzungen mit Momenten) nahezu identisch sind. Das Problem in diesem Fall ist die Syntax, mit der mit beiden Methoden dasselbe Modell angepasst werden kann.
Aaron - Reinstate Monica
Ich bin nicht sicher, was Sie erreichen wollen. Es sah so aus, als wollten Sie nur lernen, wie Sie Ergebnisse replizieren, um die Beziehung besser zu verstehen. Was Sie tun möchten, können Sie mit nlme nicht tun. Ich habe nur lmer angeschaut und es ist dort auch nicht möglich (obwohl es zumindest die MS für Ihre Effekte identisch mit der ANOVA meldet). Wenn Sie ANOVA-Ergebnisse erhalten möchten, führen Sie einfach eine ANOVA durch. Mit richtigen Daten sind die beiden fast nie genau gleich.
John
1
Beachten Sie auch, dass der erste Versuch nicht korrekt ist, da er die gekreuzten Zufallseffekte nicht richtig berücksichtigt.
Aaron - Reinstate Monica
1
John, danke für deine Antwort. Mein Grund dafür war, dass ich irgendwo auf dieser Site gelesen habe, dass ANOVA mit wiederholten Messungen im Allgemeinen nicht mehr empfohlen wird, wobei Modelle mit gemischten Effekten bevorzugt werden. Aus irgendeinem Grund hatte ich den Eindruck, dass die beiden Methoden für ein ausgewogenes Design die gleichen Ergebnisse liefern würden, und ich habe versucht, dies zu bestätigen.
mark999
Aaron, ich nahm es als die richtige Antwort auf das, was als ungefähr gleichwertig angesehen werden würde. In der Regel wird dies als erster Schritt bei der Replikation wiederholter Messungen empfohlen. Es gibt kein 'korrektes' wie im perfekten Match. Das Hinzufügen von mehr zufälligen Effekten wird das Problem nicht lösen. Ich stelle fest, dass eine der Antworten, auf die Sie verweisen, die von Ihnen geschriebene Lösung empfiehlt. Das ist jedoch absolut kein anderes ANOVA-Ergebnis (das Modell ist anders, aber nicht ANOVA) als das, was ich gesagt habe, war korrekt. Ich vermute, der Autor hat versucht, genau dem zu entsprechen, was das OP verlangt, aber es ist kein vernünftiges Modell.
John