Perbedaan nilai p yang dilaporkan antara lm dan aov dalam R


12

Apa yang menjelaskan perbedaan dalam nilai-p dalam hal berikut aovdan lmpanggilan? Apakah perbedaannya hanya karena berbagai jenis perhitungan jumlah kotak?

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

Jawaban:


13

summary(aov)menggunakan jumlah yang disebut Tipe I (berurutan) dari kuadrat. summary(lm)menggunakan jumlah kuadrat Tipe III yang disebut, yang tidak berurutan. Lihat jawaban gung untuk detailnya.


Perhatikan bahwa Anda perlu menelepon lm(data ~ factor(f1) * factor(2))( aov()secara otomatis mengubah RHS rumus menjadi faktor). Kemudian perhatikan denominator untuk umum t -statistic dalam regresi linear (lihat ini jawaban untuk penjelasan lebih lanjut):

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

c(XX)1c berbeda untuk setiap koefisien diuji karena vektor berubah. Sebaliknya, penyebut dalam ANOVA -test selalu MSE.βcF


1
Saya pikir kalimat pertama dari jawaban ini salah. Perbedaannya tampaknya justru karena berbagai jenis jumlah kuadrat: yaitu, tipe I vs tipe II / III. Tipe I adalah berurutan, yang merupakan apa yang lmdilaporkan, sedangkan Tipe II / III tidak. Ini dijelaskan dengan cukup rinci dalam jawaban @ gung yang Anda tautkan.
Amuba mengatakan Reinstate Monica

@amoeba Apa yang Anda sarankan untuk mengoreksi jawabannya?
caracal

Saya mengedit paragraf pertama, melihat apakah Anda setuju dengan hasil edit, dan merasa bebas untuk mengubahnya sesuka Anda.
Amuba mengatakan 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

Ini adalah dua kode yang berbeda. dari model Lm Anda membutuhkan koefisien. sedangkan dari model aov Anda hanya tabulasi sumber variasi. Coba kodenya

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   

Ini memberikan tabulasi sumber-sumber variasi yang mengarah pada hasil yang sama.


2
Ini tampaknya tidak menjawab pertanyaan, yang menanyakan mengapa nilai-p untuk f1dan f2berbeda dalam dua ringkasan panel atas Anda. Sepertinya Anda hanya menunjukkan itu summary(aov(...))dan anova(lm(...))dalam Rmemiliki output yang sama.
whuber
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.