首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nlme包中出现错误

nlme包中出现错误
EN

Stack Overflow用户
提问于 2014-06-05 18:19:11
回答 1查看 2.9K关注 0票数 0

我试着使用r中的nlme包来做一个多层线性模型。

我将产量作为响应变量,降雨量作为预测变量,对6个不同的地点(州)进行了60年的预测。我正在试着看看降雨对所有地区的产量的影响程度是相同的还是不同的。原则上,我试图看看产量与降雨量的斜率是否在不同地点之间存在显着差异。因此,降雨是我的随机效果。我的模型是这样构建的:

代码语言:javascript
复制
  # baseline model which only includes intercept
  mdl1<-gls(yield ~ 1,data = data, method="ML")

  #intercept as random effect
  mdl2<-lme(yield ~ 1,data=data,random = ~1|state,method="ML")  

  # slope as random effect
  mdl3<-lme(yield ~ rain, data = data, random = ~rain|state,method="ML")

  ##compare the three model
  anova(mdl1,mdl2,mdl3)
  #this shows me when I add slope as random effect, my model shows better fit compared to baseline model (mdl1)

这一切都运行得很好。当我使用另一个预测变量(计数数据)进行相同的分析时,问题就开始了。

代码语言:javascript
复制
 # baseline model which only includes intercept: Works fine
 mdl4<-gls(yield ~ 1,data = data, method="ML")

 #intercept as random effect - works fine
mdl5<-lme(yield ~ 1,data=data,random = ~1|state,method="ML")  

 # include different predictor (break) this time instead of rain
 mdl6<-lme(yield ~ break, data = data, random = ~break|state,method="ML")

当我运行mdl 6时,会出现以下错误

代码语言:javascript
复制
 Error in lme.formula(res_yld ~ brk, data = data, random = ~brk | state,  : 
 nlminb problem, convergence error code = 1
 message = iteration limit reached without convergence (10)

我完全不知道为什么会发生这种情况。对于我的第一个预测器,一切正常,但在另一个预测器上则不起作用。我在这里做错了什么?我试着在网上读到这个,但帖子对我来说不是很清楚。我真的很感激任何人能在这件事上帮我。谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-06-05 18:43:02

从错误消息中,您可以看到算法在收敛之前已达到最大迭代次数。从文档中看,您似乎可以使用以下内容来增加它:

代码语言:javascript
复制
lmeControl(msMaxIter = 50)

但要注意,缓慢的收敛也可能指向不适定的问题。因此,请检查您是否确实可以从您的数据中估计您正在尝试估计的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24057528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档