我试图用nls使用高斯曲线拟合我的数据。 因为没有工作,我试图做一个简单的例子,看看有什么不顺心:R nls高斯拟合“在初始参数估计中的奇异梯度矩阵”
>x=seq(-4,4,0.1)
>y=2*dnorm(x-0.4,2)+runif(length(x) , min = -0.01, max = 0.01)
>df=data.frame(x,y)
>m <- nls(y ~ k*dnorm(x-mu,sigma), data = df, start = list(k=2,mu=0.4,sigma=2))
Error in nlsModel(formula, mf, start, wts, upper) : singular gradient
matrix at initial parameter estimates
> m <- nls(y ~ k*dnorm(x-mu,sigma), data = df, start == list(k=1.5,mu=0.4,sigma=2))
Error in nlsModel(formula, mf, start, wts, upper) : singular gradient
matrix at initial parameter estimates
为什么不这项工作?
首先,我不知道你是否正确使用'dnorm'。它的签名是'dnorm(x,mu,sigma)'。你的例子令人困惑,因为你在x参数中有'mu'变量,在平均参数中有'sigma'。这个例子中没有变化发生变化。这是你的意图吗?如果是这样,这是一个非常令人困惑的变量名称选择。 – MrFlick