R nls适合自定义gompertz曲线

时间:2013-04-30 18:35:11

标签: r modeling nls data-fitting

我正在尝试将我的数据与用户定义的Gompertz方程拟合。但是,我收到如下错误:

nls中的错误(Eq,data = GPdata,start = list(K = 1),algorithm =“default”,:   奇异梯度

我知道这可能意味着我的起始值不足以收敛,但除了猜测之外还有什么方法可以解决这个问题吗?我也尝试使用nls2函数(蛮力),扩展可能的K值的巨大向量来尝试但是收到了相同的错误。

这是我的代码,包括示例数据。

t = c(0, 2.4, 4, 5.9, 8.3, 10.2, 12, 14.5, 16.1, 17.8, 19, 21.1, 23, 24.7, 26.4, 28.3,
    30.4, 32.3, 34.2, 36)
Cells = c(14619994708, 18945074477, 19999450160, 23461507263, 22803949639, 19400861775,
        19806214226, 17390826226, 17390826226, 18186961935, 14066488593,
        13285017004, 11058253613, 8085853098, 9168523935, 8435042020, 
        8560592341, 7734294268, 7720887693, 7503367578)

GPdata = data.frame(t, Cells)

Ninf = (1 * 10 ^ 6) * (1 / 0.001)
Eq <- Cells ~ exp(log(Ninf) * (1 - exp(-K * t)))
Gompstart = nls(Eq, data = GPdata, start = list(K = 1), 
        algorithm = "default", trace = TRUE)

非常感谢任何帮助或建议。

谢谢!

1 个答案:

答案 0 :(得分:3)

1)请注意,对于所有tK

LHS >= min(LSH) = min(Cells) = 7503367578 > 1e9 = Ninf = max(RHS) >= RHS

因此LHS&gt;所有tK的RHS,因此该模型不起作用。

2)指数不会模拟上升然后下降的现象。