J'analyse les résultats d'une expérience de temps de réaction chez R.
J'ai effectué une ANOVA à mesures répétées (1 facteur intra-sujet avec 2 niveaux et 1 facteur inter-sujet avec 2 niveaux). J'ai exécuté un modèle mixte linéaire similaire et je voulais résumer les résultats de lmer sous la forme d'une table ANOVA en utilisant lmerTest::anova
.
Ne vous méprenez pas: je ne m'attendais pas à des résultats identiques, mais je ne suis pas sûr du degré de liberté des lmerTest::anova
résultats. Il me semble qu'elle reflète plutôt une ANOVA sans agrégation au niveau du sujet.
Je suis conscient du fait que le calcul des degrés de liberté dans les modèles à effets mixtes est délicat, mais lmerTest::anova
est mentionné comme une solution possible dans le ?pvalues
sujet mis à jour ( lme4
package).
Ce calcul est-il correct? Les résultats de lmerTest::anova
reflètent-ils correctement le modèle spécifié?
Mise à jour: j'ai agrandi les différences individuelles. Les degrés de liberté lmerTest::anova
sont plus différents de la simple anova, mais je ne sais toujours pas pourquoi ils sont si grands pour le facteur / interaction intra-sujet.
# mini example with ANT dataset from ez package
library(ez); library(lme4); library(lmerTest)
# repeated measures ANOVA with ez package
data(ANT)
ANT.2 <- subset(ANT, !error)
# update: make individual differences larger
baseline.shift <- rnorm(length(unique(ANT.2$subnum)), 0, 50)
ANT.2$rt <- ANT.2$rt + baseline.shift[as.numeric(ANT.2$subnum)]
anova.ez <- ezANOVA(data = ANT.2, dv = .(rt), wid = .(subnum),
within = .(direction), between = .(group))
anova.ez
# similarly with lmer and lmerTest::anova
model <- lmer(rt ~ group * direction + (1 | subnum), data = ANT.2)
lmerTest::anova(model)
# simple ANOVA on all available data
m <- lm(rt ~ group * direction, data = ANT.2)
anova(m)
Résultats du code ci-dessus [ mis à jour ]:
anova.ez
$ ANOVA
Effect DFn DFd F p p<.05 ges
2 group 1 18 2.6854464 0.11862957 0.1294475137
3 direction 1 18 0.9160571 0.35119193 0.0001690471
4 group:direction 1 18 4.9169156 0.03970473 * 0.0009066868
lmerTest :: anova (modèle)
Analysis of Variance Table of type 3 with Satterthwaite
approximation for degrees of freedom
Df Sum Sq Mean Sq F value Denom Pr(>F)
group 1 13293 13293 2.6830 18 0.1188
direction 1 1946 1946 0.3935 5169 0.5305
group:direction 1 11563 11563 2.3321 5169 0.1268
anova (m)
Analysis of Variance Table
Response: rt
Df Sum Sq Mean Sq F value Pr(>F)
group 1 1791568 1791568 242.3094 <2e-16 ***
direction 1 728 728 0.0985 0.7537
group:direction 1 12024 12024 1.6262 0.2023
Residuals 5187 38351225 7394
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
la source
ezAnova
avertissement car vous ne devez pas exécuter 2x2 anova si en fait vos données sont de conception 2x2x2.ez
puisse être reformulé; il comporte en fait deux parties importantes: (1) l'agrégation des données et (2) les informations sur les conceptions partielles. # 1 est le plus pertinent pour l'écart car il explique que pour faire une anova traditionnelle à effets non mixtes, il faut agréger les données à une seule observation par cellule du plan. Dans ce cas, nous voulons une observation par sujet par niveau de la variable "direction" (tout en conservant les étiquettes de groupe pour les sujets). ezANOVA le calcule automatiquement.summary(aov(rt ~ group*direction + Error(subnum/direction), data=ANT.2))
et ça donne 16 (?) Dfs pourgroup
et 18 pourdirection
etgroup:direction
. Le fait qu'il y ait ~ 125 observations par combinaison groupe / direction est à peu près sans importance pour RM-ANOVA, voir par exemple ma propre question stats.stackexchange.com/questions/286280 : la direction est testée, pour ainsi dire, contre le sujet- interaction directionnelle.lmerTest
cette estimation ~ 125 dfs.lmerTest::anova(model2, ddf="Kenward-Roger")
renvoie 18 000 df pourgroup
et17.987
df pour les deux autres facteurs, ce qui est en excellent accord avec RM-ANOVA (selon ezAnova). Ma conclusion est que l'approximation de Satterthwaite échouemodel2
pour une raison quelconque.Je suis généralement d'accord avec l'analyse de Ben, mais permettez-moi d'ajouter quelques remarques et un peu d'intuition.
Premièrement, les résultats globaux:
Ben décrit la conception dans laquelle
subnum
est imbriqué dansgroup
toutdirection
etgroup:direction
sont croisées avecsubnum
. Cela signifie que le terme d'erreur naturelle (c'est-à-dire la "strate d'erreur englobante") pourgroup
estsubnum
alors que la strate d'erreur englobante pour les autres termes (y comprissubnum
) est les résidus.Cette structure peut être représentée dans un diagramme dit de structure factorielle:
Ici, les termes aléatoires sont mis entre parenthèses,
0
représentent la moyenne globale (ou interception),[I]
représentent le terme d'erreur, les numéros de super-script sont le nombre de niveaux et les numéros de sous-script sont le nombre de degrés de liberté en supposant une conception équilibrée. Le diagramme indique que le terme d'erreur naturelle (englobant la strate d'erreur) pourgroup
estsubnum
et que le numérateur df poursubnum
, qui est égal au dénominateur df pourgroup
, est 18: 20 moins 1 df pourgroup
et 1 df pour la moyenne globale. Une introduction plus complète aux diagrammes de structure factorielle est disponible dans le chapitre 2 ici: https://02429.compute.dtu.dk/eBook .Si les données étaient exactement équilibrées, nous serions en mesure de construire les tests F à partir d'une décomposition SSQ comme fourni par
anova.lm
. Étant donné que l'ensemble de données est très étroitement équilibré, nous pouvons obtenir des tests F approximatifs comme suit:Ici, toutes les valeurs F et p sont calculées en supposant que tous les termes ont les résidus comme strate d'erreur englobante, et cela est vrai pour tous sauf «groupe». Le test F «équilibré-correct» pour le groupe est plutôt:
où nous utilisons le
subnum
MS au lieu duResiduals
MS dans le dénominateur de valeur F.Notez que ces valeurs correspondent assez bien aux résultats de Satterthwaite:
Les différences restantes sont dues au fait que les données ne sont pas exactement équilibrées.
L'OP se compare
anova.lm
àanova.lmerModLmerTest
, ce qui est correct, mais pour comparer comme avec, nous devons utiliser les mêmes contrastes. Dans ce cas, il y a une différence entreanova.lm
etanova.lmerModLmerTest
puisqu'ils produisent respectivement des tests de type I et III, et pour cet ensemble de données, il y a une (petite) différence entre les contrastes de type I et III:Si l'ensemble de données avait été complètement équilibré, les contrastes de type I auraient été les mêmes que les contrastes de type III (qui ne sont pas affectés par le nombre d'échantillons observé).
Une dernière remarque est que la `` lenteur '' de la méthode de Kenward-Roger n'est pas due au réajustement du modèle, mais parce qu'elle implique des calculs avec la matrice marginale de variance-covariance des observations / résidus (5191x5191 dans ce cas) qui n'est pas le cas de la méthode de Satterthwaite.
Concernant model2
Quant au modèle 2, la situation devient plus complexe et je pense qu'il est plus facile de commencer la discussion avec un autre modèle où j'ai inclus l'interaction «classique» entre
subnum
etdirection
:Étant donné que la variance associée à l'interaction est essentiellement nulle (en présence de l'
subnum
effet principal aléatoire), le terme d'interaction n'a aucun effet sur le calcul des degrés de liberté du dénominateur, des valeurs F et des valeurs p :Cependant,
subnum:direction
est la strate d'erreur englobante poursubnum
donc si nous supprimonssubnum
tous les SSQ associés retombe danssubnum:direction
Maintenant, le terme d'erreur naturelle pour
group
,direction
etgroup:direction
estsubnum:direction
et avecnlevels(with(ANT.2, subnum:direction))
= 40 et quatre paramètres, les degrés de liberté du dénominateur pour ces termes devraient être d'environ 36:Ces tests F peuvent également être approximés par les tests F «corrects équilibrés» :
Passons maintenant au modèle 2:
Ce modèle décrit une structure de covariance à effet aléatoire assez compliquée avec une matrice de variance-covariance 2x2. La paramétrisation par défaut n'est pas facile à gérer et on préfère une re-paramétrisation du modèle:
Si l' on compare
model2
àmodel4
, ils ont aussi de nombreux effets aléatoires; 2 pour chacunsubnum
, soit 2 * 20 = 40 au total. Bien qu'ilmodel4
stipule un seul paramètre de variance pour les 40 effets aléatoires,model2
stipule que chaquesubnum
paire d'effets aléatoires a une distribution normale bi-variée avec une matrice de variance-covariance 2x2 dont les paramètres sont donnés parCela indique un ajustement excessif, mais gardons cela pour un autre jour. Le point important est que
model4
est un cas particulier demodel2
et quimodel
est aussi un cas particulier demodel2
. Parler librement (et intuitivement)(direction | subnum)
contient ou capture la variation associée à l'effet principalsubnum
ainsi que l'interactiondirection:subnum
. En termes d'effets aléatoires, nous pouvons considérer ces deux effets ou structures comme capturant la variation entre les lignes et les lignes par colonnes respectivement:Dans ce cas, ces estimations de l'effet aléatoire ainsi que les estimations des paramètres de variance indiquent toutes deux que nous n'avons vraiment qu'un effet principal aléatoire de
subnum
(variation entre les lignes) présent ici. Tout cela conduit à ce que les degrés de liberté du dénominateur Satterthwaite dansest un compromis entre ces structures d'effet principal et d'interaction: le groupe DenDF reste à 18 (imbriqué
subnum
par conception) mais ledirection
etgroup:direction
DenDF sont des compromis entre 36 (model4
) et 5169 (model
).Je ne pense pas que quoi que ce soit ici indique que l'approximation de Satterthwaite (ou son implémentation dans lmerTest ) est défectueuse.
Le tableau équivalent avec la méthode de Kenward-Roger donne
Il n'est pas surprenant que KR et Satterthwaite puissent différer, mais à toutes fins pratiques, la différence de valeurs p est minime. Mon analyse ci-dessus indique que le
DenDF
fordirection
etgroup:direction
ne devrait pas être inférieur à ~ 36 et probablement plus grand que celui étant donné que nous n'avons essentiellement que l'effet principal aléatoire dedirection
present, donc si je pense que c'est une indication que la méthode KR devientDenDF
trop faible dans ce cas. Mais gardez à l'esprit que les données ne prennent pas vraiment en charge la(group | direction)
structure, la comparaison est donc un peu artificielle - il serait plus intéressant si le modèle était réellement pris en charge.la source
model3
. Cependant, il utilisesubnum:direction
comme terme d'erreur pour les testsdirection
. Alors qu'ici, vous pouvez forcer cela à se produire uniquement en excluant(1|subnum)
comme dansmodel4
. Pourquoi? (2b) De plus, RM-ANOVA donne df = 18 pourdirection
, pas 36 à mesure que vous entrezmodel4
. Pourquoi?summary(aov(rt ~ group*direction + Error(subnum/direction), data=ANT.2))
.subnum
etsubnum:direction
sont différents de zéroanova(lm(rt2 ~ group * direction + subnum + subnum:direction, data = ANT.2))
donne alors 18 df pour les trois facteurs et c'est ce que la méthode KR prend. Cela peut déjà être vu avecmodel3
où KR donne le 18 df basé sur le plan pour tous les termes, même lorsque la variance d'interaction est nulle tandis que Satterthwaite reconnaît le terme de variance disparue et ajuste le df en conséquence ....