我正在尝试学习lme4,我要承认我的统计学术培训是在20多年前在SAS (NC State)的家中进行的传统方差分析设计。我现在有大约4-5年的R经验,但主要是使用传统的一般线性模型,所有因素都被视为固定的影响。
现在我想估算一下von Bertalanffy生长模型的参数,该模型用于淡水贝类的实验。壳长是在已知个体(ID)上每年测量一次,持续4年,因此这是一个重复测量设计。最后,我想添加一个主要的处理因子和一个分裂图因子。但是,目前我无法运行简化的模型。我使用的R代码是:
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)我得到了以下错误,并且我完全没有成功地找到它的含义的引用。
Error: s > 0 is not TRUE这可能是我忽略的一些简单的事情,所以我提前为我的无知道歉。
发布于 2012-06-03 02:13:12
在函数nlmer中导致错误的行是
stopifnot(length(start$fixef) > 0, s > 0, inherits(data,
"data.frame"), nrow(data) > 1)通过查看代码,我得到的印象是s是列表start中的名称数量。在本例中,您提供了一个没有名称的vector,这可能会导致错误。
帮助页面上写着
start: a named list of starting values for the parameters in the
model. (..)因此,他们非常具体地说明了它必须有名称的事实。在示例中,您将看到它们还为参数指定了名称。
## nonlinear mixed models
(nm1 <- nlmer(circumference ~ SSlogis(age, Asym, xmid, scal) ~ Asym|Tree,
Orange, start = c(Asym = 200, xmid = 725, scal = 350)))https://stackoverflow.com/questions/11960453
复制相似问题