Dalam R, bagaimana cara menentukan model lmer tanpa efek tetap global? Misalnya, jika saya mengatakan sesuatu seperti
lmer(y ~ (1 | group) + (0 + x | group), data = my_df)
model yang pas akan
Bagaimana saya cocok dengan model
?
r
mixed-model
lme4-nlme
Leo
sumber
sumber
lmer(y~0+(1|group)+(0+x|group))
akan berhasil, tetapi ini menghasilkan kesalahan.y
dulu :)Jawaban:
Seperti @Mike Lawrence menyebutkan hal yang jelas harus dilakukan ketika mendefinisikan model tanpa efek tetap adalah sesuatu dalam bentuk:
yang sebenarnya cukup mudah; satu tidak mendefinisikan intersep atau X matrix. Alasan dasar mengapa hal ini tidak berhasil adalah karena @maxTC menunjukkan " paket lme4 didedikasikan untuk model campuran saja ".
Khususnya apa yang dilakukan lmer () adalah menghitung penyimpangan yang diprofilkan dengan menyelesaikan regresi kuadrat terkecil yang dihukum antaray^ dan y serta efek acak bola kamu dan 0 (Persamaan (11), Ref. (2)). Secara komputasional, prosedur optimisasi ini menghitung dekomposisi Cholesky dari sistem yang sesuai yang mengeksploitasi struktur blok sistem (Persamaan (5), Rujukan (1)). Pengaturan tidak ada efek tetap global secara praktis mendistorsi struktur blok sedemikian rupa sehingga kode lmer () tidak dapat mengatasinya. Antara lain nilai ekspektasi bersyarat darikamu berdasarkan pada β^ Tapi pemecahan untuk β^ meminta solusi sistem matriks yang tidak pernah ada (matriks RXX dalam Acuan (1), atau L.X dalam Referensi (2)). Jadi Anda mendapatkan kesalahan seperti:
karena bagaimanapun juga tidak ada yang perlu dipecahkan.
Dengan asumsi Anda tidak ingin menulis ulang lmer () profil fungsi biaya penyimpangan, solusi termudah didasarkan pada aksioma CS-101: sampah masuk, sampah keluar .
Jadi yang kita lakukan adalah mendefinisikan variabelG a r b a ge itu hanyalah kebisingan; seperti sebelum lmer () diinstruksikan untuk tidak menggunakan intersep tetap tetapi hanya matriks X yang mendefinisikan kita (dalam hal ini matriks kolom tunggal Sampah). Variabel Gaussian noise ekstra ini akan diharapkan tidak berkorelasi dengan kesalahan pengukuran sampel kami serta dengan varians efek acak Anda. Tidak perlu dikatakan bahwa semakin banyak struktur model Anda memiliki semakin kecil kemungkinan untuk mendapatkan korelasi acak yang tidak diinginkan tetapi signifikan secara statistik.
Jadi lmer () memiliki plaseboX variabel (matriks) untuk bermain, Anda berharap akan mendapatkan terkait β menjadi nol dan Anda tidak perlu menormalkan data dengan cara apa pun (memusatkannya, memutihkannya, dll.). Mungkin mencoba beberapa inisialisasi acak dari plaseboX Matriks juga tidak akan sakit. Catatan terakhir untuk "Garbage": menggunakan Gaussian noise bukanlah "kebetulan"; ia memiliki entropi terbesar di antara semua variabel acak dengan varian yang sama sehingga peluang paling kecil untuk memberikan informasi.
Jelas, ini lebih merupakan trik komputasi daripada solusi, tetapi memungkinkan pengguna untuk secara efektif menentukan model lmer tanpa efek tetap global. Permintaan maaf karena berharap di sekitar dua referensi. Secara umum saya pikir Pustaka (1) adalah taruhan terbaik bagi siapa pun untuk menyadari apa yang dilakukan tir (), tetapi Pustaka (2) lebih dekat dengan semangat kode aktual.
Berikut sedikit kode show-casing ide di atas:
Referensi:
sumber