首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于nlmer模型,我可能做错了什么才能得到"Error: s>0 is not TRUE“?

对于nlmer模型,我可能做错了什么才能得到"Error: s>0 is not TRUE“?
EN

Stack Overflow用户
提问于 2012-04-18 21:40:50
回答 1查看 161关注 0票数 1

我正在尝试学习lme4,我要承认我的统计学术培训是在20多年前在SAS (NC State)的家中进行的传统方差分析设计。我现在有大约4-5年的R经验,但主要是使用传统的一般线性模型,所有因素都被视为固定的影响。

现在我想估算一下von Bertalanffy生长模型的参数,该模型用于淡水贝类的实验。壳长是在已知个体(ID)上每年测量一次,持续4年,因此这是一个重复测量设计。最后,我想添加一个主要的处理因子和一个分裂图因子。但是,目前我无法运行简化的模型。我使用的R代码是:

代码语言:javascript
运行
复制
VBGF <- function(Linf, k, age, age.0) {
  Linf * (1-exp(-k*((age-age.0))))
}
VBGF <- deriv(L ~ VBGF, namevec=c("Lin", "k", "age.0"), function.arg=VBGF)
mod1 <- nlmer(L ~ VBGF(Linf,k,AGE,age.0) ~ (Linf+k+age.0|ID), 
              mussels,
              start=c(50,0.1,-11),
              verbose=TRUE)

我得到了以下错误,并且我完全没有成功地找到它的含义的引用。

代码语言:javascript
运行
复制
Error: s > 0 is not TRUE

这可能是我忽略的一些简单的事情,所以我提前为我的无知道歉。

EN

回答 1

Stack Overflow用户

发布于 2012-06-03 02:13:12

在函数nlmer中导致错误的行是

代码语言:javascript
运行
复制
stopifnot(length(start$fixef) > 0, s > 0, inherits(data, 
    "data.frame"), nrow(data) > 1)

通过查看代码,我得到的印象是s是列表start中的名称数量。在本例中,您提供了一个没有名称的vector,这可能会导致错误。

帮助页面上写着

代码语言:javascript
运行
复制
start: a named list of starting values for the parameters in the
      model. (..)

因此,他们非常具体地说明了它必须有名称的事实。在示例中,您将看到它们还为参数指定了名称。

代码语言:javascript
运行
复制
## nonlinear mixed models
(nm1 <- nlmer(circumference ~ SSlogis(age, Asym, xmid, scal) ~ Asym|Tree,
             Orange, start = c(Asym = 200, xmid = 725, scal = 350)))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11960453

复制
相关文章

相似问题

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