Lắp mô hình hỗn hợp Poisson GLM với độ dốc và đánh chặn ngẫu nhiên


9

Tôi hiện đang làm việc trên một loạt các mô hình chuỗi thời gian Poisson đang cố gắng ước tính tác động của sự thay đổi trong cách tính số lượng (chuyển từ thử nghiệm chẩn đoán này sang thử nghiệm khác) trong khi kiểm soát các xu hướng khác theo thời gian (nói chung là tăng theo tỷ lệ mắc bệnh). Tôi đã có dữ liệu cho một số trang web khác nhau.

Mặc dù tôi cũng đã mày mò với GAM, tôi đã phù hợp với một loạt GLM khá cơ bản với xu hướng thời gian trong đó, sau đó tổng hợp kết quả. Mã cho cái này sẽ trông giống như thế này trong SAS:

PROC GENMOD data=work.data descending;
  model counts = dependent_variable time time*time / link=log dist = poisson;
run;

hoặc cái này trong R:

glm(counts ~ dependent_variable + time + time*time, family="poisson")

Sau đó lấy những ước tính đó, và gộp chúng trên các trang web khác nhau. Tôi cũng được đề nghị là tôi thử sử dụng mô hình hỗn hợp Poisson với độ dốc ngẫu nhiên và đánh chặn cho từng trang web, thay vì gộp chung. Vì vậy, về cơ bản, bạn sẽ có hiệu ứng cố định của tệp phụ thuộc, sau đó là hiệu ứng ngẫu nhiên cho việc chặn và thời gian (hoặc lý tưởng là thời gian và thời gian ^ 2 mặc dù tôi hiểu rằng có một chút lông).

Vấn đề của tôi là tôi không biết làm thế nào để phù hợp với một trong những mô hình này và dường như các mô hình hỗn hợp là nơi tài liệu của mọi người đột nhiên rất mờ đục. Bất cứ ai cũng có một lời giải thích đơn giản (hoặc mã) về cách phù hợp với những gì tôi đang tìm kiếm để phù hợp, và những gì cần chú ý?

Câu trả lời:


14

Trong R:

library(lme4)
lmer(counts ~ dependent_variable + (1+time|ID), family="poisson")

Trong trường hợp này và mã này phù hợp với mô hình YiPoisson(λi)

log(λi)=β0+β1Xi+ηi1+ηi2t

Xidependent_variablettimeiIDβ0,β1ηi1,ηi2

Poisson(1)t=1,...,10

x = rnorm(100)
t = rep(1:10,each=10)
ID = rep(1:10,10)
y = rpois(100,1)
g <- lmer(y ~ x + (1+t|ID), family="poisson")
summary(g)
Generalized linear mixed model fit by the Laplace approximation 
Formula: y ~ x + (1 + t | ID) 
   AIC   BIC logLik deviance
 108.8 121.9 -49.42    98.85
Random effects:
 Groups Name        Variance  Std.Dev. Corr   
 ID     (Intercept) 0.0285038 0.168831        
        t           0.0027741 0.052669 -1.000 
Number of obs: 100, groups: ID, 10

Fixed effects:
            Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.09078    0.11808  -0.769    0.442
x            0.13670    0.08845   1.546    0.122

Correlation of Fixed Effects:
  (Intr)
x -0.127

Một điểm cần lưu ý - Std.Dev.cột chỉ là căn bậc hai của Variancecột, KHÔNG phải là lỗi tiêu chuẩn của ước tính phương sai!


Và ηi1 của nó dẫn đến việc đánh chặn ngẫu nhiên?
Fomite

ηi1

Cảm ơn câu trả lời - thêm một câu hỏi. Trong một số GLM, một số trang web được hưởng lợi rất nhiều từ ^ 2 kỳ. Có vẻ như hầu hết mọi người đều gắn thẻ ở một hoặc hai hiệu ứng ngẫu nhiên - mức độ khó chịu của người thứ ba sẽ như thế nào về mặt tính toán?
Fomite

Vâng, trong ví dụ mô phỏng ở trên, chỉ có 100 quan sát và 10 nhóm, thêm hiệu ứng ngẫu nhiên thứ ba (bằng cách gõ g <- lmer(y ~ x + (1+t+I(t^2)|ID), family="poisson")), tăng thời gian tính toán từ khoảng 0,75 giây lên khoảng 11 giây. Khi kích thước mẫu tăng lên, thời gian tính toán tăng cũng có thể tăng.
Macro

1
t

2

Trong SAS:

proc glimmix data = yourdata ic = q;
    class id;
    model y = x / dist = poisson solution;
    random intercept t / subject = id;
run;

Nhưng tất nhiên sau đó, có rất nhiều lựa chọn, ít nhiều hữu ích để chơi.


Cảm ơn :) Đáng buồn thay, tôi dường như đã mắc cạn về các vấn đề hội tụ, nhưng tôi sẽ khắc phục những vấn đề đó.
Fomite
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.