首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gnls模型中的对称性分解

gnls模型中的对称性分解
EN

Stack Overflow用户
提问于 2015-01-13 18:26:16
回答 1查看 834关注 0票数 0

我试图在R中拟合一个逻辑增长模型,在gnls包中使用nlme

我以前成功地适应了一个模型:

代码语言:javascript
复制
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,使其不被模型所匹配,因此尝试了拟合第二种模型:

代码语言:javascript
复制
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)

此模型返回错误:

代码语言:javascript
复制
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

对误差的搜索表明,该问题是由模型中的对称性引起的,对具体问题的解决需要采用不同参数的公式。不幸的是,我的统计知识还不足以:(1)完全理解问题;( b)自己调整公式。

至于警告消息(总共有15条,尽管如此),我不明白它们为什么会出现,因为模型的这一部分只起作用(用示例号)。

任何这些查询的任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 14:30:17

这可能会给用户提供信息,让他们知道我最终用的是一个简单的解决方案(在朋友的帮助下)。

由于exp(a+b) = exp(a)*exp(b),这个方程可以重写:

代码语言:javascript
复制
Weight ~ I(A/(1+((A/1.022)-1) * exp(v0*Age + v1*Sum.T))

一点问题都没有。一般来说,用不同的形式写出方程似乎就是答案。

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

https://stackoverflow.com/questions/27928943

复制
相关文章

相似问题

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