令人惊讶的是,我无法使用 Google 找到以下问题的答案:
我有一些来自几个人的生物学数据,这些数据及时显示了大致的 sigmoid 生长行为。因此,我希望使用标准的逻辑增长对其进行建模
P(t) = k*p0*exp(r*t) / (k+p0*(exp(r*t)-1))
其中 p0 是 t=0 时的起始值,k 是 t->infinity 时的渐近极限,r 是增长速度。据我所见,我可以使用 nls 轻松建模(我缺乏理解:为什么我不能通过缩放时间和数据使用标准 logit 回归来建模类似的东西?编辑:谢谢尼克,显然人们这样做是为了比例,但很少http://www.stata-journal.com/article.html?article=st0147。关于此切线的下一个问题是该模型是否可以处理异常值 >1)。
现在我希望允许对三个参数 k、p0 和 r 产生一些固定的(主要是分类的)和一些随机的(个人 ID 和可能还有研究 ID)影响。nlme 是最好的方法吗?SSlogis 模型对于我正在尝试做的事情似乎是明智的,对吗?以下任何一个都是一个明智的模型吗?我似乎无法正确获取起始值,并且 update() 似乎只适用于随机效果,而不是固定效果 - 有什么提示吗?
nlme(y ~ k*p0*exp(r*t) / (k+p0*(exp(r*t)-1)), ## not working at all (bad numerical properties?)
data = data,
fixed = k + p0 + r ~ var1 + var2,
random = k + p0 + r ~ 1|UID,
start = c(p0=1, k=100, r=1))
nlme(y ~ SSlogis(t, Asym, xmid, scal), ## not working, as start= is inappropriate
data = data,
fixed = Asym + xmid + scal ~ var1 + var2, ## works fine with ~ 1
random = Asym + xmid + scal ~ 1|UID,
start = getInitial(y ~ SSlogis(Dauer, Asym, xmid, scal), data = data))
由于我是特别是非线性混合模型和一般非线性模型的新手,因此我将不胜感激一些阅读建议或指向新手问题的教程/常见问题解答的链接。