没有线性R(我出错的地方?)

时间:2015-12-14 02:04:16

标签: r curve-fitting linear

espfio<- c( 0.05,   0.06,   0.07,   0.08,   0.09,   0.10,   0.11,   0.12,   0.13,   0.14,   0.15,   0.16,   0.17,   0.18,   0.19,   0.20)

sensibilidade <-c(  1.51,   1.49,   1.47,   1.43,   1.35,   1.19,   0.96,   0.85,   0.65,   0.64,   0.58,   0.56,   0.52,   0.52,   0.49,   0.50)

plot(espfio,sensibilidade)

B1 = 1
B2 = 1
B3 = 1

fit1 <- nls(sensibilidade ~ B1*(exp(-exp(-B1-B2*espfio))), start=list(B1=B1,B2=B2,B3=B3))
summary(fit1)
  

nlsModel中的错误(公式,mf,start,wts):初始参数估计时的奇异梯度矩阵

1 个答案:

答案 0 :(得分:5)

即使注释中记录了修正,它也会失去一个单一的渐变,所以为了使它收敛,让我们将B3固定为1,使eval()适合两个参数模型,然后使用这个拟合的结果作为第二个拟合的输入 - 这个到三参数模型fit2(图上的红线)。虽然这些模型会聚,但结果看起来不太合适(见红线)。更好的是添加第四个参数,如下面的fit3模型(参见图中的绿线) - 请注意fit4使用fit4算法,该算法不需要启动值线性参数。线性参数名为"plinear".lin1,分别对应新参数和.lin2模型中的B3参数。我们还可以考虑在R fit3中实现的Weibull模型,如下面的SSweibull模型(参见图中的蓝线),尽管视觉fitw(绿色)看起来更好并且具有更好的残差平方和。

fit4

screenshot