建模计数数据,其中偏移变量为0的某些观察结果


9

我正在努力帮助一位同事的学生。学生在实验设置中观察并计算了鸟类行为(叫声次数)。虽然无法确定每个实验中可观察到的特定鸟类的召唤次数,但可以计算促成记录的召唤次数的鸟类数量。因此,我最初的建议是在Poisson GLM模型中将鸟的数量作为偏移项包括在内,因此,我们将拟合每只鸟的预期通话数量。

问题在于,在许多观察场合中,没有观察到鸟(因此也没有鸣叫)。该软件(在这种情况下为R)抱怨是因为日志0=-信息(R抱怨y包含-Inf的数据,但是纯粹的结果offset(log(nbirds))-Inf)。

我实际上怀疑我们需要一个障碍模型(或类似模型),在该模型中,我们有一个单独的二项式模型用于“观察到的呼叫”?(或没有)和截断计数模型(在有电话的情况下,每只鸟的电话数),其中仅将偏移项包括在模型的计数部分中。

在R中使用pscl包尝试了此操作,但是我仍然遇到相同的错误:

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

因为即使我认为这不会影响适合这些观察值的模型,也要检查相同的R代码(glm.fit供内部使用hurdle()以适合计数模型的一部分)-Inf。(这是一个正确的假设吗?)

我可以通过将一个较小的数字添加到NumberCOPO(例如0.0001)中来使模型适合,但这充其量只是一种捏造。

在实践中添加这种小的连续性校正是否可以?如果不是,在泊松模型中偏移变量可以取值为0的Poisson模型中处理数据时,我们还应该考虑其他哪些方法?我遇到的所有示例都是针对offset变量不可能为0的情况。


2
在这种情况下,您的模型似乎正试图适应重言式:如果观察到0只鸟,您还将听到0只鸟叫。我不认为在这种情况下将模型拟合到偏移量为0的行是合适的。
Sycorax说,请

谢谢,正如我在下面提到的,这也是我的直觉。我在下面对Barry(Spacedman)的答复中的回答有所扩展。
加文·辛普森

2
我同意这样的意见,即泊松费率模型(即带有偏移项)不适用于这些情况(您是正确的说,也许应该使用单独的模型(例如二项式模型)来合并这些情况) 。汇率不能基于零分母。
ttnphns

Answers:


5

因此,您要模拟的响应是“每只鸟的呼唤次数”,而麻烦的行是您没有观察到任何鸟的地方?只需删除这些行。它们不会为您要建模的事物添加任何信息。


那也是我的直觉。可能会认为这太过分了,但是我可以设想这样的情况:观察到鸟类但没有发出声音。因此,跨栏模型,但在内部仍在使用glm.fit,即使这些值未计入模型的计数部分,该模型仍会摆动。我想我可以手动创建障碍模型,但不想这样做,只是建议学生。
加文·辛普森

3
如果您观察到的非零鸟有很多零呼叫,那么您可能想做一个零膨胀的泊松模型(或类似的模型),但是当您对每只鸟的叫数感兴趣时,这与零观察的鸟有很大不同。
Spacedman

在这种情况下,我认为我们没有很多。剔除0个观测鸟的数据并拟合负二项式似乎是一个合理的第一步。
加文·辛普森

2

在Poisson GLM中,偏移量只是对要建模的Poisson速率的乘积缩放-速率为零的Poisson没有帮助,甚至没有意义。

这就是为什么Spacedman是正确的!


0

只需尝试手动完成(跨栏)(对于“学问/体操”的目的):拆分为二项式部分和下半部分,并分别进行logit和cout回归拟合!或使用标准的跨栏模型(+ Vuong检验)Poisson / negBin / Gamma ...,GAM。在我看来,您不需要这里的“偏移”变量。

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.