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′(X′X)−1c

β c Fc′(X′X)−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.