Làm thế nào để đối phó với cảnh báo không phải là số nguyên của Tử từ GLM nhị thức âm?


11

Tôi đang cố gắng mô hình hóa cường độ trung bình của ký sinh trùng ảnh hưởng đến vật chủ trong R bằng mô hình nhị thức âm tính. Tôi tiếp tục nhận được 50 cảnh báo trở lên có nội dung:

In dpois(y, mu, log = TRUE) : non-integer x = 251.529000

Làm thế nào tôi có thể đối phó với điều này? Mã của tôi trông như thế này:

mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season, data=MI.df)

1
Vui lòng thêm một ví dụ tái tạo để mọi người làm việc với.
gung - Tái lập Monica

5
GLiM nhị thức âm là một loại mô hình đếm. Các phản ứng được coi là tính. Một số , theo định nghĩa, không thể là một giá trị phân đoạn. Bạn có những giá trị như vậy?
gung - Tái lập Monica

1
Bạn có thể làm rõ những gì bạn có nghĩa là "cường độ"? Bạn đang chia một số lượng ký sinh trùng cho, ví dụ, một lượng diện tích bề mặt cho vật chủ?
gung - Tái lập Monica

1
Tôi đã đếm dữ liệu, tuy nhiên tôi đã phải tính toán cường độ để tính các nỗ lực lấy mẫu khác nhau. Tôi hiểu rằng tôi cần dữ liệu đếm ở đó, tuy nhiên tôi chỉ tự hỏi liệu có cách nào khác để làm việc với các số không nguyên sử dụng cùng một mô hình không. Đối với cường độ tôi chia số lượng ký sinh trùng với số lượng vật chủ bị nhiễm bệnh.
Natasha

2
@Natasha, đừng làm điều đó. Theo câu trả lời của Gung, rất có khả năng là cách đúng đắn để xử lý vấn đề này. Nếu bạn muốn chắc chắn, hãy chỉnh sửa câu hỏi của bạn để giải thích thêm một chút về cường độ lấy mẫu khác biệt đến từ đâu. Là những số lượng khác nhau của máy chủ? Độ dài khác nhau của thời gian lấy mẫu, hoặc số lượng người thu gom?
Ben Bolker

Câu trả lời:


9

Nhị thức âm là một phân phối cho dữ liệu đếm, vì vậy bạn thực sự muốn biến phản hồi của mình được tính (nghĩa là các số nguyên không âm). Điều đó nói rằng, rất phù hợp để tính đến "những nỗ lực lấy mẫu khác nhau" (Tôi không biết chính xác những gì bạn đang đề cập đến, nhưng tôi hiểu ý chính của nó). Tuy nhiên, bạn không nên cố gắng làm điều đó bằng cách chia số đếm của bạn cho một số khác. Thay vào đó, bạn cần sử dụng số khác đó làm phần . Có một cuộc thảo luận thú vị về CV về những gì một phần bù ở đây: Khi nào nên sử dụng phần bù trong hồi quy Poisson? Tôi đoán là mô hình của bạn nên giống như:

mst.nb = glm.nb(Larvae+Nymphs+Adults~B.type+Month+Season + offset(log(num.hosts)), 
                data=MI.df)

Cảm ơn bạn. Tôi sẽ thử điều này và quay lại để nói với bạn những gì tôi đã làm.
Natasha

OT: Tôi đang thiếu một cái gì đó, có nghĩa là có nhiều kết quả trong hồi quy ??
Bakaburg

@Bakaburg, tôi không thể nói bạn đang đề cập đến cái gì.
gung - Phục hồi Monica

Phần "Ấu trùng + Node + Người lớn ~" trong mã.
Bakaburg

1
@Bakaburg, đây là về cách R hoạt động. Ngoài ra là nguyên tố. Thêm 3 vectơ cung cấp cho bạn một vectơ duy nhất trong đó mỗi phần tử là tổng của 3 phần tử tương ứng. Để có nhiều biến trả lời trên LHS của công thức R, bạn cần sử dụng cbind().
gung - Tái lập Monica

4

Đó là một cảnh báo, không phải là một lỗi nghiêm trọng. glm.nb () đang mong đợi được tính là biến kết quả của bạn, là số nguyên. Dữ liệu của bạn không phải là số nguyên: 251.529.

R đang nói "Hmmm ... bạn có thể muốn kiểm tra điều này và chắc chắn rằng nó ổn, bởi vì nó có thể trông không ổn." Nếu trí nhớ của tôi là chính xác, SPSS không đưa ra cảnh báo như vậy.

Nếu bạn chắc chắn rằng bạn đang sử dụng đúng mô hình, mặc dù bạn không có số nguyên, hãy bỏ qua nó và tiếp tục.


1
Tôi biết đó là một cảnh báo, tôi chỉ tự hỏi liệu có cách nào xung quanh nó không. Tôi có số nguyên mặc dù vậy tôi đã cố gắng xem liệu có cách nào để làm việc với số nguyên không nhưng sử dụng cùng một mô hình với một mã khác.
Natasha

1
Cách ngăn chặn các cảnh báo được giải thích tại đây: stackoverflow.com/questions/16194212/ cấp
kjetil b halvorsen

-2

Tôi là một nhà ký sinh trùng sinh thái .. cách bạn nên xử lý việc này là bằng cách nhét các vật chủ đã bị ký sinh và những vật thể không có, và sau đó sử dụng phân phối nhị thức .. xem đoạn mã dưới đây.

Tôi cũng chưa bao giờ sử dụng glm w / nhiều hơn một biến y .. vì vậy, giả sử bạn muốn xem xét ấu trùng ký sinh: bạn sẽ có # ấu trùng khỏe mạnh và # bị ký sinh.

Hãy nói: Lh và Lp

Ví dụ

parasitizedL = cbind (Lp, Lh) hist (đã ký sinh) gia đình = nhị thức, dữ liệu = MI.df)

sau đó thực hiện giảm mô hình từng bước để xem yếu tố nào của bạn ảnh hưởng đáng kể đến ký sinh trùng ... xem liên kết dưới đây

http://bbolker.github.io/mixedmodels-misc/glmmFAQ.html

tuy nhiên có vẻ như bạn cần phải có các hiệu ứng ngẫu nhiên để tính toán lấy mẫu lặp đi lặp lại .. vì vậy rất có thể hiệu ứng ngẫu nhiên của bạn sẽ là (1 | Mùa / Tháng) ... nhưng khó có thể biết được dữ liệu của bạn biết

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.