nls曲线拟合差

时间:2017-12-22 08:59:27

标签: r curve-fitting nls

我无法安装几种不同的S形曲线。 对于更好的贴合有一点帮助真的很感激。

我正在尝试三种不同的模型:

4个参数

 nls(y ~ a + (k-a) /(1 + (x/c)^e)^m, start=list(a=a_start, k=k_start, c=c_start, m=m_start, e=e_start), control = list(maxiter = 50000, minFactor=1/2000, warnOnly=T), algorithm = "port")

5个参数

nls(y ~ a + (k-a) /(1 + exp(-1/c*(x-e)))^m, start=list(a=a_start, k=k_start, c=c_start, m=m_start, e=e_start), trace=T, lower=c(a=-10000, k=0, c=0, m=0, e=0), upper=c(a=1000, k=100000, c=50, m=5, e=50), control = list(maxiter = 50000, minFactor=1/2000, warnOnly=T))

5个带重量的参数

nls(y ~ a + (k-a) /(1 + exp(-1/c*(x-e)))^m, weights = (1/residuals(fit)^2), start=list(a=a_start, k=k_start, c=c_start, m=m_start, e=e_start), trace=T, lower=c(a=-10000, k=0, c=0, m=0, e=0), upper=c(a=1000, k=100000, c=50, m=5, e=50), control = list(maxiter = 50000, minFactor=1/2000, warnOnly=T))

4pl很好的拟合 enter image description here

5pl很合身 enter image description here

不合适 enter image description here

sigmoid功能 enter image description here

1 个答案:

答案 0 :(得分:0)

我已经部分解决了我的问题。 由于我对增长开始时的良好拟合感兴趣,我使用了自定义权重,以便在该地区更加重要。