Tes post hoc setelah ANOVA dengan tindakan berulang menggunakan R


24

Saya telah melakukan tindakan berulang ANOVA di R, sebagai berikut:

aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd)
summary(aov_velocity)
  • Sintaks apa dalam R yang dapat digunakan untuk melakukan tes post hoc setelah ANOVA dengan tindakan berulang?
  • Apakah tes Tukey dengan koreksi Bonferroni sesuai? Jika demikian, bagaimana ini bisa dilakukan dalam R?

1
lihat pertanyaan terkait ini pada tes post hoc untuk tindakan desain berulang stats.stackexchange.com/questions/575/…
Jeromy Anglim

3
Tentang poin kedua Anda: HSD Tukey sudah menyertakan "koreksi" untuk multiplisitas (pada tingkat statistik uji, bukan tingkat alfa seperti dalam metode Bonferroni). Jadi, tidak perlu menggabungkan keduanya.
chl

1
@ chl: jadi kita tidak perlu memperbaiki tingkat alfa selama beberapa perbandingan berpasangan dalam kasus Tukey's HSD?
stan

3
@stan No. (Catatan: Tes yang tidak terencana (post-hoc) harus dilakukan setelah ANOVA menunjukkan hasil yang signifikan, terutama jika menyangkut pendekatan konfirmasi.)
chl

Jawaban:


20

Yang dapat Anda lakukan adalah menentukan model dengan lmedan kemudian menggunakan glhtdari multcomppaket untuk melakukan apa yang Anda inginkan. Namun, lme memberikan nilai F yang sedikit berbeda dari ANOVA standar (lihat juga pertanyaan terakhir saya di sini ).

lme_velocity = lme(Velocity ~ Material, data=scrd, random = ~1|Subject)
anova(lme_velocity)

require(multcomp)
summary(glht(lme_velocity, linfct=mcp(Material = "Tukey")), test = adjusted(type = "bonferroni"))

Untuk kontras lain dari bonferroni, lihat misalnya, buku multcompdari penulis paket .

Anda juga mungkin ingin melihat pos ini pada daftar R-mailing , dan posting blog ini untuk menentukan tindakan berulang ANOVA di R .

Namun, seperti yang ditunjukkan dalam pertanyaan ini dari saya, saya tidak yakin apakah pendekatan ini identik dengan ANOVA. Lebih jauh, glht hanya melaporkan nilai- z alih-alih nilai t atau F biasa . Ini tampaknya tidak biasa juga.

Sejauh ini, saya belum menemukan cara lain untuk melakukan ini.


2

Jika Anda ingin tetap menggunakan aov()fungsi ini, Anda dapat menggunakan emmeanspaket yang dapat menangani aovlist(dan banyak objek lainnya ).

library("emmeans")
# set orthogonal contrasts
options(contrasts = c("contr.sum", "contr.poly"))

aov_velocity <- aov(Velocity ~ Material + Error(Subject / Material), data = scrd)

Setelah membuat emmGridobjek sebagai berikut

emm <- emmeans(aov_velocity, ~ Material)

sangat mudah untuk mendapatkan semua perbandingan (post hoc) berpasangan menggunakan pairs()fungsi atau kontras yang diinginkan menggunakan contrast()fungsi emmeanspaket. Penyesuaian beberapa pengujian dapat dicapai melalui adjustargumen dari fungsi-fungsi ini:

pairs(emm)  # adjust argument not specified -> default p-value adjustment in this case is "tukey"  

Untuk informasi lebih lanjut tentang ini, saya menemukan sketsa emmeans rinci dan dokumentasi sangat membantu.

Juga, Anda dapat menemukan contoh lengkap (dapat direproduksi) termasuk deskripsi tentang cara mendapatkan bobot kontras yang benar dalam jawaban saya di sini .

Perhatikan, bagaimanapun, bahwa menggunakan model univariat untuk tes post hoc dapat menghasilkan nilai- p anti-konservatif jika kebulatan dilanggar.


0

Jika kebulatan terpenuhi maka Anda dapat menjalankan ANOVA dua arah:

aov_velocity = aov(Velocity~Material+Subject, data=scrd)
posthoc      = TukeyHSD(aov_velocity, 'Material', conf.level=0.95).
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.