特定数据集导致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
相关产品推荐
相关产品推荐

