Lắp một Poisson GLM trong R - các vấn đề với tỷ lệ so với số lượng


11

Tôi hiện đang làm việc trong một dự án liên quan đến GLM (và cuối cùng là GAM) một số dữ liệu đếm theo thời gian. Thông thường tôi sẽ làm điều này trong SAS, nhưng tôi đang cố gắng chuyển sang R và gặp ... vấn đề.

Khi tôi lắp GLM để đếm dữ liệu bằng cách sử dụng như sau:

cdi_model <- glm(counts ~ exposure + covariate + month, data=test, family = poisson)

Tôi có:

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.9825  -0.7903  -0.1187   0.5717   1.7649  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  1.97563    0.20117   9.821  < 2e-16 ***
exposure     0.94528    0.30808   3.068  0.00215 ** 
covariate   -0.01317    0.28044  -0.047  0.96254    
months      -0.03203    0.01303  -2.458  0.01398 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 40.219  on 29  degrees of freedom
Residual deviance: 29.297  on 26  degrees of freedom
AIC: 137.7

Number of Fisher Scoring iterations: 5

Bỏ qua một lúc hiệu năng, hoặc thiếu nó của chính mô hình - chủ yếu là chơi với cú pháp và tương tự tại thời điểm này.

Tuy nhiên, khi tôi cố gắng điều chỉnh dữ liệu tỷ lệ (số lượng / người-ngày) và sử dụng một giá trị bù như vậy: cdi_model <- glm(count_rate ~ exposure + covariate + months + offset(log(pd)), data=test, family = poisson)

Tôi nhận được hơn 50 cảnh báo, tất cả "1: Trong dpois (y, mu, log = TRUE): không nguyên x = 0,002082", v.v. Đó là nhiều hơn một cho mỗi quan sát (chỉ có 30 trong tập dữ liệu).

Ngoài ra, mô hình phù hợp dường như đi vào nồi. Đầu ra như sau:

 Deviance Residuals: 
       Min          1Q      Median          3Q         Max  
-0.0273656  -0.0122169   0.0002396   0.0072269   0.0258643  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)
(Intercept) -15.40110   15.12772  -1.018    0.309
exposure      0.84848   22.18012   0.038    0.969
covariate    -0.02751   21.31262  -0.001    0.999
months       -0.01889    0.95977  -0.020    0.984

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 0.0068690  on 29  degrees of freedom
Residual deviance: 0.0054338  on 26  degrees of freedom
AIC: Inf

Number of Fisher Scoring iterations: 9

Mặc dù vậy, nếu tôi vẽ tỷ lệ dự đoán dựa trên dữ liệu thực tế, mức độ phù hợp sẽ không tệ hơn nhiều và ước tính hiệu quả thực tế dường như không thay đổi nhiều.

Bất cứ ai cũng có một ý tưởng những gì đang xảy ra - hoặc nếu mọi thứ đang diễn ra và tôi đang thiếu một cái gì đó do thiếu kinh nghiệm?

Câu trả lời:


17

Khi bạn thêm phần bù, bạn không cần (và không nên) cũng tính toán tỷ lệ và bao gồm mức phơi sáng.

Tôi không biết liệu đây có phải là nguyên nhân gây ra lỗi hay không, nhưng nếu mức độ phơi sáng trên mỗi trường hợp là ngày của người pd, thì biến phụ thuộc phải là countsvà phần bù phải log(pd)như thế này:

cdi_model <- glm(counts ~ covariate + months + offset(log(pd)), 
                 data=test, family = poisson)

(+1) Đôi khi tôi thấy các nhà dịch tễ học gọi bất kỳ biến quan tâm độc lập nào là "phơi nhiễm" (ví dụ: "phơi nhiễm với thuốc lá"). Nhưng nắm bắt tốt, bạn chắc chắn không nên sử dụng tỷ lệ làm biến phụ thuộc.
Andy W

Tôi đã đoán được rằng biến số 'tháng' là độ dài của phơi sáng, nhưng nguyên tắc sẽ giống nhau.
Aniko

@Aniko Tôi đoán chúng tôi sẽ tìm ra đủ sớm. Tôi đã nghĩ rằng nếu nó hợp lý để nghĩ về một tỷ lệ như vậy (counts/thing)thì mô hình tuyến tính log gần như luôn luôn counts ~ ... + offset(log(thing)). Và trong khi chúng tôi đoán thứ hai, tôi cũng dự đoán rằng log(pd) == exposure...
liên hợp chiến binh

Để làm rõ một số điều - Andy W là chính xác. "Phơi bày" thực sự là một biến quan tâm độc lập (trong trường hợp này là thay đổi chính sách). Tháng chỉ là "tháng kể từ ngày X" để cho phép kiểm soát một số xu hướng trong dữ liệu.
Fomite

@ConjugateP Warrior Khi sử dụng mô hình trong câu trả lời của bạn, không nên đầu ra của mô hình ở mức? Chạy nó dường như đặt mọi thứ ra như một số liệu thô mặc dù bao gồm bù. Hay là còn một bước nữa tôi đang thiếu?
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.