Pengukuran berulang ANOVA dengan lme / lmer dalam R untuk dua faktor dalam subjek

19

Saya mencoba menggunakan lmedari nlmepaket untuk mereplikasi hasil dari aovuntuk ANOVA tindakan berulang. Saya telah melakukan ini untuk percobaan pengukuran berulang faktor tunggal dan untuk eksperimen dua faktor dengan satu faktor antar-subjek dan satu faktor dalam-subyek, tetapi saya mengalami kesulitan melakukannya untuk eksperimen dua faktor dengan dua dalam -subyek faktor.

Contohnya ditunjukkan di bawah ini. Adan Bmerupakan faktor efek tetap dan subjectmerupakan faktor efek acak.

set.seed(1)
d <- data.frame(
    Y = rnorm(48),
    subject = factor(rep(1:12, 4)),
    A = factor(rep(1:2, each=24)),
    B = factor(rep(rep(1:2, each=12), 2)))

summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d))  # Standard repeated measures ANOVA

library(nlme)
# Attempts:
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject))  # not same as above
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject/(A+B)))  # gives error

Saya tidak bisa melihat penjelasan tentang ini di buku Pinheiro dan Bates, tetapi saya mungkin mengabaikannya.

mark999
sumber

Jawaban:

15

Apa yang Anda pas aovdisebut strip plot, dan itu sulit untuk cocok lmekarena subject:Adansubject:B efek acak disilangkan.

Upaya pertama Anda setara dengan aov(Y ~ A*B + Error(subject), data=d) , yang tidak mencakup semua efek acak; upaya kedua Anda adalah ide yang tepat, tetapi sintaks untuk efek acak menyeberang menggunakan lme sangat sulit.

Menggunakan lmedari nlmepaket, kodenya akan

lme(Y ~ A*B, random=list(subject=pdBlocked(list(~1, pdIdent(~A-1), pdIdent(~B-1)))), data=d)

Menggunakan lmerdari lme4paket, kodenya akan seperti

lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d)    

Utas ini dari R-help mungkin membantu (dan untuk memberikan kredit, di situlah saya mendapatkannya nlme kode).

http://www.biostat.wustl.edu/archives/html/s-news/2005-01/msg00091.html

http://permalink.gmane.org/gmane.comp.lang.r.lme4.devel/3328

http://www.mail-archive.com/[email protected]/msg10843.html

Tautan terakhir ini merujuk ke hal.165 dari Pinheiro / Bates; itu mungkin juga membantu.

EDIT: Juga perhatikan bahwa dalam kumpulan data yang Anda miliki, beberapa komponen varians negatif, yang tidak diperbolehkan menggunakan efek acak dengan lme, sehingga hasilnya berbeda. Kumpulan data dengan semua komponen varians positif dapat dibuat menggunakan seed 8. Hasil kemudian setuju. Lihat jawaban ini untuk detailnya.

Juga perhatikan bahwa lmedari nlmetidak menghitung derajat kebebasan penyebut dengan benar, sehingga F-statistik setuju tetapi tidak dengan nilai-p, dan lmerdari lme4tidak mencoba juga karena sangat rumit dengan adanya efek acak silang yang tidak seimbang, dan mungkin tidak bahkan menjadi hal yang masuk akal untuk dilakukan. Tapi itu lebih dari yang saya ingin masuk ke sini.

Aaron - Pasang kembali Monica
sumber
Aaron, saya tidak berpikir bahwa kode lmer Anda benar. aovPanggilan OP hanyalah sebuah desain tindakan berulang standar, yang akan dianalisis dengan lmer as lmer(Y~A*B+(1|subject)). (Meskipun lihat juga jawaban ini untuk model yang lebih rumit yang memungkinkan estimasi varians dan korelasi efek lintas-S: stats.stackexchange.com/questions/13166/rs-lmer-cheat-sheet/… )
Mike Lawrence
4
Panggilan aov OP memiliki tiga efek acak; untuk mereplikasi itu dengan lmerkode saya di atas sudah benar. lmerKode Anda hanya memiliki satu efek acak. Yang benar akan tergantung pada konteksnya.
Aaron - Reinstate Monica
Perhatikan juga bahwa jawaban yang Anda tautkan tidak memiliki contoh efek acak silang.
Aaron - Pasang kembali Monica
6

Upaya pertama Anda adalah jawaban yang benar jika hanya itu yang Anda coba lakukan. nlme () menghitung komponen di antara dan di dalam, Anda tidak perlu menentukannya.

Masalah yang Anda hadapi bukan karena Anda tidak tahu bagaimana menentukan model, itu karena tindakan berulang ANOVA dan efek campuran bukanlah hal yang sama. Terkadang hasil dari model ANOVA dan efek campuran akan cocok. Ini terutama terjadi ketika Anda mengumpulkan data seperti yang Anda lakukan untuk ANOVA dan menghitung keduanya dari itu. Tetapi secara umum, jika dilakukan dengan benar, sementara kesimpulannya mungkin sama, hasilnya hampir tidak pernah sama. Contoh data Anda tidak seperti ukuran berulang yang nyata di mana Anda sering memiliki replikasi dari setiap ukuran dalam S. Ketika Anda melakukan ANOVA biasanya Anda mengumpulkan seluruh replikasi tersebut untuk mendapatkan perkiraan efek untuk setiap subjek. Dalam pemodelan efek campuran Anda tidak melakukan hal seperti itu. Anda bekerja dengan data mentah. Ketika Anda melakukan itu Anda

[sebagai tambahan, menggunakan lmer () (dari paket lme4) alih-alih lme () beri saya nilai SS dan MS yang sama persis dengan ANOVA untuk efek dalam contoh Anda, hanya saja F-nya berbeda]

John
sumber
1
Saya percaya bahwa jika semuanya seimbang hasilnya menggunakan model campuran (yaitu, mendapatkan estimasi dengan ML atau REML) dan hasilnya menggunakan ANOVA (yaitu, mendapatkan estimasi dengan momen) akan hampir identik. Masalahnya dalam hal ini adalah sintaks untuk mendapatkan model yang cocok dengan menggunakan kedua metode.
Aaron - Pasang kembali Monica
Saya tidak yakin apa yang ingin Anda capai. Sepertinya Anda hanya mencoba mempelajari cara mereplikasi hasil untuk lebih memahami hubungan. Apa yang ingin Anda lakukan tidak dapat dilakukan dengan nlme. Saya baru saja melihat lmer dan juga tidak mungkin di sana (meskipun setidaknya melaporkan MS untuk efek Anda identik dengan ANOVA). Jika Anda menginginkan hasil ANOVA, lakukan saja ANOVA. Dengan data nyata, dilakukan dengan benar, keduanya hampir tidak pernah persis sama.
John
1
Perhatikan juga bahwa upaya pertama tidak benar karena tidak memperhitungkan efek acak yang dilewati dengan benar.
Aaron - Pasang kembali Monica
1
John, terima kasih atas jawaban Anda. Alasan saya melakukan ini adalah karena saya membaca suatu tempat di situs ini bahwa tindakan berulang ANOVA umumnya tidak direkomendasikan lagi, dengan model efek campuran lebih disukai. Untuk beberapa alasan saya mendapat kesan bahwa kedua metode akan memberikan hasil yang sama untuk desain yang seimbang, dan saya sedang mencoba untuk mengkonfirmasi ini.
mark999
Aaron, saya menganggapnya sebagai jawaban yang benar untuk apa yang dianggap setara. Ini biasanya yang direkomendasikan sebagai langkah pertama dalam mereplikasi tindakan berulang. Tidak ada 'benar' seperti dalam pasangan sempurna. Menambahkan lebih banyak efek acak tidak akan menyelesaikan masalah. Saya perhatikan bahwa salah satu jawaban yang Anda rujuk merekomendasikan solusi yang Anda tulis. Namun, itu sama sekali tidak berbeda dengan hasil ANOVA (modelnya berbeda tetapi tidak ANOVA) dari apa yang saya katakan benar. Saya menduga penulis mencoba untuk mencocokkan dengan apa yang diminta OP tetapi itu bukan model yang masuk akal.
John