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

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


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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.