Estoy tratando de pasar de usar el ez
paquete a lme
para ANOVA de medidas repetidas (como espero poder usar contrastes personalizados en con lme
).
Siguiendo los consejos de esta entrada del blog Pude configurar el mismo modelo utilizando ambos aov
(al igual que ez
cuando se solicite) y lme
. Sin embargo, mientras que en el ejemplo dado en ese puesto el F -valores coinciden perfectamente entre aov
y lme
(Lo he comprobado y lo hacen), no es el caso de mis datos. Aunque el F -Los valores son similares, pero no son iguales.
aov
devuelve un valor f de 1,3399, lme
devuelve 1,36264. Estoy dispuesto a aceptar el aov
resultado como el "correcto" ya que esto es también lo que devuelve el SPSS (y esto es lo que cuenta para mi campo/supervisor).
Preguntas:
-
Sería genial si alguien pudiera explicar por qué existe esta diferencia y cómo puedo utilizar
lme
para proporcionar resultados creíbles. (También estaría dispuesto a utilizarlmer
en lugar delme
para este tipo de cosas, si da el resultado "correcto". Sin embargo, no lo he utilizado hasta ahora). -
Después de resolver este problema, me gustaría realizar un análisis de contraste. Especialmente me interesaría el contraste de la agrupación de los dos primeros niveles del factor (es decir,
c("MP", "MT")
) y compararlo con el tercer nivel del factor (es decir"AC"
). Además, la prueba del tercer frente al cuarto nivel de factor (es decir,"AC"
frente a"DA"
).
Datos:
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))
Y el código:
require(nlme)
summary(aov(value ~ factor+Error(id/factor), data = tau.base))
anova(lme(value ~ factor, data = tau.base, random = ~1|id))
0 votos
Parece que tú mismo has respondido a la parte de los contrastes en tu respuesta aquí ; si no es así, por favor, edite esta pregunta para que sepamos qué dificultad queda.
2 votos
@Aaron, mientras haya diferencias en el
lme
resultados del ANOVA estándar de los libros de texto (dado poraov
y que es lo que necesito), esto no es una opción para mí. En mi trabajo quiero informar de un ANOVA, no de algo parecido a un ANOVA. Curiosamente, Venables y Ripley (2002, p. 285) muestran que ambos enfoques conducen a estimaciones idénticas. Pero las diferencias en F los valores me dejan un mal presentimiento. Además,Anova()
(decar
) sólo devuelve los valores de Chi² paralme
objetos. Por lo tanto, para mí, mi primera pregunta aún no tiene respuesta.0 votos
Comprendo (pero no comparto) su desconfianza hacia
lme
; sino por los contrastes,glht
trabaja enlm
también encaja, no sólolme
encaja. (Además, ellme
resultados son también resultados estándar de los libros de texto).0 votos
Lamentablemente, no se puede especificar
lm
para un análisis de medidas repetidas. Sóloaov
puede tratar con medidas repetidas pero devolverá un objeto de claseaovlist
que desgraciadamente no es manejado porglht
.0 votos
¿Se trata entonces de un ejemplo más pequeño? Porque aquí no se necesita aov ya que sólo hay efectos dentro del sujeto.
0 votos
@Aaron, ¿puedes ampliar la información sobre esto? ¿Por qué no
aov
? En general me interesa una solución general con factores entre y dentro. Pero si hay otra forma ordenada para partes de este problema, también me interesaría.3 votos
lm
utiliza el error residual como término de error para todos los efectos; cuando hay efectos que deben utilizar un término de error diferente,aov
es necesario (o en su lugar, utilizando los resultados delm
para calcular las estadísticas F manualmente). En su ejemplo, el término de error parafactor
es elid:factor
que es el término de error residual en un modelo aditivo. Compare sus resultados conanova(lm(value~factor+id))
.0 votos
He respondido a su primera pregunta a continuación. Como la respuesta es bastante larga, le sugiero que inicie una nueva pregunta para su segunda pregunta.
0 votos
¿Por qué escribes "random = ~1|id" y no "random = ~1|(id/factor)"?