我的Poisson GLM应该使用偏移量吗?


11

我正在进行研究,以研究使用两种不同的水下视觉普查方法时鱼类密度和鱼类物种丰富度的差异。我的数据最初是计数数据,但通常将其更改为鱼的密度,但我仍然决定使用Poisson GLM,我希望它是正确的。

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

我输入的3个预测变量是方法,位置和深度,它们是我作为因素排序的。

我的反应变量是石斑鱼物种丰富度,石斑鱼密度,其他鱼类也一样。我知道密度不是整数,而是数字数据,例如1.34849。我现在却收到此错误:

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

我一直在阅读,很多人建议使用偏移量,这是最明智的选择吗?


1
这实际上与如何使用R无关。这是一个基本的统计问题,伪装为R问题。它应该是这里的话题。
gung-恢复莫妮卡

Answers:


11

这里有几个问题:

  1. 您需要将观察到的计数用作响应变量。您不应该使用密度(g_den)。
  2. 如果观察到的计数来自不同区域,则需要将这些区域的日志作为新变量:

    larea = log(area)
  3. 您可以通过两种不同的方式控制观察的不同区域:

    • 通过larea用作偏移量。这将使您的响应实际上是一个比率(即使模型左侧列出的是一个计数)。
    • 通过用larea作协变量。这将控制不同的区域,但不会使您的响应等同于费率。这是一种更灵活的方法,可让您评估增量larea对计数的影响是增加还是减少(即,斜率是小于还是大于1)。

以下CV线程中提供了有关这些问题的更多信息:


6

您似乎将鱼的数量除以所调查的水量(或面积)。在这种情况下,偏移量确实合适,您应该使用除以后的值的对数。也许

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

(从较早的不正确版本进行编辑,缺少日志)

错误消息的原因是泊松分布通常为整数值,但响应不是整数。一旦存在偏移,这种情况就会改变;(响应/偏移量)必须为整数(假设原始计数为整数,则为整数)。


2
您提到您应该在答案中使用area的对数转换(因为Poisson模型使用log链接),但是您的代码不进行转换。我认为offset默认情况下不应用转换,但是自从使用以来已经有一段时间了offset
iacobus '16

3
注意,默认情况下offset() 应用转换。它仅强制系数为1。请参见例如此处
gung-恢复莫妮卡

1
感谢您的评论。那么我应该将数据改回计数而不是密度,并将面积作为单独的变量包括在内吗?我还被建议在另一个论坛上做一个伽马或高斯逆模型,如果我要保持数据的密度,将我的零值更改为0.00001,您认为这也合适吗?
薇薇安

4
@JDL一旦将log(area)包含为偏移量,则将非整数密度作为响应是不正确的。对数链接函数和对数(区域)偏移量是一个先验合理的假设,即,也就是说,与预期的鱼类数量和每个区域的大小成正比。这意味着预期密度与log(区域)。E(count)=exp(βTx)area=exp(βTx+log(area))E(count/area)=E(count)/area=exp(βTx)
Jarle Tufto '16

5
您不能将密度用作响应。您必须使用原始计数作为答复。包括偏移量将以正确的方式自动使计数响应等于密度。
gung-恢复莫妮卡

5

如果要使用泊松建模,则必须为响应变量使用整数值。然后,您有两个选择

  • 使用面积或其他合适的分母作为偏移量。通常需要先登录
  • 包括面积等作为预测变量。同样,由于要对日志计数建模,因此通常将其作为日志包含在内。

如果您使用偏移量方法,则是说如果我将面积加倍,则我希望计数会加倍。如果您使用预测器方法,则会说您知道,如果您乘以面积即可乘以计数,但不一定要乘以相同的因子。

是你的电话。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.