楼主: 2017110138
1390 2

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

  • 5关注
  • 0粉丝

教授

69%

还不是VIP/贵宾

-

威望
0
论坛币
1860 个
通用积分
7.1692
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
19195 点
帖子
725
精华
0
在线时间
345 小时
注册时间
2018-10-12
最后登录
2025-4-2

楼主
2017110138 发表于 2023-9-15 20:44:29 |AI写论文
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
下载链接: https://bbs.pinggu.org/a-4023872.html

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
拉您进交流群
GMT+8, 2026-2-8 18:54