Bisakah lmer () menggunakan splines sebagai efek acak?

19

Katakanlah kami sedang mengerjakan model efek acak dari beberapa data jumlah dari waktu ke waktu, dan kami ingin mengendalikan beberapa tren. Biasanya, Anda akan melakukan sesuatu seperti:

lmer(counts ~ dependent_variable + (1+t+I(t^2)|ID), family="poisson")

untuk memasukkan bentuk kuadrat untuk t. Apakah mungkin untuk menggunakan beberapa teknik smoothing yang lebih canggih seperti LOESS yang lebih halus atau splines untuk memodelkan hubungan itu?

Fomite
sumber

Jawaban:

25

Jika apa yang Anda perlihatkan berfungsi untuk lmerrumus untuk istilah efek acak maka Anda harus dapat menggunakan fungsi dari paket splines yang datang dengan R untuk mengatur fungsi basis yang relevan.

require("lme4")
require("splines")
lmer(counts ~ dependent_variable + (bs(t) | ID), family="poisson")

Bergantung pada apa yang ingin Anda lakukan, Anda juga harus melihat paket gamm4 dan paket mgcv . Yang pertama pada dasarnya memformalkan bs()bit dalam lmer()panggilan di atas dan memungkinkan pemilihan kelancaran untuk dilakukan sebagai bagian dari analisis. Yang terakhir dengan fungsi gam()memungkinkan untuk beberapa tingkat fleksibilitas dalam model pas seperti ini (jika saya mengerti apa yang Anda coba lakukan). Sepertinya Anda ingin tren terpisah di dalam ID? Pendekatan efek yang lebih pasti akan seperti:

gam(counts ~ dependent_variable + ID + s(t, by = ID) , family="poisson")

Efek acak dapat dimasukkan dalam gam()model menggunakan s(foo, bs = "re")istilah jenis di mana fooakan berada IDdalam contoh Anda. Apakah masuk akal untuk menggabungkan byistilah ide dengan efek acak adalah sesuatu untuk dipikirkan dan bukan sesuatu yang saya memenuhi syarat untuk berkomentar.

Pasang kembali Monica - G. Simpson
sumber