Lorsqu'il s'agit de données avec des facteurs, R peut être utilisé pour calculer les moyennes pour chaque groupe avec la fonction lm (). Cela donne également les erreurs types pour les moyennes estimées. Mais cette erreur standard diffère de ce que j'obtiens d'un calcul à la main.
Voici un exemple (tiré d'ici Prédire la différence entre deux groupes dans R )
Calculez d'abord la moyenne avec lm ():
mtcars$cyl <- factor(mtcars$cyl)
mylm <- lm(mpg ~ cyl, data = mtcars)
summary(mylm)$coef
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.663636 0.9718008 27.437347 2.688358e-22
cyl6 -6.920779 1.5583482 -4.441099 1.194696e-04
cyl8 -11.563636 1.2986235 -8.904534 8.568209e-10
L'ordonnée à l'origine est la moyenne du premier groupe, les voitures à 4 cylindres. Pour obtenir les moyens par calcul direct, j'utilise ceci:
with(mtcars, tapply(mpg, cyl, mean))
4 6 8
26.66364 19.74286 15.10000
Pour obtenir les erreurs standard pour les moyennes, je calcule la variation standard de l'échantillon et je divise par le nombre d'observations dans chaque groupe:
with(mtcars, tapply(mpg, cyl, sd)/sqrt(summary(mtcars$cyl)) )
4 6 8
1.3597642 0.5493967 0.6842016
Le calcul direct donne la même moyenne mais l'erreur standard est différente pour les 2 approches, je m'attendais à obtenir la même erreur standard. Qu'est-ce qui se passe ici? Il est lié à lm () ajustant la moyenne pour chaque groupe et un terme d'erreur?
Modifié: Après la réponse de Svens (ci-dessous), je peux formuler ma question de manière plus concise et plus claire.
Pour les données catégorielles, nous pouvons calculer la moyenne d'une variable pour différents groupes en utilisant lm () sans interception.
mtcars$cyl <- factor(mtcars$cyl)
mylm <- lm(mpg ~ cyl, data = mtcars)
summary(mylm)$coef
Estimate Std. Error
cyl4 26.66364 0.9718008
cyl6 19.74286 1.2182168
cyl8 15.10000 0.8614094
On peut comparer cela avec un calcul direct des moyennes et de leurs erreurs types:
with(mtcars, tapply(mpg, cyl, mean))
4 6 8
26.66364 19.74286 15.10000
with(mtcars, tapply(mpg, cyl, sd)/sqrt(summary(mtcars$cyl)) )
4 6 8
1.3597642 0.5493967 0.6842016
Les moyennes sont exactement les mêmes mais les erreurs standard sont différentes pour ces 2 méthodes (comme Sven le remarque également). Ma question est pourquoi sont-ils différents et pas les mêmes?
(lors de la modification de ma question, dois-je supprimer le texte d'origine ou ajouter mon édition comme je l'ai fait)