:)
我尝试用R运行一个nls模型,但首先我希望得到最好的系数。
我运行函数getInitial
,如:
getInitial(
value ~ SSlogis(date, alpha, xmid, scale),
data = training
)
但我有这个错误:
Error in nls(y ~ 1/(1 + exp((xmid - x)/scal)), data = xy, start = list(xmid = aux[1L], : step factor 0.000488281 reduced below 'minFactor' of 0.000976562
我在互联网上看,我找不到任何东西。你能帮帮我吗?
答案 0 :(得分:0)
如果没有可重现的例子,目前尚不清楚这里的问题究竟是什么。一般而言,选择非线性回归模型的初始值的一种好方法是线性化模型。这仅仅意味着确定模型左侧的适当变换,使得右侧可以线性表示。然后拟合线性模型,并使用线性模型的估计值作为非线性模型的初始值。
在您的情况下,您可以通过转换y来进行线性化,如下所示:
y.trans <- log((1/y) - 1)
scal
或scale
(错字?)也是回归的参数,还是固定的?如果它已修复,您可能需要对x进行额外的转换,并使用offset
函数拟合固定斜率为1的线性模型。如果未修复,则需要提供初始值两个参数。