负二项式GLM如何处理“非整数”警告?


11

我正在尝试使用负二项式模型来模拟影响R中宿主的寄生虫的平均强度。我不断收到50则警告,内容是:

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

我该如何处理?我的代码如下所示:

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

1
请添加一个可复制的示例,以供他人使用。
gung-恢复莫妮卡

5
负二项式GLiM是一种计数模型。该响应应该是计数。根据定义,计数不能是小数值。你有这样的价值观吗?
gung-恢复莫妮卡

1
您能否阐明“强度”的含义?您是否将寄生虫的数量除以宿主的表面积而定?
gung-恢复莫妮卡

1
我有计数数据,但是我必须计算强度以说明不同的采样工作。我确实知道我需要在那里计算数据,但是我只是想知道是否存在另一种使用同一模型处理非整数数字的方法。对于强度,我将寄生虫计数除以感染宿主的数量。
Natasha

2
@Natasha,不要这样做。根据Gung的回答,很可能以正确的方式来解决这个问题的正确方法。如果您想确定的话,请编辑问题以进一步说明差分采样强度的来源。这些主机数量是否不同?不同的采样时间长度或采集器数量?
Ben Bolker

Answers:


9

负二项式是计数数据的分布,因此您确实希望您的响应变量为计数(即非负整数)。就是说,考虑“不同的抽样工作”是适当的(我不知道您指的是什么,但是我明白了要点)。但是,您不应尝试通过将计数除以另一个数字来做到这一点。相反,您需要使用该其他数字作为offset。关于CV的偏移量,这里有一个很好的讨论:什么时候在Poisson回归中使用偏移量? 我的猜测是您的模型应该是这样的:

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

谢谢。我会尽力而为,然后告诉你我做了什么。
Natasha

OT:我缺少了什么,回归中有很多结果意味着什么?
巴卡堡2015年

@Bakaburg,我不知道您指的是什么。
gung-恢复莫妮卡

代码中的“ Larvae + Nymphs + Adults〜”部分。
巴卡堡2015年

1
@Bakaburg,这与R的工作方式有关。加法是元素化的。将3个向量相加即可得到一个向量,其中每个元素都是3个对应元素的总和。要在R公式的LHS上具有多个响应变量,您需要使用cbind()
gung-恢复莫妮卡

4

这是警告,不是致命错误。glm.nb()期望将计数作为结果变量(整数)。您的数据不是整数:251.529。

R说道:“嗯...您可能想检查一下,确保没问题,因为看起来可能不合适。” 如果我的记忆正确,SPSS不会发出这样的警告。

如果您确定使用的模型正确,即使您没有整数,也请忽略它并继续进行。


1
我知道这是一个警告,我只是想知道是否有解决办法。虽然我确实有整数,所以我试图查看是否有一种使用整数但使用相同模型和不同代码的方法。
娜塔莎2015年


-2

我是生态寄生虫学家..您应该通过将被寄生的宿主与未被寄生的宿主绑定在一起,然后使用二项分布来处理此问题。.请参见以下代码。

我也从来没有使用过一个不超过一个y变量的glm。所以可以说,您要看被寄生的幼虫:您将拥有#个健康的幼虫和#个被寄生的幼虫。

可以说:Lh和Lp

所以举个例子

parasitizedL = cbind(Lp,Lh)hist(parasitized)#我猜你可以使用正态二项分布w / glm ..并且可能不需要负二项式模型PLarvae1 = glm(parasitizedL〜B.type + Month + Season, family = binomial,data = MI.df)

然后逐步进行模型简化,以查看哪些因素对寄生虫有显着影响...请参阅以下链接

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

但是,您似乎需要具有随机影响才能考虑重复采样..因此,您的随机影响可能会是(1 |季节/月)...但很难告诉我们是否不知道您的数据

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.