Saya memiliki satu set data yang terdiri dari 482 observasi.
data=Populationfull
Saya akan melakukan analisis asosiasi genotipe untuk 3 SNP. Saya mencoba membangun model untuk analisis saya dan saya menggunakan aov (y ~ x, data = ...). Untuk satu sifat saya memiliki beberapa efek tetap dan kovariat yang telah saya sertakan dalam model, seperti:
Starts <- aov(Starts~Sex+DMRT3+Birthyear+Country+Earnings+Voltsec+Autosec, data=Populationfull) summary(Starts) Df Sum Sq Mean Sq F value Pr(>F) Sex 3 17.90 5.97 42.844 < 2e-16 *** DMRT3 2 1.14 0.57 4.110 0.017 * Birthyear 9 5.59 0.62 4.461 1.26e-05 *** Country 1 11.28 11.28 81.005 < 2e-16 *** Earnings 1 109.01 109.01 782.838 < 2e-16 *** Voltsec 1 12.27 12.27 88.086 < 2e-16 *** Autosec 1 8.97 8.97 64.443 8.27e-15 *** Residuals 463 64.48 0.14 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Saya menemukan bahwa jika saya mengubah urutan variabel dalam model saya mendapat nilai p yang berbeda, silakan lihat di bawah.
Starts2 <- aov(Starts~Voltsec+Autosec+Sex+DMRT3+Birthyear+Country+Earnings, data=Populationfull) summary(Starts2) Df Sum Sq Mean Sq F value Pr(>F) Voltsec 1 2.18 2.18 15.627 8.92e-05 *** Autosec 1 100.60 100.60 722.443 < 2e-16 *** Sex 3 10.43 3.48 24.962 5.50e-15 *** DMRT3 2 0.82 0.41 2.957 0.05294 . Birthyear 9 3.25 0.36 2.591 0.00638 ** Country 1 2.25 2.25 16.183 6.72e-05 *** Earnings 1 46.64 46.64 334.903 < 2e-16 *** Residuals 463 64.48 0.14 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Mengapa saya mendapatkan nilai p yang berbeda tergantung pada urutan variabel / faktor / kovariat / fixedeffect (?) Yang dikodekan? Apakah ada cara untuk "memperbaiki" untuk itu? Mungkinkah saya menggunakan model yang salah? Saya masih cukup baru di R jadi jika Anda dapat membantu saya dengan ini, tolong tetap sederhana agar saya dapat memahami jawabannya hehe ... Terima kasih, semoga seseorang dapat membantu saya memahami ini!
Populationfull
agar masalah Anda dapat diulang . Ini tidak terjadi dengan contoh dariaov()
halaman bantuan.summary(aov(yield ~ block + N + P + K, npk)); summary(aov(yield ~ K + P + block + N , npk))
Earnings 1 109.01 109.01 782.838 < 2e-16 ***
kedua AndaEarnings 1 46.64 46.64 334.903 < 2e-16 ***
. Hasil Anda tidak sama. Mulailah dengan memeriksa untuk melihat bahwa Anda belum melakukan lebih dari menyusun ulang variabel.car
paket-mengimplementasikan ANOVA Tipe II dan Tipe III, yang tidak tergantung pada urutan variabel, sedangkanaov
ANOVA Tipe I.Jawaban:
Masalahnya berasal dari cara
aov()
melakukan pengujian signifikansi standarnya. Ia menggunakan apa yang disebut analisis ANOVA "Tipe I", di mana pengujian dilakukan dalam urutan variabel ditentukan dalam model Anda. Jadi dalam contoh pertama, ia menentukan berapa banyak varians dijelaskan olehsex
dan menguji signifikansinya, lalu bagian mana dari varians yang tersisa dijelaskan olehDMRT3
dan menguji signifikansinya dalam hal varians yang tersisa , dan sebagainya. Dalam contoh kedua,DMRT3
hanya dievaluasi setelahVoltsec
,,Autosec
dansex
, dalam urutan itu, sehingga ada sedikit variasi yang tersisa untukDMRT3
dijelaskan.Jika dua variabel prediktor dikorelasikan maka yang pertama dimasukkan ke dalam model akan mendapatkan "kredit" penuh, menyisakan sedikit varians untuk "dijelaskan oleh" yang kedua, yang dengan demikian mungkin tampak kurang "signifikan secara statistik" daripada yang pertama bahkan jika itu adalah tidak, secara fungsional. Pertanyaan ini dan jawabannya menjelaskan berbagai Jenis analisis ANOVA.
Salah satu cara untuk menyiasatinya adalah mengekstraksi diri Anda dari striktur ANOVA klasik dan menggunakan model linier sederhana, dengan
lm()
di R, bukanaov()
. Ini secara efektif menganalisis semua prediktor secara paralel, "mengoreksi" semua prediktor sekaligus. Dalam hal itu, dua prediktor yang berkorelasi mungkin memiliki kesalahan standar yang besar dari estimasi koefisien regresi mereka, dan koefisien mereka mungkin berbeda di antara sampel yang berbeda dari populasi, tetapi setidaknya urutan Anda memasukkan variabel ke dalam spesifikasi model tidak masalah.Jika variabel respons Anda adalah beberapa jenis variabel jumlah, seperti namanya
Starts
, maka Anda mungkin tidak boleh menggunakan ANOVA karena residu tidak mungkin terdistribusi secara normal, seperti yang ditafsirkan oleh p- value. Variabel jumlah lebih baik ditangani dengan model linier umum (misalnya,glm()
dalam R), yang dapat dianggap sebagai generalisasilm()
untuk jenis lain dari struktur kesalahan residual.sumber