【发布时间】:2016-12-05 08:16:15
【问题描述】:
我对此数据的拟合曲线有疑问:
在 x 轴上,我们有关于风强度 (m/s) 的数据,在 y 轴上,我们有日志数据(捕鱼量)。我只在没有对数的数据上拟合了一条曲线(nls 模型,高斯曲线),但是当我尝试对数数据时,R 告诉我:
Error in nls(mean.w ~ k * exp(-1/2 * (x.wind - mu)^2/sigma^2), :
singolar gradient
模型为:mean.w ~ k * exp(-1/2 * (x.wind - mu)^2/sigma^2),其中k,mu and sigma是要估计的参数,
mean.w # is y axes (log fish catch)
x.wind # is x axes wind intensity
非对数数据的拟合曲线为:
# 红色的平均点
我对日志数据的方面结果是类似的拟合曲线,具有不同的参数值,问题是,我必须使用哪种模型?
数据是:
1.1 1.4 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5
-3.0951726 NaN -2.5337439 -3.6184583 -3.2161971 -2.4405031 -1.4349350 -1.5676554 -1.0594076 -0.3290359 -1.2241878 -0.6336298
2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7
-1.3863366 -1.4221593 -1.4961145 -1.2632693 -2.5509134 -4.7270333 -2.4795247 -2.0024069 -4.5975918 -2.9954250 -3.2390678 -2.6339971
3.8 3.9 4 4.1 4.2 4.3 4.4 4.5 4.6 5
-3.3419309 -3.5258236 -4.4962217 0.7027033 -3.6392906 -4.0426306 -1.0798462 NaN -3.0574602 -3.0498198
x 值从 1.1 到 5,低于日志数据。
【问题讨论】:
-
log(y) = log(0.21) -0.5*(wind-2.45)^2/0.45^2
-
是的,但是你想象你现在没有参数(从第一个拟合曲线),怎么能在这个日志数据上估计呢? poly、lm、glm 或 nls?也许是 stackexchange 的问题,如果是,我很抱歉。
-
首先您需要解释为什么要在对数尺度上进行拟合,因为这对错误模型有影响。
标签: r model curve-fitting nls