You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

特定数据集导致glm.nb函数执行负二项回归时莫名报错

负二项回归glm.nb()迭代报错及解决

我使用MASS包中的glm.nb()函数执行负二项回归,目的是估计事件数量随时间变化的趋势。该函数在我之前处理的上百个相似数据集上均能正常运行,但使用以下特定数据集时出现异常:

data<-c(2, 4, 2, 4, 2, 6, 1, 3, 7, 3, 2, 3, 1, 5, 3, 5, 1, 4, 4, 0, 4, 1, 5, 0, 3, 2, 5, 8, 4, 0, 1, 0, 3, 2, 3, 2, 3, 4, 1, 2, 2, 1, 3, 1, 3, 2, 3, 1, 2, 3, 1, 3, 4, 2, 4, 2, 2, 3, 2, 4, 0) # 实际数据
time<-c(1:length(data)) # 生成对应每个时间步的向量,从1到数据长度
glm.nb(data~time)

运行代码后两次弹出错误提示:

In theta.ml(Y, mu, sum(w), w, limit = control$maxit, trace = control$trace > : iteration limit reached

尝试提高迭代上限无法解决问题,当迭代上限设置大于68时,还会新增错误:

In sqrt(1/i) : NaNs produced

最初无法确定问题出在glm.nb()函数还是数据集本身,最终通过关闭并重启R-Studio解决了该问题。

内容的提问来源于stack exchange,提问作者Sargnagel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:55:06