Je voudrais utiliser lme4
pour ajuster une régression à effets mixtes et multcomp
pour calculer les comparaisons par paire. J'ai un ensemble de données complexe avec plusieurs prédicteurs continus et catégoriques, mais ma question peut être démontrée en utilisant l' ChickWeight
ensemble de données intégré comme exemple:
m <- lmer(weight ~ Time * Diet + (1 | Chick), data=ChickWeight, REML=F)
Time
est continu et Diet
catégorique (4 niveaux) et il y a plusieurs poussins par régime. Tous les poussins ont commencé à peu près au même poids, mais leur régime alimentaire (peut) affecter leur taux de croissance, donc les Diet
interceptions devraient être (plus ou moins) les mêmes, mais les pentes peuvent être différentes. Je peux obtenir les comparaisons par paire pour l'effet d'interception Diet
comme ceci:
summary(glht(m, linfct=mcp(Diet = "Tukey")))
et, en effet, ils ne sont pas significativement différents, mais comment puis-je faire le test analogue pour l' Time:Diet
effet? La simple saisie du terme d'interaction mcp
produit une erreur:
summary(glht(m, linfct=mcp('Time:Diet' = "Tukey")))
Error in summary(glht(m, linfct = mcp(`Time:Diet` = "Tukey"))) :
error in evaluating the argument 'object' in selecting a method for function
'summary': Error in mcp2matrix(model, linfct = linfct) :
Variable(s) ‘Time:Diet’ have been specified in ‘linfct’ but cannot be found in ‘model’!
Time*Diet
, ce qui est juste une simplification deTime + Diet + Time:Diet
. L'utilisation deanova(m)
ousummary(m)
confirme que le terme d'interaction se trouve dans le modèle.Réponses:
Par défaut,
lmer
traite le niveau de référence d'un prédicteur catégorique comme référence et estime les paramètres pour les autres niveaux. Ainsi, vous obtenez des comparaisons par paires dans la sortie par défaut et vous pouvez obtenir les autres en utilisantrelevel
pour définir un nouveau niveau de référence et réajuster le modèle. Cela a l'avantage de vous permettre d'utiliser des comparaisons de modèles ou MCMC pour obtenir les valeurs de p, mais ne corrige pas les comparaisons multiples (bien que vous puissiez appliquer votre propre correction par la suite).Pour l'utiliser
multcomp
, vous devez définir la matrice de contraste. Chaque ligne de la matrice de contraste représente les pondérations des effets que vous obtenez dans la sortie du modèle par défaut, en commençant par l'interception. Donc, si vous voulez un effet déjà inclus dans la sortie de base, il vous suffit de mettre un "1" à la position correspondant à cet effet. Étant donné que les estimations des paramètres sont relatives à un niveau de référence commun, vous pouvez obtenir des comparaisons entre deux autres niveaux en définissant le poids de l'un sur "-1" et de l'autre "1". Voici comment cela fonctionnerait pour lesTime:Diet
termes de l'ChickWeight
exemple:Caveat emptor: Cette approche semble utiliser l'approximation normale pour obtenir les valeurs de p, ce qui est quelque peu anti-conservateur, puis applique une correction pour les comparaisons multiples. Le résultat est que cette méthode vous donne un accès facile à autant d'estimations de paramètres par paire et d'erreurs standard que vous le souhaitez, mais les valeurs de p peuvent ou non être ce que vous voulez.
(Merci à Scott Jackson de r-ling-lang-L pour son aide)
la source