【发布时间】: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