楼主: 2017110138
467 2

[问答] R语言混合模型拟合收敛问题 [推广有奖]

  • 5关注
  • 0粉丝

教授

52%

还不是VIP/贵宾

-

威望
0
论坛币
2061 个
通用积分
7.3192
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
16045 点
帖子
672
精华
0
在线时间
323 小时
注册时间
2018-10-12
最后登录
2024-4-28

200论坛币
我在使用R语言做混合模型时,出现了不收敛的情况。请各位帮忙看看如何改进代码可以收敛,非常感谢。数据我放到附加中。以下是我的程序和报错信息和警告信息:
dat5.xlsx (22.9 KB)

dat5<-rbind(#使4个响应变量都在y中,以index列区分
    + cbind(plot=data$region,tree=data$plotno,index=1,y=data$wb,
            G_wb=data$G,
           H69_wb=data$H69,
            G_wr=0,
            H69_wr=0),
  + cbind(plot=data$region,tree=data$plotno,index=2,y=data$wr,
            G_wb=0,
            H69_wb=0,
            G_wr=data$G,
             H69_wr=data$H69))
  dat5<-as.data.frame(dat5)
  
  fm24.nlme<-nlme(y~(b12)*G_wb^(b22)*H69_wb^(b32)+                     (b14)*G_wr^(b24)*H69_wr^(b34),
                  data=dat5,
                  fixed=b12+b22+b32+
                     b14+b24+b34~1,  
                  random=(b12+b14~1|plot),
                 weights=varIdent(form = ~1|index),
                   corr=corSymm(form = ~index|plot/tree),
                  start=c(b12=0.01206,b22=1.03969,b32=1.48287,
                           b14=0.4466,b24=1.02909,b34=0.2541),
                   control=list(maxIter=5000,msMaxIter=5000,msMaxEval=5000))

Error in nlme.formula(y ~ (b12) * G_wb^(b22) * H69_wb^(b32) + (b14) *  :
  maximum number of iterations (maxIter = 5000) reached without convergence
In addition: There were 35 warnings (use warnings() to see them)
>   fm24.nlme
Error: object 'fm24.nlme' not found
> warnings()
警告信息:
1: In nlme.formula(y ~ (b12) * G_wb^(b22) * H69_wb^(b32) +  ... :
  Iteration 1, LME step: nlminb() did not converge (code = 1). PORT message: singular convergence (7)
2: In nlme.formula(y ~ (b12) * G_wb^(b22) * H69_wb^(b32) +  ... :
  Singular precision matrix in level -1, block 1
3: In nlme.formula(y ~ (b12) * G_wb^(b22) * H69_wb^(b32) +  ... :
  Singular precision matrix in level -1, block 1
4: In nlme.formula(y ~ (b12) * G_wb^(b22) * H69_wb^(b32) +  ... :
  Singular precision matrix in level -1, block 1
5: In nlme.formula(y ~ (b12) * G_wb^(b22) * H69_wb^(b32) +  ... :
  Singular precision matrix in level -1, block 1







example.xlsx

22.9 KB

数据

最佳答案

oliyiyi 查看完整内容

先检查数据质量,简化随机效应结构,调整固定效应表达式,改变算法,然后逐步尝试: 删除不显著的随机效应。 删除模型表达式中的交互项或高阶项。 去除可能的离群点或异常数据。 增加观测数,或减少要估计的变量数。 调整起始值设置。 尝试“port”算法。 增大最大迭代次数。
关键词:模型拟合 混合模型 R语言 Convergence PRECISION R语言混合模型收敛问题
沙发
oliyiyi 发表于 2023-9-15 20:44:30 |只看作者 |坛友微信交流群
先检查数据质量,简化随机效应结构,调整固定效应表达式,改变算法,然后逐步尝试:

删除不显著的随机效应。
删除模型表达式中的交互项或高阶项。
去除可能的离群点或异常数据。
增加观测数,或减少要估计的变量数。
调整起始值设置。
尝试“port”算法。
增大最大迭代次数。

使用道具

藤椅
pietyknight 在职认证  发表于 2023-9-30 13:09:11 |只看作者 |坛友微信交流群
oliyiyi 发表于 2023-9-19 01:10
先检查数据质量,简化随机效应结构,调整固定效应表达式,改变算法,然后逐步尝试:

删除不显著的随机效应。 ...
这个回复的建议,中肯。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 23:09