【问题标题】:nls poor curve fittingnls 曲线拟合不佳
【发布时间】:2018-06-04 22:26:36
【问题描述】:

我无法拟合几个不同的 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 很合适

5pl 很合适

不合适

sigmoid 函数

【问题讨论】:

  • 我不明白您如何从这些数据点推断出它们可以用 S 形曲线来描述。您没有来自 sigmoid 上部的数据。
  • 对不起,我放大了一个区间以显示拟合不佳。现在我在底部添加了一个完整的数据点示例。

标签: r curve-fitting nls


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-08-04
    • 2016-02-02
    • 2017-07-19
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    相关资源
    最近更新 更多