解决gnls模型中的对称性问题

时间:2015-01-13 18:26:16

标签: r nlme model-fitting symmetry

我尝试使用gnls包中的nlme在R中使用逻辑增长模型。

我之前已成功使用模型:

mod1 <- gnls(Weight ~ I(A/(1+exp(b + v0*Age + v1*Sum.T))),
                        data = df,
                        start = c(A= 13.157132, b= 3, v0= 0.16, v1= -0.0059),
                        na.action=na.omit)

但是,我现在希望约束b以使其不适合模型,所以尝试拟合第二个模型:

mod2 <- gnls(Weight ~ I(A/(1+exp(log((A/1.022)-1) + v0*Age + v1*Sum.T))),
                       data = df,
                       start = c(A= 13.157132, v0= 0.16, v1= -0.0059),
                       na.action=na.omit)

此模型返回错误:

Error in gnls(Weight ~ A/(1 + exp(log((A/1.022) - 1) + v0 * Age +  : 
approximate covariance matrix for parameter estimates not of full rank

Warning messages:
1: In log((A/1.022) - 1) : NaNs produced

搜索错误表明问题是由模型中的对称性引起的,特定问题的解决方案涉及使用不同参数调整公式。不幸的是,我的统计知识不足以a)完全理解问题或b)自己调整公式。

至于警告信息(共有15条,全部相同),我不明白为什么它们会出现,因为模型的这一部分单独工作(带有示例数字)。

非常感谢任何这些查询的帮助。

1 个答案:

答案 0 :(得分:0)

对于用户来说,知道我最终通过一个简单的解决方案(在朋友的帮助下)解决了这个问题可能会提供信息。

exp(a+b) = exp(a)*exp(b)开始,可以重写等式:

Weight ~ I(A/(1+((A/1.022)-1) * exp(v0*Age + v1*Sum.T))

哪个适合没有任何问题。一般来说,以不同的形式写出等式似乎就是答案。