r - 使用nlmer时错误错误: step factor reduced below 0. 001而不减少pwrss

标签 r mixed-models

我认为这可能更多是一个统计问题,而不是 R 问题,但在尝试将 nlmer 函数拟合到数据时,出现错误错误:步长因子降低到 0.001 以下,而没有降低 pwrss。我的数据是:https://www.dropbox.com/s/cri5n7lewhc8j02/chweight.RData?dl=0

我正在尝试拟合该模型,以便我可以根据时间预测雏鸡的体重(对于节食 1 的雏鸡)。我执行了以下操作:

   cw1<-subset(ChickWeight, ChickWeight$Diet==1)
m1 <- nlmer(weight~ SSlogis(Time, Asym, xmid, scal) ~ Asym|Chick, cw1, start=c(Asym = 190, xmid = 730, scal = 350))

还有其他方法可以解决这个错误吗?我认为该错误与 Asym 值有关,但我不太了解它在做什么,因此任何简短的指导都会有所帮助。

最佳答案

有人要求我改进我的答案,因此我尝试这样做。

此错误通常会发生,因为您的起始值与“真实”值不够接近,因此优化器无法通过远离它们来找到任何适合的局部改进。您需要尝试提供更好的起始猜测——有时可以通过在几个点上代数求解方程来完成,如许多地方所述,例如 this article 。其他时候,如果您了解参数在非线性函数中的“作用”(即参数 a 表示渐近线,b 是缩放器,c 是平均变化率等)。这对我个人来说很难,因为我没有数学背景,但大多数时候我常常能够做出合理的猜测。

为了更直接地回答这个问题,这里有一些可重现的代码,应该说明所讨论的错误来自于错误的开始猜测。

#Create independentand dependent variables, X and Y, and a grouping variable Z.
xs = rep(1:10, times = 10)
ys = 3 + 2*exp(-0.5*xs)
zs = rep(1:10, each=10)
#Put random noise in X.
for (i in 1:100) {
xs[i] = rnorm(1, xs[i], 2)
}
df1 = data.frame(xs, ys, zs) #Assemble data into data frame.

require(lme4) #Turn on our package.
#Define our custom function--in this case, a three-parameter exponential model.
funct1 = funct1 = deriv(~beta0 + beta1*exp(beta2*xs), namevec=c('beta0',
    'beta1', 'beta2'), function.arg=c('xs','beta0', 'beta1','beta2'))
#This will return the exact same error because our starting guesses are way off.
test1 = nlmer(ys ~ funct1(xs, beta0, beta1, beta2) ~ (beta0|zs), data = df1, 
    start=c(beta0=-50,beta1=200,beta2=3))
#Our starting guesses are much better now, and so nlmer is able to converge this time.
test1 = nlmer(ys ~ funct1(xs, beta0, beta1, beta2) ~ (beta0|zs), data = df1, 
    start=c(beta0=3.2,beta1=1.8,beta2=-0.3))

关于r - 使用nlmer时错误错误: step factor reduced below 0. 001而不减少pwrss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412299/

相关文章:

r - 如何编写具有两个固定效应的混合效应模型的 lmer 公式

r - lmer 输出的解释

r - LME 向后选择,反向求解出现奇点

r - dplyr 总结嵌套的 group_by

r - 通过原点绘制回归线

r - lme4::lmer报告 “fixed-effect model matrix is rank deficient”,我是否需要修复以及如何解决?

r - 为什么条件均值(条件模式)或随机效应的图看起来像这样?

r - R 中的命名元素操作

r - 在 R 中复制行并创建新变量

r - 如何快速对具有相同 stub 名称的多个列进行排序?