Lmer () có thể sử dụng splines làm hiệu ứng ngẫu nhiên không?


19

Giả sử chúng tôi đang làm việc trên một mô hình hiệu ứng ngẫu nhiên của một số dữ liệu đếm theo thời gian và chúng tôi muốn kiểm soát một số xu hướng. Thông thường, bạn sẽ làm một cái gì đó như:

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

để bao gồm một hình dạng bậc hai cho t. Có thể sử dụng một số kỹ thuật làm mịn tinh vi hơn như LOESS mượt mà hơn hoặc spline để mô hình hóa mối quan hệ đó?

Câu trả lời:


25

Nếu những gì bạn hiển thị hoạt động cho một lmercông thức cho một thuật ngữ hiệu ứng ngẫu nhiên thì bạn sẽ có thể sử dụng các hàm từ gói splines đi kèm với R để thiết lập các hàm cơ sở có liên quan.

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

Tùy thuộc vào những gì bạn muốn làm, bạn cũng nên xem gói gamm4 và gói mgcv . Cái trước về cơ bản là chính thức hóa bs()bit trong lmer()cuộc gọi ở trên và cho phép lựa chọn độ mịn được thực hiện như một phần của phân tích. Cái sau với chức năng gam()cho phép một số mức độ linh hoạt trong các mô hình phù hợp như thế này (nếu tôi hiểu những gì bạn đang cố gắng làm). Có vẻ như bạn muốn xu hướng riêng biệt trong ID? Một cách tiếp cận hiệu ứng cố định hơn sẽ là một cái gì đó như:

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

Hiệu ứng ngẫu nhiên có thể được đưa vào gam()mô hình bằng cách sử dụng s(foo, bs = "re")thuật ngữ kiểu nơi foosẽ là IDtrong ví dụ của bạn. Cho dù việc kết hợp bythuật ngữ ý tưởng với một hiệu ứng ngẫu nhiên có hợp lý hay không là điều đáng suy nghĩ và không phải là điều tôi đủ điều kiện để nhận xét.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.