Memeriksa asumsi model campuran lmer / lme dalam R

25

Saya menjalankan desain berulang dimana saya menguji 30 pria dan 30 wanita di tiga tugas yang berbeda. Saya ingin memahami bagaimana perilaku pria dan wanita berbeda dan bagaimana itu tergantung pada tugas. Saya menggunakan paket lmer dan lme4 untuk menyelidiki ini, namun, saya terjebak dengan mencoba memeriksa asumsi untuk kedua metode. Kode yang saya jalankan adalah

lm.full <- lmer(behaviour ~ task*sex + (1|ID/task), REML=FALSE, data=dat)
lm.full2 <-lme(behaviour ~ task*sex, random = ~ 1|ID/task, method="ML", data=dat)

Saya memeriksa apakah interaksi tersebut adalah model terbaik dengan membandingkannya dengan model yang lebih sederhana tanpa interaksi dan menjalankan anova:

lm.base1 <- lmer(behaviour ~ task+sex+(1|ID/task), REML=FALSE, data=dat)
lm.base2 <- lme(behaviour ~ task+sex, random= ~1|ID/task), method="ML", data=dat)
anova(lm.base1, lm.full)
anova(lm.base2, lm.full2)

T1: Apakah boleh menggunakan prediktor kategori ini dalam model campuran linier?
T2: Apakah saya mengerti dengan benar tidak apa-apa variabel hasil ("perilaku") tidak perlu didistribusikan secara normal sendiri (lintas jenis kelamin / tugas)?
T3: Bagaimana saya bisa memeriksa homogenitas varians? Untuk model linier sederhana saya gunakan plot(LM$fitted.values,rstandard(LM)). Apakah menggunakan plot(reside(lm.base1))cukup?
Q4: Untuk memeriksa normalitas menggunakan kode berikut, ok?

hist((resid(lm.base1) - mean(resid(lm.base1))) / sd(resid(lm.base1)), freq = FALSE); curve(dnorm, add = TRUE)
crazjo
sumber
Satu hal yang saya perhatikan adalah bahwa versi lme4 yang saya gunakan bukan yang terbaru dan karenanya plot sederhana (myModel.lm) tidak berfungsi, mungkin ini membantu pembaca lain untuk mengetahui ..
crazjo

Jawaban:

26

T1: Ya - sama seperti model regresi mana pun.

T2: Sama seperti model linear umum, variabel hasil Anda tidak perlu didistribusikan secara normal sebagai variabel univariat. Namun, model LME mengasumsikan bahwa residual dari model terdistribusi secara normal. Jadi transformasi atau penambahan bobot pada model akan menjadi cara untuk mengurus hal ini (dan tentu saja memeriksa dengan plot diagnostik).

Q3: plot(myModel.lme)

Q4: qqnorm(myModel.lme, ~ranef(., level=2)). Kode ini akan memungkinkan Anda membuat plot QQ untuk setiap tingkat efek acak. Model-model LME mengasumsikan bahwa tidak hanya residu dalam-kluster yang terdistribusi secara normal, tetapi juga setiap level efek acak. Variasikan leveldari 0, 1, hingga 2 sehingga Anda dapat memeriksa tikus, tugas, dan residu dalam subjek.

EDIT: Saya juga harus menambahkan bahwa sementara normalitas diasumsikan dan transformasi yang mungkin membantu mengurangi masalah dengan kesalahan / efek acak yang tidak normal, tidak jelas bahwa semua masalah sebenarnya diselesaikan atau bias tidak diperkenalkan. Jika data Anda memerlukan transformasi, maka berhati-hatilah dengan perkiraan efek acak. Ini makalah yang membahas ini .

Moose
sumber
Terima kasih atas jawaban anda. Saya ingin membagikan dataset dan skrip saya untuk analisis termasuk keluaran untuk melihat apakah yang saya lakukan memang benar. Apakah mungkin dalam pertukaran tumpukan? Selain itu saya pikir saya menjalankan faktor acak yang salah (1 | tikus / tugas), bukankah seharusnya hanya (1 | tikus)? Saya menguji 60rat (30 dari setiap jenis kelamin) pada tiga tugas.
crazjo
9
Saya mencoba kode untuk Q4 baru-baru ini dan saya mendapat kesalahan tentang objek bertipe 'S4' tidak dapat diterima. Apakah kode yang dimaksudkan untuk model sesuai dengan paket lme? Bagaimana dengan lme4?
emudrak
Mengenai Q4, orang yang membuat plot perlu diingat bahwa N untuk masing-masing plot yang dihasilkan akan jauh lebih kecil dari total dan oleh karena itu plot akan jauh lebih bervariasi. Jangan berharap mereka terlihat secara konsisten terdistribusi secara normal.
John
14

Anda tampaknya cukup menyesatkan tentang asumsi seputar model multi-level. Tidak ada asumsi homogenitas varians dalam data, hanya saja residu seharusnya terdistribusi secara normal. Dan prediktor kategoris digunakan dalam regresi sepanjang waktu (fungsi yang mendasari dalam R yang menjalankan ANOVA adalah perintah regresi linier).

Untuk perincian tentang memeriksa asumsi, lihat buku Pinheiro dan Bates (hlm. 174, bagian 4.3.1). Juga, jika Anda berencana untuk menggunakan lme4 (yang tidak dituliskan oleh buku), Anda dapat mereplikasi plotnya menggunakan plot dengan lmermodel ( ?plot.merMod).

Untuk memeriksa normalitas dengan cepat, itu hanya akan terjadi qqnorm(resid(myModel)).

John
sumber
Terima kasih atas komentar Anda. Apakah Anda menyarankan menggunakan lmer di atas metode lme4? Dan apakah saya benar dalam memahami variabel respons yang tidak perlu didistribusikan secara normal? Saya akan membaca buku Pinheiro dan Bates dengan tepat.
crazjo
Juga, apakah Anda yakin menjalankan qqnorm (resid (myModel)) pada model campuran dengan beberapa faktor berfungsi?
crazjo
Fungsi lmer yang lebih baru memiliki kemampuan lebih dan kinerja yang lebih tinggi. Sudahkah Anda mencoba qqnorm? Ikuti saran di awal buku tentang cara membacanya.
John
Plot saya awalnya tampak aneh, mungkin karena saya memang tidak memiliki versi terbaru dari LER. Terima kasih telah mencatat ini, sekarang berfungsi sesuai kebutuhan.
crazjo
12

Tentang Q2:

Menurut Pinheiro dan Bates' buku Anda dapat menggunakan pendekatan sebagai berikut:

" lmeFungsi ini memungkinkan pemodelan heteroscesdastisitas kelompok kesalahan dalam melalui weightsargumen. Topik ini akan dibahas secara rinci dalam § 5.2, tetapi, untuk saat ini, cukup untuk mengetahui bahwa varIdentstruktur fungsi varians memungkinkan varians yang berbeda untuk setiap level. sebuah faktor dan dapat digunakan agar sesuai dengan model heteroscedastic [...] "

Pinheiro dan Bates, hlm. 177

Jika Anda ingin memeriksa varians yang sama antara sexAnda dapat menggunakan pendekatan ini:

plot( lm.base2, resid(., type = "p") ~ fitted(.) | sex,
  id = 0.05, adj = -0.3 )

Jika varians berbeda, Anda dapat memperbarui model Anda dengan cara berikut:

lm.base2u <- update( lm.base2, weights = varIdent(form = ~ 1 | sex) )
summary(lm.base2u)

Lebih jauh lagi, Anda mungkin melihat robustlmmpaket yang juga menggunakan pendekatan penimbangan. Tesis PhD Koller tentang konsep ini tersedia sebagai akses terbuka ("Estimasi Kuat Model Campuran Linier"). Status abstrak:

"Estimasi skala baru, estimasi Skala Adaptasi Desain, dikembangkan dengan tujuan untuk memberikan dasar yang kuat untuk pengujian kuat berikutnya. Ini dilakukan dengan menyamakan heteroskedastisitas residu alami dan untuk menyesuaikan persamaan estimasi kuat untuk skala itu sendiri. "Koreksi adaptif desain ini sangat penting dalam pengaturan sampel kecil, di mana jumlah pengamatan mungkin hanya lima kali lipat dari jumlah parameter yang diperkirakan atau kurang."



Saya tidak punya cukup poin untuk komentar. Namun saya melihat perlunya untuk mengklarifikasi beberapa aspek dari jawaban @John di atas. Status Pinheiro dan Bates pada hal. 174:

Asumsi 1 - kesalahan dalam kelompok adalah independen dan terdistribusi secara normal, dengan rata-rata nol dan varians σ2, dan mereka independen dari efek acak.

Pernyataan ini memang tidak jelas tentang varian yang homogen dan saya tidak cukup mendalam dalam statistik untuk mengetahui semua matematika di balik konsep LME. Namun, pada hal. 175, §4.3.1, bagian yang berhubungan dengan Asumsi 1 yang mereka tulis:

Pada bagian ini, kami berkonsentrasi pada metode untuk menilai asumsi bahwa kesalahan dalam grup terdistribusi secara normal, berpusat pada nol, dan memiliki varian konstan .

Juga, dalam contoh berikut " varians konstan " memang penting. Dengan demikian, orang dapat berspekulasi apakah mereka menyiratkan varians yang homogen ketika mereka menulis " terdistribusi secara identik " pada hal. 174 tanpa mengatasinya lebih langsung.

Juga
sumber
-6

T1: Ya, mengapa tidak?

T2: Saya pikir persyaratannya adalah bahwa kesalahan didistribusikan secara normal.

Q3: Dapat diuji dengan uji Leven misalnya.

pengguna12719
sumber