J'ai effectué une mesure répétée à trois voies ANOVA; quelles analyses post-hoc sont valables?
Il s'agit d'une conception entièrement équilibrée (2x2x2) avec l'un des facteurs ayant une mesure répétée intra-sujets. Je connais les approches multivariées des mesures répétées de l'ANOVA dans R, mais mon premier instinct est de procéder avec un simple style aov () d'ANOVA:
aov.repeated <- aov(DV ~ IV1 * IV2 * Time + Error(Subject/Time), data=data)
DV = variable de réponse
IV1 = variable indépendante 1 (2 niveaux, A ou B)
IV2 = variable indépendante 2 (2 niveaux, oui ou non)
IV3 = Temps (2 niveaux, avant ou après)
Sujet = ID du sujet (40 sujets au total, 20 pour chaque niveau d'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
Alternativement, je pensais à utiliser le package nlme pour une ANOVA de style 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
Mon premier instinct post-hoc d'interactions bidirectionnelles significatives avec les contrastes de Tukey en utilisant glht () du package 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
Le principal problème que je vois avec ces analyses post-hoc sont des comparaisons qui ne sont pas utiles pour mes hypothèses.
Toutes les suggestions pour une analyse post-hoc appropriée sont grandement appréciées, merci.
Edit: question et réponse pertinentes qui pointent vers le test de matrices de contraste manuelles
la source
/
est utilisé pour désigner l'imbrication (comme on le voit généralement dans une expérience de parcelle fractionnée), contrairement à son utilisation dans leError
termeaov()
où il indique principalement comment créer des strates d'erreur .Error
terme deaov()
cette façon pour spécifier queTime
c'est le facteur intra-groupes. De BaronError(subj/(color + shape))
semble être utilisé de la même manière.lme
modèle, je ne suis pas sûr de la bonne utilisation de/
. Comment spécifieriez-vousTime
le facteur intra-groupe commeError()
avecaov()
?Réponses:
Je pense que les statisticiens vous diront qu'il y a toujours un problème avec toute analyse post hoc car voir les données peut influencer ce que vous regardez et vous pourriez être biaisé parce que vous cherchez des résultats significatifs. La FDA dans les études d'essais cliniques exige que le plan statistique soit complètement énoncé dans le protocole. dans un modèle linéaire, vous pourriez certainement préspécifier les contrastes que vous aimeriez examiner dans le cas où l'ANOVA ou l'ANCOVA trouve une différence globale. De tels contrastes préspécifiés seraient bien à considérer tant que le traitement habituel pour la multiplicité en fait également partie.
la source
R
. Plus précisément, je ne sais pas s'il est plus approprié de spécifier manuellement des matrices de contraste pour les contrastes Tukey pertinents à l'aideglht()
, ou d'effectuer toutes les comparaisons par défaut. De plus, je ne sais pas comment gérer correctement la mesure répétée deTime
en termes de post-hoc.Si vous avez un progiciel comme SAS, vous utiliserez probablement proc mixed pour faire le modèle mixte de mesures répétées et si vous spécifiez le contraste que vous souhaitez utiliser, SAS le traitera correctement pour vous. Vous pouvez également le faire avec l'option répétée dans PROC GLM mais soyez prudent car ils se comportent différemment et font des hypothèses différentes. Les observations répétées sont généralement corrigées car elles ont quelque chose de commun. J'ai souvent répété des mesures sur le même patient à différents moments. Ainsi, dans le calcul des contrastes, les termes de covariance entrent en jeu.
la source