Ich versuche, von der Verwendung des ez
Pakets zu lme
ANOVA für wiederholte Messungen überzugehen (da ich hoffe, dass ich benutzerdefinierte Kontraste verwenden kann lme
).
Den Ratschlägen dieses Blogposts folgend, konnte ich dasselbe Modell mit sowohl aov
(als auch auf ez
Anfrage) als auch einrichten lme
. Während in dem Beispiel in diesem Beitrag die F- Werte perfekt zwischen aov
und übereinstimmen lme
(ich habe es überprüft und sie tun es), ist dies für meine Daten nicht der Fall. Obwohl die F- Werte ähnlich sind, sind sie nicht gleich.
aov
gibt einen f-Wert von 1.3399 zurück, lme
gibt 1.36264 zurück. Ich bin bereit, das aov
Ergebnis als das "richtige" zu akzeptieren, da dies auch das ist, was SPSS zurückgibt (und dies ist das, was für mein Feld / meinen Vorgesetzten zählt).
Fragen:
Es wäre großartig, wenn jemand erklären könnte, warum dieser Unterschied besteht und wie ich
lme
glaubwürdige Ergebnisse erzielen kann. (Ich wäre auch bereit,lmer
anstelle vonlme
für diese Art von Sachen zu verwenden, wenn es das "richtige" Ergebnis gibt. Allerdings habe ich es bisher nicht verwendet.)Nach der Lösung dieses Problems möchte ich eine Kontrastanalyse durchführen. Insbesondere würde mich der Kontrast interessieren, die ersten beiden Faktorebenen (dh
c("MP", "MT")
) zusammenzufassen und diese mit der dritten Faktorebene (dh"AC"
) zu vergleichen. Testen des dritten gegenüber dem vierten Faktor (dh"AC"
gegenüber"DA"
).
Daten:
tau.base <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L,
22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L,
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L,
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L,
19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L), .Label = c("A18K",
"D21C", "F25E", "G25D", "H05M", "H07A", "H08H", "H25C", "H28E",
"H30D", "J10G", "J22J", "K20U", "M09M", "P20E", "P26G", "P28G",
"R03C", "U21S", "W08A", "W15V", "W18R"), class = "factor"), factor = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("MP", "MT", "AC", "DA"
), class = "factor"), value = c(0.9648092876, 0.2128662077, 1,
0.0607615485, 0.9912814024, 3.22e-08, 0.8073856412, 0.1465590332,
0.9981672618, 1, 1, 1, 0.9794401938, 0.6102546108, 0.428651501,
1, 0.1710644881, 1, 0.7639763913, 1, 0.5298989196, 1, 1, 0.7162733447,
0.7871177434, 1, 1, 1, 0.8560509327, 0.3096989662, 1, 8.51e-08,
0.3278862311, 0.0953598576, 1, 1.38e-08, 1.07e-08, 0.545290432,
0.1305621416, 2.61e-08, 1, 0.9834051136, 0.8044114935, 0.7938839461,
0.9910112678, 2.58e-08, 0.5762677121, 0.4750002288, 1e-08, 0.8584252623,
1, 1, 0.6020385797, 8.51e-08, 0.7964935271, 0.2238374288, 0.263377904,
1, 1.07e-08, 0.3160751898, 5.8e-08, 0.3460325565, 0.6842217296,
1.01e-08, 0.9438301877, 0.5578367224, 2.18e-08, 1, 0.9161424562,
0.2924856039, 1e-08, 0.8672987992, 0.9266688748, 0.8356425464,
0.9988463913, 0.2960361777, 0.0285680426, 0.0969063841, 0.6947998266,
0.0138254805, 1, 0.3494775301, 1, 2.61e-08, 1.52e-08, 0.5393467752,
1, 0.9069223275)), .Names = c("id", "factor", "value"), class = "data.frame", row.names = c(1L,
6L, 10L, 13L, 16L, 17L, 18L, 22L, 23L, 24L, 27L, 29L, 31L, 33L,
42L, 43L, 44L, 45L, 54L, 56L, 58L, 61L, 64L, 69L, 73L, 76L, 79L,
80L, 81L, 85L, 86L, 87L, 90L, 92L, 94L, 96L, 105L, 106L, 107L,
108L, 117L, 119L, 121L, 124L, 127L, 132L, 136L, 139L, 142L, 143L,
144L, 148L, 149L, 150L, 153L, 155L, 157L, 159L, 168L, 169L, 170L,
171L, 180L, 182L, 184L, 187L, 190L, 195L, 199L, 202L, 205L, 206L,
207L, 211L, 212L, 213L, 216L, 218L, 220L, 222L, 231L, 232L, 233L,
234L, 243L, 245L, 247L, 250L))
Und der Code:
require(nlme)
summary(aov(value ~ factor+Error(id/factor), data = tau.base))
anova(lme(value ~ factor, data = tau.base, random = ~1|id))
lme
Ergebnissen des Standardlehrbuchs ANOVA gibt (gegeben durchaov
und was ich brauche), ist dies für mich keine Option. In meiner Arbeit möchte ich eine ANOVA melden, nicht so etwas wie eine ANOVA. Interessanterweise zeigen Venables & Ripley (2002, S. 285), dass beide Ansätze zu identischen Schätzungen führen. Aber die Unterschiede in den F- Werten hinterlassen ein schlechtes Gefühl. Darüber hinaus gibtAnova()
(fromcar
) nur Chi²-Werte fürlme
Objekte zurück. Daher ist meine erste Frage für mich noch nicht beantwortet.lme
; Aber für Kontrasteglht
funktioniert auch dielm
Anpassung, nicht nur dielme
Anpassung. (Auch dielme
Ergebnisse sind Standard-Lehrbuchergebnisse.)lm
für eine wiederholte Messung keine Analyse angeben . Nuraov
kann mit wiederholten Messungen befassen , sondern wird ein Objekt der Klasse zurückgeben ,aovlist
die leider gehandhabt wird nicht durchglht
.lm
verwendet den Restfehler als Fehlerbegriff für alle Effekte; Wenn es Effekte gibt, die einen anderen Fehlerausdruck verwenden sollten,aov
ist dies erforderlich (oder verwenden Sie stattdessen die Ergebnisse vonlm
, um die F-Statistiken manuell zu berechnen). In Ihrem Beispiel ist der Fehlerterm fürfactor
dieid:factor
Interaktion, dh der Restfehlerterm in einem additiven Modell. Vergleichen Sie Ihre Ergebnisse mitanova(lm(value~factor+id))
.Antworten:
Sie unterscheiden sich, weil das IME-Modell die Varianzkomponente zwingt
id
, größer als Null zu sein. Wenn wir die rohe Anova-Tabelle für alle Terme betrachten, sehen wir, dass der mittlere quadratische Fehler für id kleiner ist als der für die Residuen.Wenn wir die Varianzkomponenten berechnen, bedeutet dies, dass die Varianz aufgrund von id negativ ist. Mein Gedächtnis des erwarteten Gedächtnisses der mittleren Quadrate ist wackelig, aber die Berechnung ist ungefähr so
Das klingt seltsam, kann aber passieren. Dies bedeutet, dass die Durchschnittswerte für jede ID näher beieinander liegen, als Sie es aufgrund der verbleibenden Abweichungen im Modell erwarten würden.
Im Gegensatz dazu erzwingt die Verwendung von lme, dass diese Varianz größer als Null ist.
Hier werden Standardabweichungen angegeben, die quadriert werden, um die Varianzausbeuten
9.553e-10
für die ID-Varianz und0.1586164
für die Restvarianz zu erhalten.Nun sollten Sie wissen, dass die Verwendung
aov
für wiederholte Messungen nur dann sinnvoll ist, wenn Sie der Ansicht sind, dass die Korrelation zwischen allen Paaren wiederholter Messungen identisch ist. Dies nennt man zusammengesetzte Symmetrie. (Technisch gesehen Rundheitsgrad erforderlich ist , aber das ist jetzt ausreichend.) Ein Grund für die Verwendunglme
überaov
ist , dass es verschiedene Arten von Korrelationsstrukturen umgehen kann.In diesem bestimmten Datensatz ist die Schätzung für diese Korrelation negativ; Dies erklärt, warum der mittlere quadratische Fehler für id kleiner war als der verbleibende quadratische Fehler. Eine negative Korrelation bedeutet, dass die erste Messung eines Individuums unter dem Durchschnitt liegt und die zweite Messung über dem Durchschnitt liegt, wodurch die Gesamtdurchschnittswerte für das Individuum weniger variabel sind, als wir es bei einer Nullkorrelation oder einer positiven Korrelation erwarten würden.
Die Verwendung
lme
mit einem Zufallseffekt entspricht der Anpassung eines zusammengesetzten Symmetriemodells, bei dem diese Korrelation nicht negativ sein muss. Wir können ein Modell anpassen, in dem die Korrelation negativ sein darf, indem wir verwendengls
:Diese ANOVA-Tabelle stimmt mit der Tabelle von der
aov
Passform und von derlm
Passform überein .In Ordnung und jetzt? Wenn Sie der Meinung sind, dass die Varianz von
id
und die Korrelation zwischen Beobachtungen nicht negativ sein sollten, ist dielme
Anpassung tatsächlich geeigneter als die Anpassung unter Verwendung vonaov
oderlm
weil ihre Schätzung der Restvarianz etwas besser ist. Wenn Sie jedoch die Korrelation zwischen Beobachtungen glauben könnte negativ seinaov
oderlm
odergls
besser ist.Sie könnten auch daran interessiert sein, die Korrelationsstruktur weiter zu untersuchen. Um eine allgemeine Korrelationsstruktur zu betrachten, würden Sie so etwas tun
Hier beschränke ich die Ausgabe nur auf die Korrelationsstruktur. Die Werte 1 bis 4 stehen für die vier Stufen von
factor
; Wir sehen, dass Faktor 1 und Faktor 4 eine ziemlich starke negative Korrelation haben:Eine Möglichkeit, zwischen diesen Modellen zu wählen, ist ein Likelihood-Ratio-Test. Dies zeigt, dass das Zufallseffektmodell und das allgemeine Korrelationsstrukturmodell sich statistisch nicht signifikant unterscheiden. In diesem Fall wird normalerweise das einfachere Modell bevorzugt.
quelle
lme
zu verwenden, um die gleichen Ergebnisse wie mitaov
(und damitlme
für alle ANOVAs) zu erhalten, und zwar unter Verwendung des Korrelationsarguments in der Aufforderung anlme
:anova(lme(value ~ factor, data = tau.base, random = ~1|id, correlation = corCompSymm(form = ~1|id)))
aov
,lme
ohne Verbindung Symmetrie undlme
mit Verbindung Symmetrie) haben genau die gleiche Anzahl von dfs.anova.lme()
. Aus Ihrer Antwort ging hervor, dass die Beziehung zwischen der ANOVA und den gemischten Modellen in ihrer Korrelationsstruktur liegt. Ich habe dann gelesen, dass das Auferlegen einer kompundsymmetrischen Korrelationsstruktur zur Gleichheit zwischen den beiden Ansätzen führt. Deshalb habe ich es auferlegt. Ich habe keine Ahnung, ob dies einen anderen DF auffrisst. Die Ausgabe ist jedoch mit dieser Interpretation nicht einverstanden.aov()
passt das Modell über dielm()
Verwendung der kleinsten Quadrate,lme
passt über die maximale Wahrscheinlichkeit. Dieser Unterschied in der Art und Weise, wie die Parameter des linearen Modells geschätzt werden, erklärt wahrscheinlich den (sehr kleinen) Unterschied in Ihren f-Werten.In der Praxis (z. B. beim Testen von Hypothesen) sind diese Schätzungen dieselben, sodass ich nicht sehe, wie eine glaubwürdiger als die andere sein könnte. Sie stammen aus verschiedenen Modellanpassungsparadigmen.
Für Kontraste müssen Sie eine Kontrastmatrix für Ihre Faktoren einrichten. Wie das geht, zeigen Venebles und Ripley auf den Seiten 143, 146 und 293-294 der 4. Ausgabe.
quelle
lme
oderlmer
zu berechnen, da sie eine Methode verwendet, die ähnlich, aber nicht identisch ist. Gibt es also keine Möglichkeit, Kontraste für ANOVAs mit wiederholten Messungen in R zu berechnen?