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 durch aov
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 gibt Anova()
(from car
) nur Chi²-Werte für lme
Objekte zurück. Daher ist meine erste Frage für mich noch nicht beantwortet.
lme
; Aber für Kontraste glht
funktioniert auch die lm
Anpassung, nicht nur die lme
Anpassung. (Auch die lme
Ergebnisse sind Standard-Lehrbuchergebnisse.)
lm
für eine wiederholte Messung keine Analyse angeben . Nur aov
kann mit wiederholten Messungen befassen , sondern wird ein Objekt der Klasse zurückgeben , aovlist
die leider gehandhabt wird nicht durch glht
.
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 von lm
, um die F-Statistiken manuell zu berechnen). In Ihrem Beispiel ist der Fehlerterm für factor
die id:factor
Interaktion, dh der Restfehlerterm in einem additiven Modell. Vergleichen Sie Ihre Ergebnisse mit anova(lm(value~factor+id))
.