Mô hình hóa dữ liệu đếm trong đó biến bù là 0 cho một số quan sát


9

Tôi đang cố gắng giúp đỡ một sinh viên của một đồng nghiệp. Học sinh quan sát và đếm hành vi của chim (số lượng cuộc gọi) trong một thiết lập thí nghiệm. Số lượng cuộc gọi được quy cho một con chim quan sát cụ thể trong mỗi thí nghiệm không thể xác định được nhưng việc đếm số lượng chim đóng góp vào số lượng cuộc gọi được ghi lại là có thể. Do đó, đề xuất ban đầu của tôi là đưa số lượng chim làm thuật ngữ bù vào mô hình Poisson GLM, do đó chúng tôi sẽ điều chỉnh số lượng cuộc gọi dự kiến cho mỗi con chim .

log(0)=infy-Infoffset(log(nbirds))-Inf

Tôi thực sự nghi ngờ chúng ta cần một mô hình vượt rào (hoặc tương tự) trong đó chúng ta có một mô hình nhị thức riêng cho "các cuộc gọi được quan sát?" (hoặc không) và một mô hình đếm bị cắt ngắn cho số lượng cuộc gọi (trên mỗi con chim) trong các tình huống có cuộc gọi, trong đó chúng tôi chỉ bao gồm thuật ngữ bù trong phần đếm của mô hình.

Đã thử điều này bằng cách sử dụng gói pscl trong R, nhưng tôi vẫn gặp lỗi tương tự:

mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
               offset(log(NumberCOPO)) | 1, data = Data,
               dist = "poisson")

bởi vì cùng một mã R ( glm.fitđược sử dụng bên trong hurdle()để phù hợp với phần mô hình đếm) đang kiểm tra -Infmặc dù tôi không nghĩ rằng nó sẽ ảnh hưởng đến sự phù hợp của mô hình cho những quan sát đó. (Đó có phải là một giả định đúng không?)

Tôi có thể làm cho mô hình phù hợp bằng cách thêm một số nhỏ vào NumberCOPO(nói 0.0001) nhưng đây là một sai lầm tốt nhất.

Việc thêm hiệu chỉnh liên tục nhỏ này có ổn trong thực tế không? Nếu không, chúng ta nên xem xét các cách tiếp cận nào khác khi xử lý dữ liệu mà chúng ta có thể muốn sử dụng phần bù trong mô hình Poisson trong đó biến bù có thể lấy giá trị 0? Tất cả các ví dụ tôi đã gặp là cho các tình huống trong đó 0 không thể thực hiện được cho biến bù.


2
Trong trường hợp này, có vẻ như mô hình của bạn đang cố gắng phù hợp với một tautology: nếu có 0 con chim được quan sát, bạn cũng sẽ nghe thấy 0 tiếng chim. Tôi không tin rằng việc lắp một mô hình cho các hàng có offset 0 là phù hợp trong trường hợp này.
Sycorax nói phục hồi Monica

Cảm ơn, như tôi đã đề cập dưới đây, đó là phản ứng ruột của tôi quá. Tôi đã mở rộng một chút trong câu trả lời của mình cho Câu trả lời của Barry (Spacesman) bên dưới.
Gavin Simpson

2
Tôi đồng ý với các ý kiến ​​ngụ ý rằng mô hình tỷ lệ Poisson (nghĩa là với thời hạn bù) là không phù hợp với những trường hợp đó (và bạn nói đúng rằng có thể áp dụng một mô hình riêng biệt, như nhị thức, để áp dụng các trường hợp đó) . Tỷ lệ không thể dựa trên mẫu số 0.
ttnphns 2/2/2015

Câu trả lời:


5

Vì vậy, phản hồi bạn muốn mô hình là "Số lượng cuộc gọi cho mỗi con chim" và các dòng rắc rối là nơi bạn không quan sát thấy bất kỳ con chim nào? Chỉ cần thả những hàng đó. Họ không thêm thông tin vào thứ mà bạn đang cố gắng tạo mô hình.


Đó cũng là phản ứng ruột của tôi; có lẽ đã lật đổ điều này, nhưng tôi có thể hình dung ra tình huống mà chim quan sát nhưng không có cuộc gọi nào được thực hiện. Do đó, mô hình rào cản, nhưng bên trong nó vẫn đang sử dụng glm.fitđể ném một sự chao đảo ngay cả khi những giá trị đó không được tính vào phần đếm của mô hình. Tôi cho rằng tôi có thể làm mô hình vượt rào bằng tay nhưng tôi không muốn làm điều này, chỉ khuyên học sinh.
Gavin Simpson

3
Nếu bạn có rất nhiều cuộc gọi bằng 0 được thực hiện từ những con chim được quan sát khác không, bạn có thể muốn thực hiện mô hình poisson bằng 0 (hoặc tương tự) nhưng điều đó rất khác với những con chim được quan sát bằng 0 khi bạn quan tâm đến số lượng cuộc gọi trên mỗi con chim .
Spainedman 2/2/2015

Trong trường hợp này tôi không nghĩ chúng ta có nhiều thứ như vậy; ném ra dữ liệu 0 con chim quan sát và khớp với nhị thức âm dường như là bước đầu tiên hợp lý.
Gavin Simpson

2

Trong Poisson GLM, phần bù chỉ đơn giản là một tỷ lệ nhân trên tỷ lệ Poisson được mô hình hóa - và Poisson với tỷ lệ bằng 0 không hữu ích hoặc thậm chí có ý nghĩa ...

Đó là lý do Spacesman đúng!


0

Chỉ cần cố gắng thực hiện (Hurdle) "bằng tay (đối với mục đích" didactic / gymnastic "): tách thành phần nhị thức và phần cout và tách hồi quy logit và hồi quy cout một cách riêng biệt! / Gamma ..., GAM. Bạn không cần var "offset" ở đây, dường như đối với tôi. ;-)

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.