Чи може lmer () використовувати сплайни як випадкові ефекти?


19

Скажімо, ми працюємо над моделлю випадкових ефектів деяких даних підрахунку з часом, і ми хочемо контролювати деякі тенденції. Зазвичай ви робите щось на кшталт:

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

включити квадратичну форму для t. Чи можна використовувати деякі більш складні методи згладжування, такі як ЗЛАСНЕ згладжування або сплайси для моделювання цих відносин?

Відповіді:


25

Якщо те, що ви показуєте, працює для lmerформули терміна випадкових ефектів, тоді ви повинні мати можливість використовувати функції з пакету сплайнів, який поставляється разом з 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термін ідея із випадковим ефектом - це щось, про що варто подумати, а не те, що я кваліфікований для коментування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.