我正在尝试使用负二项式模型对影响 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)
我正在尝试使用负二项式模型对影响 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)
负二项式是计数数据的分布,因此您确实希望响应变量是计数(即非负整数)。也就是说,考虑“不同的抽样工作”是合适的(我不确切知道你指的是什么,但我明白了它的要点)。但是,您不应该尝试通过将计数除以另一个数字来做到这一点。相反,您需要使用其他数字作为offset。关于偏移量的 CV 有一个很好的讨论:何时在泊松回归中使用偏移量? 我的猜测是你的模型应该是这样的:
mst.nb = glm.nb(Larvae+Nymphs+Adults ~ B.type+Month+Season + offset(log(num.hosts)),
data=MI.df)
这是一个警告,而不是致命错误。glm.nb() 期望计数作为您的结果变量,它们是整数。您的数据不是整数:251.529。
R 说“嗯……您可能想检查一下并确保它没问题,因为它可能看起来不正确。” 如果我的记忆是正确的,SPSS 不会给出这样的警告。
如果你确定你使用的是正确的模型,即使你没有整数,忽略它并继续。
我是一名生态寄生虫学家。你应该处理这个问题的方法是cbind
对被寄生的主机和没有被寄生的主机进行-ing,然后使用二项分布。
假设您想查看寄生的幼虫:您将有 n。的幼虫是健康的,和 n。被寄生的。
例如,给定 Lh 和 Lp:
parasitizedL=cbind(Lp, Lh)
hist(parasitized)
我猜你可以只使用常规的二项式分布glm()
,并且可能不需要 neg.binomial 模型。
PLarvae1=glm(parasitizedL~B.type+Month+Season, family=binomial,data=MI.df)
然后进行逐步模型简化,看看哪些因素会显着影响寄生:请参阅此链接。
然而,看起来你需要有随机效应来解释重复采样,所以你的随机效应很可能是(1|Season/Month)
,但如果不知道你的数据就很难说。