Test post-hoc après mesures répétées à 2 facteurs ANOVA dans R?

8

J'ai des problèmes à trouver une solution concernant la façon d'exécuter un test post-hoc (Tukey HSD) après une ANOVA à mesures répétées à 2 facteurs (tous deux intra-sujets) en R. Pour l'ANOVA, j'ai utilisé la fonction aov:

summary(aov(dv ~ x1 * x2 + Error(subject/(x1*x2)), data=df1))

Après avoir lu les réponses à d'autres questions, j'ai compris que je devrais d'abord relancer l'ANOVA en utilisant une autre fonction (par exemple, lme). C'est ce que j'ai trouvé.

Lme.mod <- lme(dv ~ x1*x2, random=list(subject=pdBlocked(list(~1, pdIdent(~x1-1), pdIdent(~x2-1)))), data=df1)
anova(Lme.mod)

Les deux effets principaux étaient significatifs, mais il n'y avait aucun effet d'interaction. Ensuite, j'ai utilisé ces fonctions pour les comparaisons post-hoc:

summary(glht(Lme.mod, linfct=mcp(x1="Tukey")))
summary(glht(Lme.mod, linfct=mcp(x2="Tukey")))

Cependant, il y avait quelques problèmes:

Tout d'abord, le fichier d'aide R indique que «La fonction mcp doit être utilisée avec précaution lors de la définition des paramètres d'intérêt dans les modèles ANOVA ou ANCOVA bidirectionnels (...) multcomp version 1.0-0 et supérieure génère des comparaisons pour les effets principaux uniquement, en ignorant les covariables et les interactions (les anciennes versions font automatiquement la moyenne des termes d'interaction). Un avertissement est donné. " Et bien sûr, j'ai reçu le message d'avertissement suivant:

Warning message:
In mcp2matrix(model, linfct = linfct) :
covariate interactions found -- default contrast might be inappropriate

Une autre chose déconcertante était que, bien que les deux effets principaux soient significatifs, il n'y avait pas de différences significatives dans les comparaisons post-hoc pour l'un des facteurs (x1). Je n'ai jamais rencontré ça auparavant. Les scripts / analyses sont-ils corrects / appropriés ou y a-t-il quelque chose qui me manque? Toute aide serait appréciée!

Jonna
la source
Bienvenue sur le site, @Jonna. Êtes-vous uniquement intéressé par la façon de faire en sorte que R le fasse? Si c'est le cas, cette question serait hors sujet pour CV (voir notre FAQ ), mais sur sujet pour Stack Overflow . Je ne peux pas dire si votre question concerne la nature des tests post-hoc avec des données de mesures répétées, ou une question algorithmique sur le codage R. Veuillez modifier pour clarifier. (Notez que si vous voulez simplement en savoir plus sur R, nous pouvons migrer votre Q; veuillez ne pas effectuer de cross-post ).
gung - Reinstate Monica
1
Merci @gung! Je suppose que ma question a à voir avec les deux ... J'ai essayé de clarifier le problème en modifiant mon message!
Jonna

Réponses:

2

Aurait

df1$x1x2=interaction(df1$x1,df1$x2)
library(lmerTest)
Lme.mod <- lme(dv ~ x1x2, random=~1|subject,
               correlation=corCompSymm(form=~1|subject),
               data=df1)
anova(Lme.mod)
summary(glht(Lme.mod, linfct=mcp(x1x2="Tukey")))

être ce que vous recherchez, c'est-à-dire faire des tests posthoc parmi toutes les combinaisons de niveaux de mesure des deux facteurs x1 et x2? (J'ai également imposé une symétrie composée, pour que le résultat lme corresponde à celui des mesures répétées appelées aov)

Tom Wenseleers
la source
-2

Test de multicomparaison de Tukey

  1. Installer le package multcomp install.packages ("multcomp")

  2. Rendre multcomp disponible pour une bibliothèque d'utilisation ("multcomp")

  3. Vérifier qu'il fonctionne - Explique quels packages sont actuellement ouverts dans R search ()

Utilisez ensuite la fonction glht ()

user2037072
la source