Estoy tratando de pasar de usar el ezpaquete a lmeANOVA para medidas repetidas (ya que espero poder usar contrastes personalizados con lme).
Siguiendo el consejo de esta publicación de blog , pude configurar el mismo modelo usando ambos aov(como lo hace ez, cuando se solicitó) y lme. Sin embargo, mientras que en el ejemplo dado en esa publicación los valores F coinciden perfectamente entre ( aovy lmelo comprobé, y lo hacen), este no es el caso para mis datos. Aunque los valores F son similares, no son lo mismo.
aovdevuelve un valor f de 1.3399, lmedevuelve 1.36264. Estoy dispuesto a aceptar el aovresultado como el "correcto", ya que esto también es lo que SPSS devuelve (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 usarla
lmepara proporcionar resultados creíbles. (También estaría dispuesto a usar enlmerlugar delmepara este tipo de cosas, si da el resultado "correcto". Sin embargo, no lo he usado hasta ahora).Después de resolver este problema, me gustaría ejecutar un análisis de contraste. Especialmente me interesaría el contraste de agrupar los dos primeros niveles de factor (es decir,
c("MP", "MT")) y comparar esto con el tercer nivel de factor (es decir,"AC"). Además, probar el tercer nivel versus el cuarto nivel de factor (es decir,"AC"versus"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 codigo:
require(nlme)
summary(aov(value ~ factor+Error(id/factor), data = tau.base))
anova(lme(value ~ factor, data = tau.base, random = ~1|id))

lmeresultados del libro de texto estándar ANOVA (dado poraov, y que es lo que necesito), esta no es una opción para mí. En mi artículo quiero informar un ANOVA, no algo así como un ANOVA. Curiosamente, Venables y Ripley (2002, p. 285) muestran que ambos enfoques conducen a estimaciones idénticas. Pero las diferencias en los valores de F me dejan con un mal presentimiento. Además,Anova()(desdecar) devuelve solo valores de Chi² para loslmeobjetos. Por lo tanto, para mí, mi primera pregunta aún no ha sido respondida.lme; pero para contrastes,glhtfunciona también en loslmajustes, no solo en loslmeajustes. (Además, loslmeresultados son los resultados de los libros de texto estándar también.)lmun análisis de medidas repetidas. Soloaovpuede manejar medidas repetidas pero devolverá un objeto de claseaovlistque desafortunadamente no es manejado porglht.lmusa el error residual como el término de error para todos los efectos; cuando hay efectos que deberían usar un término de error diferente,aoves necesario (o en su lugar, usar los resultados delmpara calcular las estadísticas F manualmente). En su ejemplo, el término de error parafactores laid:factorinteracción, que es el término de error residual en un modelo aditivo. Compara tus resultados conanova(lm(value~factor+id)).Respuestas:
Son diferentes porque el modelo lme está obligando a que el componente de varianza
idsea mayor que cero. Al observar la tabla de anova en bruto para todos los términos, vemos que el error cuadrático medio para id es menor que el de los residuos.Cuando calculamos los componentes de la varianza, esto significa que la varianza debida a id será negativa. Mi memoria de memoria de cuadrados medios esperados es inestable, pero el cálculo es algo así como
Esto suena extraño pero puede suceder. Lo que significa es que los promedios para cada id están más cerca uno del otro de lo que cabría esperar entre sí dada la cantidad de variación residual en el modelo.
En contraste, el uso de lme obliga a que esta varianza sea mayor que cero.
Esto informa desviaciones estándar, cuadrando para obtener los rendimientos de varianza
9.553e-10para la varianza id y0.1586164para la varianza residual.Ahora, debe saber que usar
aovpara medidas repetidas solo es apropiado si cree que la correlación entre todos los pares de medidas repetidas es idéntica; Esto se llama simetría compuesta. (Técnicamente, es necesaria la esfericidad pero esto es suficiente por ahora.) Una de las razones para usarlmesobreaoves que puede manejar diferentes tipos de estructuras de correlación.En este conjunto de datos en particular, la estimación de esta correlación es negativa; Esto ayuda a explicar cómo el error cuadrático medio para id fue menor que el error cuadrático residual. Una correlación negativa significa que si la primera medición de un individuo estaba por debajo del promedio, en promedio, la segunda estaría por encima del promedio, haciendo que los promedios totales para los individuos fueran menos variables de lo que esperaríamos si hubiera una correlación cero o una correlación positiva.
Usar
lmecon un efecto aleatorio es equivalente a ajustar un modelo de simetría compuesta donde esa correlación se obliga a ser no negativa; Podemos ajustar un modelo donde la correlación puede ser negativa usandogls:Esta tabla ANOVA concuerda con la tabla del
aovajuste y dellmajuste.¿OK y eso qué? Bueno, si crees que la varianza
idy la correlación entre las observaciones no deberían ser negativas, ellmeajuste es en realidad más apropiado que el ajuste usandoaovolmcomo su estimación de la varianza residual es ligeramente mejor. Sin embargo, si usted cree que la correlación entre las observaciones podría ser negativo,aovolm, oglses mejor.También puede interesarle explorar más la estructura de correlación; para ver una estructura de correlación general, harías algo como
Aquí solo limito la salida a la estructura de correlación. Los valores 1 a 4 representan los cuatro niveles de
factor; vemos que el factor 1 y el factor 4 tienen una correlación negativa bastante fuerte:Una forma de elegir entre estos modelos es con una prueba de razón de probabilidad; esto muestra que el modelo de efectos aleatorios y el modelo de estructura de correlación general no son estadísticamente significativamente diferentes; cuando eso sucede, generalmente se prefiere el modelo más simple.
fuente
lmepara obtener los mismos resultados que conaov(y por lo tanto habilitarlmepara todos los ANOVA), es decir, usar el argumento de correlación en la llamada alme:anova(lme(value ~ factor, data = tau.base, random = ~1|id, correlation = corCompSymm(form = ~1|id)))aov,lmesin simetría compuesta, ylmecon simetría compuesta) tienen exactamente el mismo número de DFS.anova.lme(). De su respuesta deduje que la relación entre el ANOVA y los modelos mixtos radica en su estructura de correlación. Luego leí que imponer una estructura de correlación simétrica compuesta conduce a la igualdad entre los dos enfoques. Por eso lo impuse. No tengo idea si esto consume otro df. Sin embargo, el resultado no está de acuerdo con esta interpretación.aov()se ajusta al modelo mediantelm()mínimos cuadrados, selmeajusta mediante la máxima probabilidad. Esa diferencia en cómo se estiman los parámetros del modelo lineal probablemente explica la diferencia (muy pequeña) en sus valores f.En la práctica, (por ejemplo, para la prueba de hipótesis) estas estimaciones son las mismas, por lo que no veo cómo una podría considerarse 'más creíble' que la otra. Provienen de diferentes paradigmas de ajuste de modelos.
Para los contrastes, debe configurar una matriz de contraste para sus factores. Venebles y Ripley muestran cómo hacer esto en la p. 143, p.146 y p.293-294 de la 4ta edición.
fuente
lmeolmerpara calcular un ANOVA (estrictamente hablando) ya que usa un método que es similar pero no idéntico. Entonces, ¿no hay forma de calcular los contrastes para ANOVAs de medida repetida en R?