Apa manfaat ANOVA dibandingkan model linear normal?

8


Saya bereksperimen dengan R dan menemukan bahwa anova () membutuhkan objek bertipe lm. Tapi mengapa saya harus melanjutkan dengan anova setelah ini:

> x <- data.frame(rand=rnorm(100), factor=sample(c("A","B","C"),100,replace=TRUE))
> head(x)
        rand factor
1  0.9640502      B
2 -0.5038238      C
3 -1.5699734      A
4 -0.8422324      B
5  0.2489113      B
6 -1.4685439      A

> model <- lm(x$rand ~ x$factor))
> summary(model)

Call:
lm(formula = x$rand ~ x$factor)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.74118 -0.89259  0.02904  0.59726  3.19762 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -0.1878     0.1845  -1.018    0.311
x$factorB    -0.1284     0.2689  -0.477    0.634
x$factorC     0.4246     0.2689   1.579    0.118

Residual standard error: 1.107 on 97 degrees of freedom
Multiple R-squared: 0.04345, Adjusted R-squared: 0.02372 
F-statistic: 2.203 on 2 and 97 DF,  p-value: 0.1160

Ini memberitahu saya semua yang saya butuhkan, atau tidak? Saya ingin tahu mengapa Anda ingin melanjutkan dengan anova (model)

Alexander Engelhardt
sumber
1
Ini hampir duplikat dari stats.stackexchange.com/questions/555/…
onestop

Jawaban:

16

Mari kita lihat apa yang Anda dapatkan ketika Anda benar-benar menggunakan fungsi anova () (angkanya berbeda dari pada contoh Anda, karena saya tidak tahu benih apa yang Anda gunakan untuk menghasilkan angka acak, tetapi intinya tetap sama):

> anova(model)

Analysis of Variance Table

Response: x$rand
          Df  Sum Sq Mean Sq F value Pr(>F)
x$factor   2   4.142  2.0708  1.8948 0.1559
Residuals 97 106.009  1.0929        

Uji-F untuk faktor pengujian secara bersamaan H0:β1=β2=0, yaitu hipotesis bahwa faktor secara umum tidak signifikan. Strategi yang umum adalah pertama menguji hipotesis omnibus ini sebelum menggali yang mana dari tingkat faktor yang berbeda satu sama lain.

Selain itu, Anda dapat menggunakan fungsi anova () untuk tes model penuh versus yang dikurangi. Sebagai contoh:

> x <- data.frame(rand=rnorm(100), factor=sample(c("A","B","C"),100,replace=TRUE), 
                  y1=rnorm(100), y2=rnorm(100))
> model1 <- lm(x$rand ~ x$factor + x$y1 + x$y2)
> model2 <- lm(x$rand ~ x$factor)
> anova(model2, model1)

Analysis of Variance Table

Model 1: x$rand ~ x$factor
Model 2: x$rand ~ x$factor + x$y1 + x$y2
Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     97 105.06                           
2     95 104.92  2   0.13651 0.0618 0.9401

yang merupakan perbandingan dari model lengkap dengan faktor dan dua kovariat (y1 dan y2) dan model tereduksi, di mana kita mengasumsikan bahwa kemiringan dari dua kovariat keduanya secara simultan sama dengan nol.

Wolfgang
sumber
2
(+1) Respons yang baik. Saya ingin menambahkan bahwa ini sering kali merupakan kontras khusus yang menarik di DoE sebagaimana dianalisis melalui ANOVA, dan bahwa yang default (seperti yang dikembalikan oleh summary.aov(lm(...))atau anova(lm(...))tidak menarik perhatian tertentu
chl.
@ chl: Ini poin yang bagus. Meskipun, saya pikir ada sesuatu yang bisa dikatakan untuk benar-benar membangun kontras untuk hipotesis yang Anda tertarik untuk diuji. Tidak ada perbedaan mendasar antara ANOVA dan regresi. Terkadang, rutinitas ANOVA menyembunyikan hipotesis yang sedang diuji. Pada saat yang sama, prosedur ANOVA kadang-kadang mengemas segala sesuatu dengan cara yang Anda inginkan.
Brett
Terima kasih pak :) Jadi saya pertama-tama akan melihat anova, jika faktornya membuat perbedaan sama sekali, sebelum saya melihat lm () - output untuk melihat faktor mana yang membuat perbedaan? Tapi bukankah lm () - output sudah memberi tahu saya jika faktor-faktor yang berbeda signifikan (dengan 1-3 bintang di belakangnya)?
Alexander Engelhardt
1
Tidak terlalu. Output dari lm () di atas memberi tahu Anda apakah ada perbedaan yang signifikan antara level A (level referensi) dan level B dan C. Tidak memberi tahu Anda apakah level B dan C berbeda secara signifikan satu sama lain. Tentu saja, Anda dapat membuat level B (atau C) referensi Anda (dengan fungsi relevel ()), tetapi anggaplah Anda memiliki faktor dengan banyak level. Memeriksa semua kontras berpasangan di antara level akan menjadi membosankan. Plus, Anda sedang melakukan banyak tes. Alternatifnya adalah dengan pertama-tama memeriksa tes omnibus untuk memeriksa apakah ada sesuatu yang terjadi.
Wolfgang
Ha! Terima kasih banyak. Sepertinya saya tidak mengerti bahwa lm () hanya menguji faktor-faktor terhadap tingkat referensi.
Alexander Engelhardt