Membandingkan model campuran (subjek sebagai efek acak) dengan model linier sederhana (subjek sebagai efek tetap)


10

Saya sedang menyelesaikan beberapa analisis pada sejumlah besar data. Saya ingin mengambil model linier yang digunakan di bagian pertama pekerjaan dan menyesuaikannya menggunakan model campuran linier (LME). LME akan sangat mirip dengan pengecualian bahwa salah satu variabel yang digunakan dalam model akan digunakan sebagai efek acak. Data ini berasal dari banyak pengamatan (> 1000) dalam kelompok kecil subjek (~ 10) dan saya tahu bahwa pemodelan efek subjek lebih baik dilakukan sebagai efek acak (ini adalah variabel yang ingin saya ubah). Kode R akan terlihat seperti:

my_modelB <- lm(formula = A ~ B + C + D)    
lme_model <- lme(fixed=A ~ B + C, random=~1|D, data=my_data, method='REML')

Semuanya berjalan dengan baik dan hasilnya sangat mirip. Akan lebih baik jika saya bisa menggunakan sesuatu seperti RLRsim atau AIC / BIC untuk membandingkan dua model ini dan memutuskan mana yang paling tepat. Kolega saya tidak ingin melaporkan LME karena tidak ada cara mudah untuk memilih mana yang "lebih baik", meskipun saya pikir LME adalah model yang lebih tepat. Ada saran?

Jawaban:


6

Ini untuk menambahkan jawaban @ ocram karena terlalu panjang untuk dikirim sebagai komentar. Saya akan memperlakukan A ~ B + Csebagai model nol Anda sehingga Anda dapat menilai signifikansi statistik Dintersep acak tingkat-dalam pengaturan model bersarang. Seperti yang ditunjukkan ocram, kondisi keteraturan dilanggar ketika , dan statistik uji rasio kemungkinan (LRT) tidak harus didistribusikan secara asimptotik χ 2 . Solusi yang saya ajarkan adalah untuk bootstrap LRT (yang distribusi bootstrapnya kemungkinan tidak akan χ 2 ) secara parametrik dan menghitung nilai p bootstrap seperti ini:H0:σ2=0χ2χ2

library(lme4)
my_modelB <- lm(formula = A ~ B + C)
lme_model <- lmer(y ~ B + C + (1|D), data=my_data, REML=F)
lrt.observed <- as.numeric(2*(logLik(lme_model) - logLik(my_modelB)))
nsim <- 999
lrt.sim <- numeric(nsim)
for (i in 1:nsim) {
    y <- unlist(simulate(mymodlB))
    nullmod <- lm(y ~ B + C)
    altmod <- lmer(y ~ B + C + (1|D), data=my_data, REML=F)
    lrt.sim[i] <- as.numeric(2*(logLik(altmod) - logLik(nullmod)))
}
mean(lrt.sim > lrt.observed) #pvalue

Proporsi LRT yang di-bootstrap lebih ekstrim dari LRT yang diamati adalah nilai-p.


Terima kasih telah melengkapi jawaban saya. Juga, kadang-kadang orang menggunakan campuran chi-square daripada distribusi chi-square untuk statistik uji.
ocram

@ocram +1 untuk komentar Anda tentang memutuskan apakah akan memperlakukan variabel sebagai acak atau diperbaiki secara terpisah dari analisis. @MudPhud Jika PI Anda tidak memahami masalah ini dan bersikeras tentang nilai-p, maka mungkin tunjukkan saja kepadanya hasil dari pengujian efek acak (yang akan tetap Anda sertakan dalam penulisan).
terkunci

Terima kasih untuk kodenya. Ketika saya menjalankannya, hasilnya adalah tidak ada LRT bootstrap yang lebih besar dari yang diamati, jadi ini berarti bahwa saya dapat tetap menggunakan lm tanpa efek acak atau bahkan variabel asli yang dilemparkan ke dalam.
MudPhud

@MudPhud: Apakah Anda mendapatkan kesalahan? Coba ketikkan lrt.simuntuk memastikan mereka tidak semua nol, dalam hal ini kemungkinan penyebabnya adalah Anda tidak memiliki paket yang lme4diinstal.
terkunci

Mereka bukan 0, hanya sangat kecil (~ 1e-6) dibandingkan dengan yang diamati (63,95).
MudPhud

2

0H0:variance=0H1:variance>0...

EDIT

Untuk menghindari kebingungan: Tes yang disebutkan di atas kadang-kadang digunakan untuk memutuskan apakah efek acak itu signifikan atau tidak ... tetapi tidak untuk memutuskan apakah itu harus diubah menjadi efek tetap atau tidak.


Pertanyaannya adalah: apakah ada tes untuk memutuskan apakah variabel harus dimodelkan sebagai efek campuran atau efek acak? Kalau tidak, Anda bisa melakukan tes yang Anda jelaskan dan kemudian mengujinya dengan chi-square dist (saya tidak yakin apa tes yang sesuai akan).
MudPhud

2
@MudPhud: Pemodelan variabel sebagai tetap atau sebagai efek acak sebenarnya harus diputuskan sebelum analisis, ketika penelitian ini direncanakan. Ini tergantung, khususnya, pada ruang lingkup kesimpulan Anda. Efek acak memungkinkan generalisasi lebih. Bisa juga menghindari beberapa kesulitan teknis. Sebagai contoh, asimptotik mungkin rusak ketika jumlah parameter tumbuh, seperti halnya ketika variabel kategori dengan banyak level dianggap sebagai variabel tetap.
ocram

Saya setuju, tetapi ketika saya mencoba menjelaskan hal ini kepada PI saya, dia hanya berbalik dan meminta p-value. Saya ingin memasukkan analisis ini dalam sebuah manuskrip, tetapi dia tidak akan memasukkannya jika tidak ada pembenaran yang lebih konkret.
MudPhud

1
@MudPhud: Sejauh pengetahuan saya, tidak ada nilai p untuk keputusan seperti itu. Jika minat berpusat pada pengaruh level tertentu yang dipilih maka itu harus dianggap sebagai tetap. Jika tingkat faktor yang tersedia dilihat sebagai sampel acak dari populasi yang lebih besar dan bahwa kesimpulan diinginkan untuk populasi yang lebih besar, efeknya harus acak.
ocram
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.