J'essaie de passer de l'utilisation du ez
package à lme
des mesures répétées ANOVA (car j'espère que je pourrai utiliser des contrastes personnalisés avec lme
).
En suivant les conseils de ce billet de blog, j'ai pu configurer le même modèle en utilisant à la fois aov
(comme le fait ez
, sur demande) et lme
. Cependant, alors que dans l'exemple donné dans ce post, les valeurs F sont parfaitement d'accord entre aov
et lme
(je l'ai vérifié, et elles le font), ce n'est pas le cas pour mes données. Bien que les valeurs F soient similaires, elles ne sont pas identiques.
aov
renvoie une valeur f de 1,3399, lme
renvoie 1,36264. Je suis prêt à accepter le aov
résultat comme étant le "bon" car c'est aussi ce que SPSS renvoie (et c'est ce qui compte pour mon terrain / mon superviseur).
Des questions:
Ce serait formidable si quelqu'un pouvait expliquer pourquoi cette différence existe et comment je peux l'utiliser
lme
pour fournir des résultats crédibles. (Je serais également disposé à utiliser à lalmer
place delme
ce type de contenu, s'il donne le résultat "correct". Cependant, je ne l'ai pas utilisé jusqu'à présent.)Après avoir résolu ce problème, je voudrais exécuter une analyse de contraste. En particulier, je serais intéressé par le contraste de la mise en commun des deux premiers niveaux de facteur (c.-à-d.
c("MP", "MT")
) Et de le comparer avec le troisième niveau de facteur (c.-à"AC"
-d.). De plus, tester le troisième par rapport au quatrième niveau de facteur (c.-à-d. Par"AC"
rapport à"DA"
).
Les données:
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))
Et le code:
require(nlme)
summary(aov(value ~ factor+Error(id/factor), data = tau.base))
anova(lme(value ~ factor, data = tau.base, random = ~1|id))
lme
résultats du manuel standard ANOVA (donné par aov
, et qui est ce dont j'ai besoin), ce n'est pas une option pour moi. Dans mon article, je veux signaler une ANOVA, pas quelque chose comme une ANOVA. Il est intéressant de noter que Venables et Ripley (2002, p. 285) montrent que les deux approches conduisent à des estimations identiques. Mais les différences de valeurs F me laissent un mauvais pressentiment. De plus, Anova()
(from car
) ne renvoie que des valeurs Chi² pour les lme
objets. Par conséquent, pour moi, ma première question n'a pas encore de réponse.
lme
; mais pour les contrastes, glht
fonctionne aussi sur les lm
ajustements, pas seulement sur les lme
ajustements. (De plus, les lme
résultats sont également des résultats standards des manuels scolaires.)
lm
pour une analyse de mesure répétée. Seul aov
peut gérer des mesures répétées mais retournera un objet de classe aovlist
qui n'est malheureusement pas géré par glht
.
lm
utilise l'erreur résiduelle comme terme d'erreur pour tous les effets; lorsqu'il y a des effets qui devraient utiliser un terme d'erreur différent, aov
est nécessaire (ou à la place, utiliser les résultats de lm
pour calculer les F-stats manuellement). Dans votre exemple, le terme d'erreur pour factor
est l' id:factor
interaction, qui est le terme d'erreur résiduel dans un modèle additif. Comparez vos résultats à anova(lm(value~factor+id))
.