Ich versuche, von der Verwendung des ezPakets zu lmeANOVA 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 ezAnfrage) als auch einrichten lme. Während in dem Beispiel in diesem Beitrag die F- Werte perfekt zwischen aovund ü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.
aovgibt einen f-Wert von 1.3399 zurück, lmegibt 1.36264 zurück. Ich bin bereit, das aovErgebnis 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
lmeglaubwürdige Ergebnisse erzielen kann. (Ich wäre auch bereit,lmeranstelle vonlmefü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))
lmeErgebnissen des Standardlehrbuchs ANOVA gibt (gegeben durch aovund 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 lmeObjekte zurück. Daher ist meine erste Frage für mich noch nicht beantwortet.
lme; Aber für Kontraste glhtfunktioniert auch die lmAnpassung, nicht nur die lmeAnpassung. (Auch die lmeErgebnisse sind Standard-Lehrbuchergebnisse.)
lmfür eine wiederholte Messung keine Analyse angeben . Nur aovkann mit wiederholten Messungen befassen , sondern wird ein Objekt der Klasse zurückgeben , aovlistdie leider gehandhabt wird nicht durch glht.
lmverwendet den Restfehler als Fehlerbegriff für alle Effekte; Wenn es Effekte gibt, die einen anderen Fehlerausdruck verwenden sollten, aovist 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 factordie id:factorInteraktion, dh der Restfehlerterm in einem additiven Modell. Vergleichen Sie Ihre Ergebnisse mit anova(lm(value~factor+id)).