Using non-integers vs integers: warnings with non-integers but model won't 运行 with 整数

Using non-integers vs integers: warnings with non-integers but model won't run with integers

我在使用负二项式模型时遇到了一些问题 运行。基本上,我有一个包含动物数量的数据集。然而,努力是不同的,因此我可以计算出每天的动物数量。我正在使用相当大的数据集(> 100000 个观察值)来执行此操作。我很惊讶我找不到其他主题来解决我的问题,如果你知道的话:会很有帮助!

在尝试将模型拟合到我的数据时,我 运行 遇到了一些问题。要么我 运行 负二项式模型与利率

> m1<-glm.nb(Rates ~ Par1+Par2+...+Par7+Par8,data=data) 

然后我收到以下警告消息:

>Warning messages:
1: In dpois(y, mu, log = TRUE) : non-integer x = 25.913718
2: In dpois(y, mu, log = TRUE) : non-integer x = 5.457385
3: In dpois(y, mu, log = TRUE) : non-integer x = 2.195133
4: In dpois(y, mu, log = TRUE) : non-integer x = 2.721088
5: In dpois(y, mu, log = TRUE) : non-integer x = 6.971678
6: In dpois(y, mu, log = TRUE) : non-integer x = 21.863799
7: In dpois(y, mu, log = TRUE) : non-integer x = 5.300733
8: In dpois(y, mu, log = TRUE) : non-integer x = 7.157865
9: In dpois(y, mu, log = TRUE) : non-integer x = 14.117588
10: In dpois(y, mu, log = TRUE) : non-integer x = 6.505993, etc.

或者我 运行 具有偏移量的模型

> m2<-glm.nb(Count ~ Par1+Par2+...+Par7+Par8+offset(Effort),data=data) 

然而,这给出了以下错误:

> Error: no valid set of coefficients has been found: please supply starting values
In addition: Warning messages:
1: glm.fit: algorithm did not converge 
2: glm.fit: fitted rates numerically 0 occurred 

我已经尝试提供第一个模型的系数作为第二个模型的起始系数,但这行不通。使用包 pscl 也不起作用,或者增加迭代量。这是我的数据(一个物种)的一个子集,几乎没有零。

有什么建议吗?我觉得实际上第二种建模方式是正确的方式,但我不知道如何让这个模型达到 运行。有任何想法吗?将不胜感激。

假设 Rates = Count/Effort,您几乎肯定想要以下之一。要么拟合速率,将努力作为权重变量:

glm.nb(Rates ~ *, weights=Effort, data=data)

,拟合计数,并使用 log(effort) 作为偏移量:

glm.nb(Count ~ * + offset(log(Effort)), data=data)

另请参阅 my answer on CrossValidated 关于 poisson/negative 二项式模型中的偏移量。