J'espère que c'est une question à laquelle quelqu'un ici peut répondre pour moi sur la nature de la décomposition des sommes de carrés à partir d'un modèle à effets mixtes lmer
(à partir du package lme4 R).
Tout d'abord, je dois dire que je suis conscient de la controverse liée à l'utilisation de cette approche et, dans la pratique, je serais plus susceptible d'utiliser un TLR amorcé pour comparer les modèles (comme suggéré par Faraway, 2006). Cependant, je suis perplexe sur la façon de reproduire les résultats, et donc pour ma propre raison, j'ai pensé demander ici.
Fondamentalement, je commence à utiliser des modèles à effets mixtes adaptés au lme4
package. Je sais que vous pouvez utiliser la anova()
commande pour donner un résumé des tests séquentiels des effets fixes dans le modèle. Autant que je sache, c'est ce que Faraway (2006) appelle l'approche des «carrés moyens attendus». Ce que je veux savoir, c'est comment sont calculées les sommes des carrés?
Je sais que je pourrais prendre les valeurs estimées d'un modèle particulier (en utilisant coef()
), supposer qu'elles sont fixes, puis faire des tests en utilisant les sommes des carrés des résidus du modèle avec et sans les facteurs d'intérêt. C'est très bien pour un modèle contenant un seul facteur intra-sujet. Cependant, lors de la mise en œuvre d'une conception à parcelles divisées, la valeur des sommes des carrés que j'obtiens est équivalente à la valeur produite par R en utilisant aov()
une Error()
désignation appropriée . Cependant, ce n'est pas la même chose que les sommes des carrés produites par la anova()
commande sur l'objet modèle, malgré le fait que les rapports F sont les mêmes.
Bien sûr, cela est tout à fait logique car il n'est pas nécessaire pour les Error()
strates dans un modèle mixte. Cependant, cela doit signifier que les sommes des carrés sont pénalisées d'une manière ou d'une autre dans un modèle mixte afin de fournir des ratios F appropriés. Comment y parvient-on? Et comment le modèle corrige-t-il en quelque sorte la somme des carrés entre les parcelles, mais pas la somme des carrés intra-parcelles. Évidemment, c'est quelque chose qui est nécessaire pour une ANOVA à parcelles divisées classique qui a été obtenue en désignant différentes valeurs d'erreur pour les différents effets, alors comment un modèle à effets mixtes permet-il cela?
Fondamentalement, je veux pouvoir reproduire anova()
moi-même les résultats de la commande appliquée à un objet de modèle lmer pour vérifier les résultats et ma compréhension, mais pour le moment, je peux y parvenir pour une conception intra-sujet normale, mais pas pour le fractionnement. la conception de l'intrigue et je n'arrive pas à comprendre pourquoi c'est le cas.
Par exemple:
library(faraway)
library(lme4)
data(irrigation)
anova(lmer(yield ~ irrigation + variety + (1|field), data = irrigation))
Analysis of Variance Table
Df Sum Sq Mean Sq F value
irrigation 3 1.6605 0.5535 0.3882
variety 1 2.2500 2.2500 1.5782
summary(aov(yield ~ irrigation + variety + Error(field/irrigation), data = irrigation))
Error: field
Df Sum Sq Mean Sq F value Pr(>F)
irrigation 3 40.19 13.40 0.388 0.769
Residuals 4 138.03 34.51
Error: Within
Df Sum Sq Mean Sq F value Pr(>F)
variety 1 2.25 2.250 1.578 0.249
Residuals 7 9.98 1.426
Comme on peut le voir ci-dessus, les ratios F sont tous d'accord. Les sommes des carrés pour la variété sont également d'accord. Cependant, les sommes des carrés pour l'irrigation ne sont pas d'accord, mais il semble que la sortie de lmer soit mise à l'échelle. Alors, que fait réellement la commande anova ()?
la source
mixed()
deafex
qui offre ce que vous voulez (viamethod = "PB"
). Et comme vous avez évidemment fait des tests avec des données de jouets, il serait certainement utile de montrer ces équivalences avec les données et le code (donc pas de +1).Réponses:
Utilisez la source, Luke. Nous pouvons jeter un œil à l'intérieur de la fonction ANOVA en faisant
getAnywhere(anova.Mermod)
. La première partie de cette fonction consiste à comparer deux modèles différents. L'anova sur les effets fixes entre dans le grandelse
bloc au second semestre:object
est la sortie lmer. Nous commençons à calculer la somme des carrés de la ligne 5:ss <- as.vector ...
Le code multiplie les paramètres fixes (inbeta
) par une matrice triangulaire supérieure; puis carré chaque terme. Voici cette matrice triangulaire supérieure pour l'exemple d'irrigation. Chaque ligne correspond à l'un des cinq paramètres d'effets fixes (interception, 3 degrés de liberté pour l'irrigation, 1 df pour la variété).La première ligne vous donne la somme des carrés pour l'interception et la dernière vous donne le SS pour l'effet de variété intra-champs. Les lignes 2 à 4 n'impliquent que les 3 paramètres pour les niveaux d'irrigation, donc la pré-multiplication vous donne trois morceaux de SS pour l'irrigation.
Ces pièces ne sont pas intéressantes en elles-mêmes car elles proviennent du contraste de traitement par défaut dans R, mais en ligne,
ss <- unlist(lapply(split ....
Bates récupère des morceaux de sommes en fonction du nombre de niveaux et des facteurs auxquels ils se réfèrent. Il y a beaucoup de comptabilité ici. Nous obtenons également les degrés de liberté (qui sont 3 pour l'irrigation). Ensuite, il obtient les carrés moyens qui apparaissent sur l'impression deanova
. Enfin, il partage tous ses moyens carrés par la variance intra-groupes résiduels,sigma(object)^2
.Alors que se passe-t-il? La philosophie deR00 σ 2 fσ2/σ2f−−−−−√ σ2f vous posiez des questions, mais cela n'entre pas dans la solution de manière transparente ou simple.
lmer
n'a rien à voir avec la méthode d'approche des moments utilisée paraov
. L'idéelmer
est de maximiser une probabilité marginale obtenue en intégrant les effets aléatoires invisibles. Dans ce cas, le niveau de fertilité aléatoire de chaque champ. Le chapitre 2 de Pinheiro et Bates décrit la laideur de ce processus. LaRX
matrice utilisée pour obtenir les sommes des carrés est leur matrice de l'équation 2.17, page 70 du texte. Cette matrice est obtenue à partir d'un tas de décompositions QR sur (entre autres) la matrice de conception des effets aléatoires et , où est la variance de l'effet de champ . C'est ce facteur manquant√De manière asymptotique, les estimations des effets fixes ont une distribution:
ce qui signifie que les composants de sont distribués indépendamment. Si , les carrés de ces termes (divisés par ) suivent une distribution chi carré. La division par l'estimation de (un autre chi carré lorsqu'il est divisé par ) donne une statistique F. Nous ne divisons pas par l'erreur quadratique moyenne pour l'analyse entre les groupes, car cela n'a rien à voir avec ce qui se passe ici. Nous devons comparer les sommes des carrés obtenues par en les comparant à une estimation de . la ß = 0 σ 2 σ 2 σ 2 R 00 σ 2R00β^ β=0 σ2 σ2 σ2 R00 σ2
Notez que vous n'auriez pas obtenu les mêmes statistiques F si les données avaient été déséquilibrées. Vous n'auriez pas non plus obtenu les mêmes statistiques F si vous aviez utilisé ML au lieu de REML.
L'idée sous-jacenteσ2 σ2f σ2 σ2f
aov
est que les carrés moyens attendus pour l'irrigation sont fonction de , et des effets d'irrigation. Le carré moyen attendu pour les résidus de champ est une fonction de et . Lorsque les effets d'irrigation sont nuls, ces deux quantités estiment la même chose et leur rapport suit une distribution F.σ 2 f σ 2 σ 2 fFait intéressant, Bates et Pinheiro recommandent d'utiliser l'ANOVA plutôt que d'adapter deux modèles et de faire un test de rapport de vraisemblance. Ce dernier a tendance à être anti-conservateur.
Bien sûr, si les données sont déséquilibrées, on ne sait plus exactement quelle hypothèse l'ANOVA teste. J'ai retiré la première observation des données d'irrigation et je l'ai remontée. Voici à nouveau la matrice :R00
Comme vous pouvez le voir, les sommes des carrés des paramètres d'irrigation contiennent également une partie de l'
variety
effet.la source