【问题标题】:Multi-peak Gaussian fit in R with small number of sample具有少量样本的 R 中的多峰高斯拟合
【发布时间】:2022-02-01 07:43:10
【问题描述】:

我只有五个数据集来预测两个像这样的双峰高斯拟合。

x = c(51,92,220, 280, 333)
y = c(40,80,20,60,40)

这是一个使用 ggplot 绘制地块和黄土线的例子。

我想通过高斯曲线拟合得到一个方程。

所以,我像这样使用 nls() 函数。

fit <- nls(y ~ (C1 * exp(-(x-mean1)**2/(2 * sigma1**2)) +
                    C2 * exp(-(x-mean2)**2/(2 * sigma2**2))),
           start=list(C1=20, mean1=100, sigma1=0.1,
                      C2=20, mean2=270, sigma2=0.1), algorithm="port")

但是,它不起作用,显示“初始参数估计时的奇异梯度矩阵”错误。

我知道这是由错误的初始值引起的,但我找不到解决方案。有什么好办法吗?还是因为我只有少量样本而无法拟合曲线?

【问题讨论】:

    标签: r curve-fitting gaussian nls


    【解决方案1】:

    您有 6 个未知参数,但只有 5 个数据点。有点像将一条直线拟合到单个数据点,有一个无限的数字。适合您的数据的参数选择。

    【讨论】:

      猜你喜欢
      • 2021-06-22
      • 2018-03-12
      • 2020-07-11
      • 2016-03-08
      • 2020-07-15
      • 2018-04-17
      • 2017-02-23
      • 1970-01-01
      • 2021-08-20
      相关资源
      最近更新 更多