Làm cách nào để áp dụng GLMM nhị phân (glmer) cho tỷ lệ phần trăm thay vì có - không tính?


21

Tôi có một thử nghiệm đo lặp lại trong đó biến phụ thuộc là tỷ lệ phần trăm và tôi có nhiều yếu tố là biến độc lập. Tôi muốn sử dụng glmertừ gói R lme4để coi nó như một vấn đề hồi quy logistic (bằng cách chỉ định family=binomial) vì nó dường như phù hợp với thiết lập này trực tiếp.

Dữ liệu của tôi trông như thế này:

 > head(data.xvsy)
   foldnum      featureset noisered pooldur dpoolmode       auc
 1       0         mfcc-ms      nr0       1      mean 0.6760438
 2       1         mfcc-ms      nr0       1      mean 0.6739482
 3       0    melspec-maxp    nr075       1       max 0.8141421
 4       1    melspec-maxp    nr075       1       max 0.7822994
 5       0 chrmpeak-tpor1d    nr075       1       max 0.6547476
 6       1 chrmpeak-tpor1d    nr075       1       max 0.6699825

và đây là lệnh R mà tôi hy vọng sẽ phù hợp:

 glmer(auc~1+featureset*noisered*pooldur*dpoolmode+(1|foldnum), data.xvsy, family=binomial)

Vấn đề với điều này là lệnh phàn nàn về biến phụ thuộc của tôi không phải là số nguyên:

In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

và phân tích dữ liệu (thí điểm) này cho kết quả kỳ lạ.

Tôi hiểu lý do tại sao binomialgia đình mong đợi số nguyên (có - không tính), nhưng có vẻ như sẽ ổn khi lấy lại dữ liệu phần trăm trực tiếp. làm như thế nào?


1
Điều đó có vẻ không ổn đối với tôi, vì 5 trên 10 không có cùng thông tin với 500 trên 1000. Thể hiện phản hồi là một trong số không. "Thành công" & một trong số không. "Thất bại".
Scortchi - Tái lập Monica

@Scortchi cảm ơn, tôi nghĩ bạn có thể đúng. Tôi đã suy nghĩ một phần về tính chất liên tục của tỷ lệ phần trăm của tôi (xuất phát từ các quyết định xác suất) tương tự như câu hỏi này: stats.stackexchange.com/questions/77376/, nhưng tôi tin rằng tôi có thể thể hiện dữ liệu của mình thông qua chuyển đổi có ý nghĩa sang số nguyên.
Dan Stowell

Câu trả lời:


22

Để sử dụng vectơ tỷ lệ làm biến trả lời glmer(., family = binomial), bạn cần đặt số lượng thử nghiệm dẫn đến từng tỷ lệ bằng cách sử dụng weightsđối số. Ví dụ: sử dụng cbppdữ liệu từ lme4gói:

glmer(incidence / size ~ period + (1 | herd), weights = size,
   family = binomial, data = cbpp)

Nếu bạn không biết tổng số thử nghiệm, thì mô hình nhị thức là không phù hợp, như được chỉ ra trong thông báo lỗi.


Tôi không thể nói liệu sử dụng trọng lượng cho công việc này hay không. Nhưng bạn chắc chắn có thể nhập dữ liệu dưới dạng ma trận hai cột (thành công / thất bại) ở phía bên trái của công thức.
ndoogan

Nhưng @ndoogan, câu hỏi ban đầu là về tỷ lệ, không phải thành công / thất bại. Và đoạn mã trên không hoạt động, khi tôi lấy nó từ cbpptrang trợ giúp.
Steve Walker

Đủ công bằng. Mặc dù, tôi dự định có nghĩa là thành công / thất bại ( không có ý định phân chia) là nơi tỷ lệ cho một mô hình nhị thức đến từ.
ndoogan

+1 nhưng độc giả có thể muốn xem câu trả lời của @ BenBolker tại đây stats.stackexchange.com/questions/189115 về các cách có thể để đối phó với tình trạng quá mức.
amip nói rằng Phục hồi lại

9

(0,1)


2
Một mô hình nhị thức là một mô hình tỷ lệ. Mặc dù vậy, nó chỉ thích hợp khi bạn biết số lượng thử nghiệm. Nếu tất cả những gì bạn có là một phần trăm không có dấu hiệu về số lượng thử nghiệm, thì tôi tin rằng bạn đã đúng rằng hồi quy beta là phù hợp.
ndoogan

(0,1)

Cảm ơn, đây là một điểm tốt. Tôi chấp nhận câu trả lời khác bởi vì nó trả lời câu hỏi như đã viết, nhưng quan điểm về hồi quy beta được thực hiện tốt vì vậy tôi đã nâng cấp nó.
Dan Stowell
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.