Sử dụng R cho GLM với phân phối Gamma


13

Tôi hiện đang gặp vấn đề trong việc hiểu cú pháp của R để điều chỉnh GLM bằng cách sử dụng phân phối Gamma.

Tôi có một bộ dữ liệu, trong đó mỗi hàng chứa 3 đồng biến ( ), biến trả lời ( Y ) và tham số hình dạng ( K ). Tôi muốn mô hình hóa quy mô phân phối Gamma dưới dạng hàm tuyến tính của 3 hiệp, nhưng tôi không hiểu cách đặt hình dạng của phân phối thànhX1,X2,X3YK cho mỗi hàng dữ liệu.K

Một tình huống mà tôi nghĩ là tương tự là đối với phân phối nhị thức, GLM yêu cầu số lượng thử nghiệm ( ) được biết cho mỗi lần nhập dữ liệu.N

Câu trả lời:


12

Gamma GLM thông thường chứa giả định rằng tham số hình dạng là hằng số, giống như mô hình tuyến tính bình thường giả định phương sai không đổi.

Trong GLM cách nói tham số phân tán, trong Var ( Y i ) = φ V ( μ i ) là thường hằng.ϕVar(Yi)=ϕV(μi)

Tổng quát hơn, bạn có , nhưng điều đó không có sự giúp đỡ.a(ϕ)

Có lẽ có thể sử dụng Gamma GLM có trọng số để kết hợp hiệu ứng này của một tham số hình dạng đã chỉ định, nhưng tôi chưa nghiên cứu khả năng này (nếu nó hoạt động có lẽ là cách dễ nhất để làm điều đó, nhưng tôi hoàn toàn không phải vậy chắc chắn rằng nó sẽ).

Nếu bạn có một GLM kép, bạn có thể ước tính tham số đó là một hàm của hiệp phương sai ... và nếu phần mềm glm kép cho phép bạn chỉ định một phần bù trong thuật ngữ phương sai, bạn có thể làm điều này. Có vẻ như hàm dglmtrong gói dglmcho phép bạn chỉ định bù. Tôi không biết nếu nó sẽ cho phép bạn chỉ định một mô hình phương sai như (nói) ~ offset(<something>) + 0.

Một cách khác là tối đa hóa khả năng trực tiếp.


> y <- rgamma(100,10,.1)

> summary(glm(y~1,family=Gamma))

Call:
glm(formula = y ~ 1, family = Gamma)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.93768  -0.25371  -0.05188   0.16078   0.81347  

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.0103660  0.0003486   29.74   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for Gamma family taken to be 0.1130783) 

    Null deviance: 11.223  on 99  degrees of freedom
Residual deviance: 11.223  on 99  degrees of freedom
AIC: 973.56

Number of Fisher Scoring iterations: 5

Dòng nơi nó nói:

   (Dispersion parameter for Gamma family taken to be 0.1130783)

là người bạn muốn

Đó φ có liên quan đến các tham số hình dạng của Gamma.ϕ^


1
ϕ=KKKβK

μMASS

glm(V4 ~ V3 + V2 + V1, family=Gamma)V1,V2,V3V4β

1
Vâng, bạn có thể thực hiện bất cứ điều gì bên ngoài R có thể được thực hiện trong đó; bạn có thể tối đa hóa khả năng, ví dụ, hoặc bạn có thể sử dụng ước tính dựa trênϕ^

1
βVθ=(βTV)1YGamma(5,θ)β^β

12

Tôi đã sử dụng chức năng gamma.shape của gói MASS như được mô tả bởi Balajari (2013) để ước tính tham số hình dạng sau đó và sau đó điều chỉnh các ước tính và dự đoán hệ số trong GLM. Tôi khuyên bạn nên đọc bài giảng vì theo tôi, rất rõ ràng và thú vị liên quan đến việc sử dụng phân phối gamma trong GLM.

glmGamma <- glm(response ~ x1, family = Gamma(link = "identity")
library(MASS)
myshape <- gamma.shape(glmGamma)
gampred <- predict(glmGamma , type = "response", se = T, dispersion = 1/myshape$alpha) 
    summary(glmGamma, dispersion = 1/myshape$alpha)
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.