Tôi có nên sử dụng phần bù cho Poisson GLM của mình không?


11

Tôi đang thực hiện nghiên cứu để xem xét sự khác biệt về mật độ cá và sự phong phú của loài cá khi sử dụng hai phương pháp điều tra thị giác dưới nước khác nhau. Dữ liệu của tôi ban đầu là dữ liệu đếm nhưng sau đó, thông thường nó được thay đổi thành mật độ cá nhưng tôi vẫn quyết định sử dụng Poisson GLM, điều mà tôi hy vọng là đúng.

model1 <- glm(g_den ~ method + site + depth, poisson)

3 biến dự đoán của tôi là phương thức, trang web và độ sâu mà tôi đã đặt hàng làm yếu tố khi tôi nhập chúng.

Các biến trả lời của tôi là sự phong phú của loài cá mú, mật độ cá mú và tương tự đối với các nhóm cá khác. Tôi biết rằng mật độ không phải là số nguyên và đó là dữ liệu số, ví dụ 1.34849. Bây giờ tôi đang nhận được lỗi này:

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

Tôi đã đọc và nhiều người đề nghị sử dụng bù, đây có phải là điều nên làm nhất không?


1
Đây không thực sự là về cách sử dụng R. Đây là một câu hỏi thống kê cơ bản được ngụy trang dưới dạng câu hỏi R. Nó nên được về chủ đề ở đây.
gung - Phục hồi Monica

Câu trả lời:


11

Có một số vấn đề ở đây:

  1. Bạn cần sử dụng số lượng quan sát làm biến trả lời của bạn. Bạn không nên sử dụng mật độ ( g_den).
  2. Nếu số lượng quan sát được từ các khu vực khác nhau, bạn cần lấy nhật ký của các khu vực đó làm biến mới:

    larea = log(area)
  3. Bạn có thể kiểm soát các khu vực khác nhau để quan sát theo hai cách khác nhau:

    • Bằng cách sử dụng lareanhư một sự bù đắp. Điều này sẽ làm cho phản hồi của bạn thực sự là một tỷ lệ (mặc dù những gì được liệt kê ở phía bên trái của mô hình của bạn là một số đếm ).
    • Bằng cách sử dụng lareanhư một đồng biến. Điều này sẽ kiểm soát các khu vực khác nhau, nhưng sẽ không làm cho phản hồi của bạn tương đương với tỷ lệ. Đây là một cách tiếp cận linh hoạt hơn sẽ cho phép bạn đánh giá xem việc tăng lareacó ảnh hưởng tăng hay giảm đối với số đếm (nghĩa là độ dốc nhỏ hơn hoặc lớn hơn 1).

Có nhiều thông tin hơn về các vấn đề này trong các chuỗi CV sau:


6

Có vẻ như bạn chia số lượng cá cho khối lượng (hoặc có thể là diện tích) của nước được khảo sát. Trong trường hợp đó, phần bù thực sự phù hợp, bạn nên sử dụng nhật ký của bất cứ thứ gì bạn chia cho. Có lẽ

model1 <- glm(g_den ~ method + site + depth + offset(log(area)), poisson)

(chỉnh sửa từ phiên bản không chính xác trước đó, thiếu nhật ký)

Lý do cho thông báo lỗi là phân phối poisson thường có giá trị nguyên nhưng phản hồi không phải là số nguyên. Điều này thay đổi một khi có bù; (hồi đáp / bù) phải là một số nguyên (tất nhiên là như vậy, giả sử số đếm ban đầu là số nguyên).


2
Bạn đề cập rằng bạn nên sử dụng chuyển đổi nhật ký của khu vực (vì mô hình Poisson sử dụng liên kết nhật ký) trong câu trả lời của bạn nhưng mã của bạn không thực hiện chuyển đổi. Tôi không nghĩ rằng offsetáp dụng chuyển đổi theo mặc định nhưng đã được một thời gian kể từ khi tôi sử dụng offset.
iacobus

3
Lưu ý rằng offset() không áp dụng chuyển đổi theo mặc định; nó chỉ buộc hệ số là 1. Xem, ví dụ, ở đây .
gung - Phục hồi Monica

1
Cảm ơn các ý kiến. Vì vậy, tôi có nên thay đổi dữ liệu của mình trở lại đếm thay vì mật độ và bao gồm diện tích như một biến riêng biệt không? Tôi cũng đã được khuyên trên một diễn đàn khác để thực hiện mô hình Gaussian hoặc nghịch đảo và thay đổi giá trị 0 của tôi thành 0,00001 nếu tôi giữ dữ liệu theo mật độ, bạn có nghĩ rằng điều đó cũng phù hợp không?
Vivienne

4
@JDL Không đúng khi giữ mật độ không nguyên vì phản hồi một khi nhật ký (diện tích) được đưa vào dưới dạng bù. Hàm liên kết nhật ký và bù log (diện tích) tương đương với giả định hợp lý tiên nghiệm rằng , nghĩa là tỷ lệ trực tiếp số lượng cá dự kiến ​​và kích thước của từng khu vực. Điều này ngụ ý rằng mật độ dự kiến không phụ thuộc vào log ( khu vực). E(count)=exp(βTx)area=exp(βTx+log(area))E(count/area)=E(count)/area=exp(βTx)
Jarle Tufto

5
Bạn không thể sử dụng mật độ như là phản ứng. Bạn phải sử dụng số lượng ban đầu như phản ứng của bạn. Bao gồm phần bù sẽ tự động thực hiện phản hồi đếm tương đương với mật độ theo cách chính xác.
gung - Phục hồi Monica

5

Nếu bạn định tạo mô hình bằng Poisson, bạn phải có các giá trị nguyên cho biến trả lời của mình. Sau đó, bạn có hai lựa chọn

  • Sử dụng diện tích hoặc một số mẫu số thích hợp khác làm phần bù. Điều này thường sẽ cần phải được đăng nhập đầu tiên
  • Bao gồm diện tích hoặc vv như một biến dự đoán. Một lần nữa, điều này thường sẽ được bao gồm dưới dạng nhật ký vì bạn đang lập mô hình số lượng nhật ký.

Nếu bạn sử dụng phương pháp bù, bạn sẽ nói rằng nếu tôi nhân đôi diện tích, tôi sẽ có được gấp đôi số đếm. Nếu bạn sử dụng phương pháp dự đoán, bạn sẽ nói rằng bạn biết nếu bạn nhân số diện tích bạn nhân với số lượng nhưng không nhất thiết phải bằng cùng một yếu tố.

Đó là cuộc gọi của bạn.

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.