Làm cách nào để xác định phân phối logic trong đối số họ glm trong R?


17

Câu hỏi đơn giản: Làm thế nào để xác định phân phối hợp lý trong đối số họ GLM trong R? Tôi không thể tìm thấy làm thế nào điều này có thể đạt được. Tại sao lognatural (hoặc hàm mũ) không phải là một lựa chọn trong đối số gia đình?

Ở đâu đó trong R-Archives tôi đọc rằng người ta chỉ cần sử dụng liên kết nhật ký cho gia đình được đặt thành gaussian trong GLM, để chỉ định một logic bất thường. Tuy nhiên, điều này là vô nghĩa vì điều này sẽ phù hợp với hồi quy phi tuyến tính và R bắt đầu yêu cầu các giá trị bắt đầu.

Có ai biết làm thế nào để thiết lập phân phối lognatural (hoặc hàm mũ) cho GLM không?


1
Điều này nên có trên SO với thẻ [r].
DWin

4
@DWin - Tôi không đồng ý một lần - Tôi thường bỏ phiếu để tự di chuyển Q sang SO, nhưng câu hỏi này có nội dung thống kê quan trọng.
vào

Câu trả lời:


8

Các gamlss gói cho phép bạn để phù hợp với mô hình phụ gia tổng quát với cả lognormal và phân phối mũ, và một bó của những người khác, với một số đa dạng trong các chức năng liên kết và sử dụng, nếu bạn muốn, mô hình bán hoặc phi tham số dựa trên splines phạt. Nó có một số bài báo được xuất bản trên các thuật toán được sử dụng, tài liệu và ví dụ được liên kết đến trang web tôi đã liên kết đến.


10

Về việc khớp mô hình hàm mũ với glm: Khi sử dụng glmhàm với gia đình = Gamma, người ta cũng cần sử dụng các phương tiện hỗ trợ summary.glmđể sửa tham số phân tán thành 1:

?summary.glm
fit <- glm(formula =..., family = Gamma)
summary(fit,dispersion=1) 

Và như tôi định chỉ ra nhưng jbowman đã đánh bại tôi, gói "gamlss" cung cấp cho sự phù hợp với log-normal:

help(dLOGNO, package=gamlss.dist)

1
Tôi không biết về việc sửa tham số phân tán (+1).
jbowman

Tôi thấy giải pháp này trong một bài viết khác, tôi nghĩ. Tuy nhiên, có hai vấn đề. Đầu tiên, trong trường hợp này chỉ có phần tóm tắt được điều chỉnh nhưng các tham số tôi cần trích xuất (phần dư, v.v.) không được điều chỉnh thành độ phân tán của 1, hay tôi sai? Thứ hai, tôi không thể phù hợp với gia đình = Gamma vì có các số không trong tập dữ liệu (thực ra đây là các giá trị nhỏ của veeery nhưng được đặt thành 0). Tôi sẽ kiểm tra gói gamlss.dist!
Jens

1
Chà, vấn đề số không không phải là vấn đề với R hay glm, nhưng với toán học, ... và nếu bạn có ước tính tham số, việc xây dựng phần dư là chuyện nhỏ trong R. Đăng câu hỏi đó trong SO bằng thẻ [r] và bạn chắc chắn sẽ nhận được một phản ứng nhanh chóng.
DWin

9

Logn normal không phải là một lựa chọn vì phân phối log-normal không thuộc họ phân phối theo cấp số nhân . Các mô hình tuyến tính tổng quát chỉ có thể phù hợp với các phân phối từ gia đình hàm mũ.

Tôi không rõ tại sao số mũ không phải là một lựa chọn, vì phân phối theo cấp số nhân nằm trong gia đình hàm mũ (như bạn có thể hy vọng). Phần mềm thống kê khác mà tôi quen thuộc cho phép điều chỉnh phân phối theo cấp số nhân dưới dạng GLM bằng cách coi nó là trường hợp đặc biệt của phân phối Gamma với tham số hình dạng (còn gọi là tỷ lệ hoặc phân tán) cố định ở mức 1 thay vì ước tính. glm()Tuy nhiên, tôi không thể thấy cách sửa tham số này bằng chức năng của R. Một thay thế sẽ là sử dụng survreg()chức năng từ survivalgói với dist="exponential".

Nếu bạn có dữ liệu phản hồi mà bạn tin rằng tuân theo phân phối lognatural, cách thông thường để khớp mô hình hồi quy với nó sẽ là chuyển đổi log, vì sẽ có phân phối bình thường. Trường hợp đơn giản nhất là để phù hợp với một mô hình tuyến tính thông thường (tức là không khái quát). Mô hình kết quả không hoàn toàn giống với mô hình bạn sẽ nhận được nếu bạn có thể khớp GLM với liên kết nhật ký, tuy nhiên, nhưlog ( y ) E ( log ( Y ) ) log ( E ( Y ) ) .yđăng nhập(y)E(đăng nhập(Y))đăng nhập(E(Y)).


8
h(x),T(x),Một(θ)

Bạn có tham khảo cho tuyên bố rằng "Các mô hình tuyến tính tổng quát chỉ có thể phù hợp với các phân phối từ gia đình hàm mũ" không?
Henrik

5

Lắp GLM log-normal không liên quan gì đến phân phối cũng như tùy chọn liên kết của glm()chức năng. Thuật ngữ "log-normal" khá khó hiểu theo nghĩa này, nhưng có nghĩa là biến trả lời thường được phân phối (Family = gaussian) và một phép biến đổi được áp dụng cho biến này theo cách sau:

log.glm <- glm(log(y)~x, family=gaussian, data=my.dat)

Tuy nhiên, khi so sánh glm log-log thông thường này với các glm khác bằng cách sử dụng phân phối khác nhau (ví dụ: gamma), hàm AIC () phải được sửa. Có ai biết một sự thay thế cho những AIC () sai lầm này, trong trường hợp này không?


2
Chào mừng đến với trang web, @CHarma. Nếu bạn có câu hỏi, vui lòng nhấp vào "HỎI CÂU HỎI" màu xám ở góc trên bên phải, thay vì đưa nó vào câu trả lời của bạn.
gung - Phục hồi Monica

1

Hãy thử sử dụng lệnh sau:

log.glm = glm(y ~ x, family=gaussian(link="log"), data=my.dat)

Nó hoạt động ở đây và AIC dường như là chính xác.


7
Câu trả lời này là sai. Điều đó có nghĩa là phân phối có điều kiện của y là Gaussian và giá trị trung bình được ghi sẽ bằng với bộ dự báo tuyến tính. Chắc chắn không phải những gì OP mô tả.
Michael M
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.