He realizado un ANOVA de medidas repetidas de tres vías; ¿Qué análisis post-hoc son válidos?
Este es un diseño totalmente equilibrado (2x2x2) con uno de los factores que tiene una medida repetida dentro de los sujetos. Soy consciente de los enfoques multivariados para ANOVA de medidas repetidas en R, pero mi primer instinto es proceder con un estilo simple de aov () de ANOVA:
aov.repeated <- aov(DV ~ IV1 * IV2 * Time + Error(Subject/Time), data=data)
DV = variable de respuesta
IV1 = variable independiente 1 (2 niveles, A o B)
IV2 = variable independiente 2 (2 niveles, sí o no)
IV3 = Tiempo (2 niveles, antes o después)
Asunto = ID de sujeto (40 sujetos totales, 20 para cada nivel de IV1: nA = 20, nB = 20)
summary(aov.repeated)
Error: Subject
Df Sum Sq Mean Sq F value Pr(>F)
IV1 1 5969 5968.5 4.1302 0.049553 *
IV2 1 3445 3445.3 2.3842 0.131318
IV1:IV2 1 11400 11400.3 7.8890 0.007987 **
Residuals 36 52023 1445.1
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Error: Subject:Time
Df Sum Sq Mean Sq F value Pr(>F)
Time 1 149 148.5 0.1489 0.701906
IV1:Time 1 865 864.6 0.8666 0.358103
IV2:Time 1 10013 10012.8 10.0357 0.003125 **
IV1:IV2:Time 1 852 851.5 0.8535 0.361728
Residuals 36 35918 997.7
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Alternativamente, estaba pensando en usar el paquete nlme para un ANOVA de estilo lme:
aov.repeated2 <- lme(DV ~ IV1 * IV2 * Time, random = ~1|Subject/Time, data=data)
summary(aov.repeated2)
Fixed effects: DV ~ IV1 * IV2 * Time
Value Std.Error DF t-value p-value
(Intercept) 99.2 11.05173 36 8.975972 0.0000
IV1 19.7 15.62950 36 1.260437 0.2156
IV2 65.9 15.62950 36 4.216385 0.0002 ***
Time 38.2 14.12603 36 2.704228 0.0104 *
IV1:IV2 -60.8 22.10346 36 -2.750701 0.0092 **
IV1:Time -26.2 19.97722 36 -1.311494 0.1980
IV2:Time -57.8 19.97722 36 -2.893295 0.0064 **
IV1:IV2:Time 26.1 28.25206 36 0.923826 0.3617
Mi primer instinto post-hoc de interacciones significativas de 2 vías con contrastes de Tukey usando glht () del paquete multcomp:
data$IV1IV2int <- interaction(data$IV1, data$IV2)
data$IV2Timeint <- interaction(data$IV2, data$Time)
aov.IV1IV2int <- lme(DV ~ IV1IV2int, random = ~1|Subject/Time, data=data)
aov.IV2Timeint <- lme(DV ~ IV2Timeint, random = ~1|Subject/Time, data=data)
IV1IV2int.posthoc <- summary(glht(aov.IV1IV2int, linfct = mcp(IV1IV2int = "Tukey")))
IV2Timeint.posthoc <- summary(glht(aov.IV2Timeint, linfct = mcp(IV2Timeint = "Tukey")))
IV1IV2int.posthoc
#A.Yes - B.Yes == 0 0.94684
#B.No - B.Yes == 0 0.01095 *
#A.No - B.Yes == 0 0.98587 I don't care about this
#B.No - A.Yes == 0 0.05574 . I don't care about this
#A.No - A.Yes == 0 0.80785
#A.No - B.No == 0 0.00346 **
IV2Timeint.posthoc
#No.After - Yes.After == 0 0.0142 *
#Yes.Before - Yes.After == 0 0.0558 .
#No.Before - Yes.After == 0 0.5358 I don't care about this
#Yes.Before - No.After == 0 0.8144 I don't care about this
#No.Before - No.After == 0 0.1941
#No.Before - Yes.Before == 0 0.8616
El principal problema que veo con estos análisis post-hoc son algunas comparaciones que no son útiles para mis hipótesis.
Cualquier sugerencia para un análisis post-hoc apropiado es muy apreciada, gracias.
Editar: preguntas y respuestas relevantes que apuntan a probar matrices de contraste manuales
fuente
/
se usa para denotar la anidación (como se ve típicamente en un experimento de parcela dividida), a diferencia de su uso en elError
término deaov()
donde principalmente indica cómo construir estratos de error .Error
término deaov()
esta manera para especificar queTime
es el factor dentro de los grupos. De BaronError(subj/(color + shape))
parece ser utilizado de la misma manera.lme
modelo, no tengo claro el uso adecuado de/
. ¿Cómo especificaríasTime
como el factor dentro de los grupos comoError()
conaov()
?Respuestas:
Creo que los estadísticos le dirán que siempre hay un problema con cualquier análisis post hoc porque ver los datos puede influir en lo que mira y podría estar sesgado porque está buscando resultados significativos. La FDA en estudios de ensayos clínicos requiere que el plan estadístico se especifique completamente en el protocolo. en un modelo lineal, ciertamente podría especificar previamente los contrastes que le gustaría ver en caso de que ANOVA o ANCOVA encuentren una diferencia general. Estos contrastes preespecificados estarían bien si el tratamiento habitual para la multiplicidad también forma parte de él.
fuente
R
. Específicamente, no estoy seguro de si es más apropiado especificar manualmente matrices de contraste para los contrastes de Tukey relevantesglht()
o realizar todas las comparaciones de forma predeterminada. Además, no estoy seguro de cómo manejar adecuadamente la medida repetidaTime
en términos de post-hoc.Si tiene un paquete de software como SAS, probablemente usaría un proceso mixto para hacer el modelo mixto de medidas repetidas y si especifica qué contraste desea usar, SAS lo manejará adecuadamente por usted. También puede hacerlo con la opción repetida en PROC GLM, pero tenga cuidado porque se comportan de manera diferente y hacen suposiciones diferentes. Las observaciones repetidas suelen estar correlacionadas porque tienen algo en común. A menudo tengo medidas repetidas en el mismo paciente en diferentes momentos. Entonces, al calcular los contrastes, los términos de covarianza entran en el problema.
fuente