Differenza nei valori di p riportati tra lm e aov in R


12

Cosa spiega le differenze nei valori p di seguito aove le lmchiamate? La differenza è dovuta solo a diversi tipi di calcoli di somma dei quadrati?

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

Risposte:


13

summary(aov)usa le cosiddette somme di quadrati di tipo I (sequenziali). summary(lm)utilizza le cosiddette somme di quadrati di tipo III, che non è sequenziale. Vedi la risposta di Gung per i dettagli.


Si noti che è necessario chiamare lm(data ~ factor(f1) * factor(2))( aov()converte automaticamente l'RHS della formula in fattori). Quindi nota il denominatore per il -statistic generale nella regressione lineare (vedi questa risposta per ulteriori spiegazioni):t

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

β c Fc(XX)1c differisce per ogni coefficiente testato perché il vettore cambia. Al contrario, il denominatore nel test ANOVA è sempre MSE.βcF


1
Penso che la prima frase di questa risposta sia sbagliata. La differenza sembra essere precisamente dovuta a diversi tipi di somma dei quadrati: vale a dire, tipo I vs. tipo II / III. Il tipo I è sequenziale, che è ciò che lmriporta, mentre il tipo II / III non lo è. Questo è spiegato in modo abbastanza dettagliato nella risposta di @ gung a cui ti sei collegato.
ameba dice che ripristini Monica il

@amoeba Cosa suggerisci per correggere la risposta?
Caracal,

Ho modificato il primo paragrafo, vedi se stai bene con la modifica e sentiti libero di cambiarlo come preferisci.
ameba dice di reintegrare Monica il

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

Questi sono due codici diversi. dal modello Lm sono necessari i coefficienti. mentre dal modello aov stai solo tabulando le fonti di variazione. Prova il codice

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   

Questo dà la tabulazione delle fonti di variazione che portano agli stessi risultati.


2
Ciò non sembra rispondere alla domanda, che chiede perché i valori p siano f1e f2differiscano nei due riepiloghi del pannello superiore. Sembra che si sta mostrando solo quello summary(aov(...))e anova(lm(...))in Rhanno un risultato simile.
whuber
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.