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

机器算法验证 r 广义线性模型 负二项分布
2022-03-13 05:27:44

我正在尝试使用负二项式模型对影响 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)
3个回答

负二项式是计数数据的分布,因此您确实希望响应变量是计数(即非负整数)。也就是说,考虑“不同的抽样工作”是合适的(我不确切知道你指的是什么,但我明白了它的要点)。但是,您不应该尝试通过将计数除以另一个数字来做到这一点。相反,您需要使用其他数字作为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),但如果不知道你的数据就很难说。