Estoy tratando de ejecutar medidas repetidas Anova en R seguido de algunos contrastes específicos en ese conjunto de datos. Creo que el enfoque correcto sería usar
Anova()
el paquete del automóvil.
Vamos a ilustrar mi pregunta con el ejemplo tomado del ?Anova
uso de los
OBrienKaiser
datos (Nota: omití el factor de género del ejemplo):
tenemos un diseño con un factor entre sujetos, tratamiento (3 niveles: control, A, B) y 2 repetidos -factores de medidas (dentro de los sujetos), fase (3 niveles: pretest, posttest, seguimiento) y hora (5 niveles: 1 a 5).
La tabla ANOVA estándar viene dada por (a diferencia del ejemplo (Anova) cambié a Sumas de cuadrados de tipo 3, eso es lo que mi campo quiere):
require(car)
phase <- factor(rep(c("pretest", "posttest", "followup"), c(5, 5, 5)),
levels=c("pretest", "posttest", "followup"))
hour <- ordered(rep(1:5, 3))
idata <- data.frame(phase, hour)
mod.ok <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser)
av.ok <- Anova(mod.ok, idata=idata, idesign=~phase*hour, type = 3)
summary(av.ok, multivariate=FALSE)
Ahora, imagine que la interacción de orden superior hubiera sido significativa (que no es el caso) y nos gustaría explorarla más a fondo con los siguientes contrastes:
¿Hay alguna diferencia entre las horas 1 y 2 y las horas 3 (contraste 1) y entre las horas 1 y 2 versus horas 4 y 5 (contraste 2) en las condiciones de tratamiento (A y B juntos)?
En otras palabras, ¿cómo especifico estos contrastes?
((treatment %in% c("A", "B")) & (hour %in% 1:2))
versus((treatment %in% c("A", "B")) & (hour %in% 3))
((treatment %in% c("A", "B")) & (hour %in% 1:2))
versus((treatment %in% c("A", "B")) & (hour %in% 4:5))
Mi idea sería ejecutar otro ANOVA omitiendo la condición de tratamiento no necesaria (control):
mod2 <- lm(cbind(pre.1, pre.2, pre.3, pre.4, pre.5, post.1, post.2, post.3, post.4, post.5, fup.1, fup.2, fup.3, fup.4, fup.5) ~ treatment, data=OBrienKaiser, subset = treatment != "control")
av2 <- Anova(mod2, idata=idata, idesign=~phase*hour, type = 3)
summary(av2, multivariate=FALSE)
Sin embargo, todavía no tengo idea de cómo configurar la matriz de contraste apropiada dentro del sujeto comparando las horas 1 y 2 con 3 y 1 y 2 con 4 y 5. Y no estoy seguro de si omitir el grupo de tratamiento no necesario es una buena idea, ya que cambia el término de error general.
Antes de ir Anova()
, también estaba pensando en ir lme
. Sin embargo, existen pequeñas diferencias en los valores de F y p entre el ANOVA del libro de texto y lo que se devuelve anove(lme)
debido a posibles variaciones negativas en el ANOVA estándar (que no están permitidoslme
). Relacionado, alguien me señaló gls
que permite ajustar medidas repetidas ANOVA, sin embargo, no tiene argumento de contraste.
Para aclarar: quiero una prueba F o t (usando sumas de cuadrados de tipo III) que responda si los contrastes deseados son significativos o no.
Actualizar:
Ya hice una pregunta muy similar sobre R-help, no hubo respuesta .
Una pregunta similar se planteó en R-help hace algún tiempo. Sin embargo, las respuestas tampoco resolvieron el problema.
Actualización (2015):
Como esta pregunta sigue generando algo de actividad, ahora se pueden especificar tesis y, básicamente, todos los demás contrastes con el afex
paquete en combinación con el lsmeans
paquete como se describe en la viñeta afex .
treatment
, 3) para el promedio de cada persona sobre los niveles deprePostFup
, 4) para el promedio de cada persona durante las horas 1,2 (= grupo de datos 1) así como a lo largo de las horas 3,4 (= grupo de datos 2), 5) ejecutar la prueba t para 2 grupos dependientes. Dado que Maxwell y Delaney (2004) así como Kirk (1995) desaconsejan hacer contrastes con un término de error agrupado en diseños internos, esta podría ser una alternativa simple.Respuestas:
Este método generalmente se considera "anticuado", por lo que, aunque puede ser posible, la sintaxis es difícil y sospecho que menos personas saben cómo manipular los comandos de anova para obtener lo que desea. El método más común es usar
glht
con un modelo basado en la probabilidad denlme
olme4
. (Sin embargo, estoy bienvenido a que otras respuestas me demuestren que están equivocadas).Dicho esto, si tuviera que hacer esto, no me molestaría con los comandos de anova; Simplemente ajustaría el modelo equivalente usando
lm
, elegiría el término de error correcto para este contraste y calcularía la prueba F yo mismo (o equivalentemente, la prueba t ya que solo hay 1 df). Esto requiere que todo esté equilibrado y tenga esfericidad, pero si no lo tiene, probablemente debería estar utilizando un modelo basado en la probabilidad de todos modos. Es posible que pueda corregir algo la no esfericidad utilizando las correcciones Greenhouse-Geiser o Huynh-Feldt que (creo) usan la misma estadística F pero modifican la df del término de error.Si realmente desea utilizar
car
, puede encontrar útiles las viñetas heplot ; describen cómocar
se definen las matrices en el paquete.Usando el método de caracal (para los contrastes 1 y 2 - 3 y 1 y 2 - 4 y 5), obtengo
Así es como obtendría esos mismos valores p:
Cambie la forma de los datos a formato largo y ejecútelos
lm
para obtener todos los términos de SS.Haga una matriz de contraste alternativa para el término de la hora.
Comprueba que mis contrastes dan el mismo SS que los contrastes predeterminados (y el mismo que el del modelo completo).
Obtenga el SS y el df solo por los dos contrastes que quiero.
Obtenga los valores p.
Opcionalmente ajuste por esfericidad.
fuente
heplots
viñeta, ese es realmente un buen resumen de lo que está sucediendo en términos del modelo lineal general.Si desea / tiene que usar contrastes con el término de error agrupado del ANOVA correspondiente, puede hacer lo siguiente. Desafortunadamente, esto será largo, y no sé cómo hacerlo más convenientemente. Aún así, creo que los resultados son correctos, ya que se verifican contra Maxwell y Delaney (ver más abajo).
Desea comparar grupos de su primer factor interno
hour
en un diseño SPF-p.qr (notación de Kirk (1995): Diseño factorial de parcela dividida 1 entre factortreatment
con grupos p, primero dentro de factorhour
con grupos q, segundo dentro de factorprePostFup
con r grupos). Lo siguiente suponetreatment
grupos y esfericidad de tamaño idéntico .Primero tenga en cuenta que el efecto principal para
hour
es el mismo después de promediarprePostFup
, cambiando así al diseño SPF-pq más simple que solo contienetreatment
yhour
como IV.Ahora tenga en cuenta que en el ANOVA SPF-pq,
hour
se prueba el efecto para la interacciónid:hour
, es decir, esta interacción proporciona el término de error para la prueba. Ahora, los contrastes para loshour
grupos se pueden probar como en un ANOVA de una sola vía entre sujetos simplemente sustituyendo el término de error y los correspondientes grados de libertad. La manera fácil de obtener el SS y el df de esta interacción es ajustar el modelolm()
.Pero también calculemos todo manualmente aquí.
hour:id
Para comparaciones múltiples, tendría que pensar en métodos de corrección , por ejemplo, Bonferroni.α
Los cálculos correspondientes para el ejemplo de Maxwell y Delaney (2004) en la pág. 599f se puede encontrar aquí . Tenga en cuenta que M&D calcula el valor F, para ver que los resultados son idénticos, debe ajustar al cuadrado el valor de la estadística t. Ese código también incluye el análisis realizado conϵ^
Anova()
fromcar
, así como un cálculo manual de las correcciones para el efecto principal del factor interno.fuente