Différence des valeurs de p rapportées entre lm et aov dans R

12

Qu'est-ce qui explique les différences de valeurs de p dans ce qui suit aovet dans les lmappels? La différence est-elle uniquement due à différents types de calculs de sommes de carrés?

set.seed(10)
data=rnorm(12)
f1=rep(c(1,2),6)
f2=c(rep(1,6),rep(2,6))
summary(aov(data~f1*f2))
summary(lm(data~f1*f2))$coeff
Remi.b
la source

Réponses:

13

summary(aov)utilise des sommes dites de type I (séquentiel) de carrés. summary(lm)utilise des sommes dites de carrés de type III, qui ne sont pas séquentielles. Voir la réponse de Gung pour plus de détails.


Notez que vous devez appeler lm(data ~ factor(f1) * factor(2))( aov()convertit automatiquement le RHS de la formule en facteurs). Notez ensuite le dénominateur de la statistique générale en régression linéaire (voir cette réponse pour plus d'explications):t

t=ψ^ψ0σ^c(XX)1c

diffère pour chaquecoefficientβtestécar le vecteurchange. En revanche, le dénominateur dutestANOVAest toujours MSE.c(XX)-1cβ FcF

caracal
la source
1
Je pense que la première phrase de cette réponse est fausse. La différence semble être précisément due à différents types de somme de carrés: à savoir, le type I contre le type II / III. Le type I est séquentiel, ce qui est lmindiqué, tandis que le type II / III ne l'est pas. Ceci est expliqué assez en détail dans la réponse de @ gung à laquelle vous avez lié.
Amoeba dit Reinstate Monica
@amoeba Que proposez-vous pour corriger la réponse?
caracal
J'ai édité le premier paragraphe, voir si vous êtes d'accord avec l'édition et n'hésitez pas à le modifier comme vous le souhaitez.
Amoeba dit Reinstate Monica
2
set.seed(10)
data=rnorm(12)
f1=rep(c(1,2),6)
f2=c(rep(1,6),rep(2,6))
summary(aov(data~f1*f2))
            Df Sum Sq Mean Sq F value Pr(>F)
f1           1  0.535  0.5347   0.597  0.462
f2           1  0.002  0.0018   0.002  0.966
f1:f2        1  0.121  0.1208   0.135  0.723
Residuals    8  7.169  0.8962               
summary(lm(data~f1*f2))$coeff
               Estimate Std. Error    t value  Pr(>|t|)
(Intercept)  0.05222024   2.732756  0.0191090 0.9852221
f1          -0.17992329   1.728346 -0.1041014 0.9196514
f2          -0.62637109   1.728346 -0.3624106 0.7264325
f1:f2        0.40139439   1.093102  0.3672066 0.7229887

Ce sont deux codes différents. à partir du modèle Lm, vous avez besoin des coefficients. tandis qu'à partir du modèle aov vous tabulez simplement les sources de variation. Essayez le code

anova(lm(data~f1*f2))
Analysis of Variance Table

Response: data
          Df Sum Sq Mean Sq F value Pr(>F)
f1         1 0.5347 0.53468  0.5966 0.4621
f2         1 0.0018 0.00177  0.0020 0.9657
f1:f2      1 0.1208 0.12084  0.1348 0.7230
Residuals  8 7.1692 0.89615   

Cela donne la tabulation des sources de variation conduisant aux mêmes résultats.

user157663
la source
2
Cela ne semble pas répondre à la question, qui demande pourquoi les valeurs de p f1et f2diffèrent dans les deux résumés de votre panneau supérieur. On dirait que vous ne montrant que summary(aov(...))et anova(lm(...))en Ront une sortie similaire.
whuber