lmer () สามารถใช้ splines เป็นเอฟเฟกต์แบบสุ่มได้หรือไม่?


19

สมมติว่าเรากำลังทำงานกับโมเดลเอฟเฟกต์สุ่มของข้อมูลนับจำนวนหนึ่งเมื่อเวลาผ่านไปและเราต้องการควบคุมแนวโน้มบางอย่าง โดยปกติคุณจะทำสิ่งที่ชอบ:

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

tรวมถึงรูปร่างกำลังสองสำหรับ เป็นไปได้ไหมที่จะใช้เทคนิคการทำให้เรียบที่ซับซ้อนยิ่งขึ้นเช่นความนุ่มนวลหรือเส้นโค้งเพื่อสร้างความสัมพันธ์แบบนั้น

คำตอบ:


25

หากสิ่งที่คุณแสดงใช้ได้กับlmerสูตรสำหรับคำที่มีเอฟเฟกต์แบบสุ่มคุณควรจะสามารถใช้ฟังก์ชั่นจากแพ็คเกจSplinesที่มาพร้อมกับ R เพื่อตั้งค่าฟังก์ชั่นพื้นฐานที่เกี่ยวข้อง

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

ขึ้นอยู่กับสิ่งที่คุณต้องการทำคุณควรดูแพ็คเกจgamm4และแพ็คเกจmgcv อดีตคือการทำให้bs()บิตในการlmer()เรียกใช้เป็นทางการเป็นไปอย่างเป็นทางการและช่วยให้การเลือกความราบรื่นนั้นเป็นส่วนหนึ่งของการวิเคราะห์ หลังพร้อมฟังก์ชั่นgam()ช่วยให้มีความยืดหยุ่นในระดับที่พอดีในรูปแบบนี้ (ถ้าฉันเข้าใจสิ่งที่คุณพยายามทำ) ดูเหมือนว่าคุณต้องการแนวโน้มแยกต่างหากภายในID? แนวทางเอฟเฟกต์คงที่มากขึ้นจะเป็นเช่น:

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

เอฟเฟกต์แบบสุ่มสามารถรวมอยู่ในgam()แบบจำลองโดยใช้s(foo, bs = "re")คำศัพท์ประเภทที่fooจะเป็นIDตัวอย่างของคุณ การรวมbyคำศัพท์กับเอฟเฟกต์แบบสุ่มเป็นเรื่องที่ควรพิจารณาหรือไม่และเป็นสิ่งที่ฉันมีคุณสมบัติที่จะแสดงความคิดเห็น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.