R 拟合威布尔函数和参数估计
我试图将R中的函数与以下数据相匹配:R 拟合威布尔函数和参数估计,r,function,curve-fitting,weibull,R,Function,Curve Fitting,Weibull,我试图将R中的函数与以下数据相匹配: y<-c(80.32000, 55.78819, 89.23141, 30.75780, 418.26000, 254.30000, 200,316.42667, 406.83435, 364.00304, 218.27867, 153.88019, 235.49971, 148.77052, 273.20171, 123.54065, 157.75650, 120.88961, 134.64092, 177.44000, 123.62948,
y<-c(80.32000, 55.78819, 89.23141, 30.75780, 418.26000, 254.30000, 200,316.42667, 406.83435, 364.00304, 218.27867, 153.88019, 235.49971, 148.77052,
273.20171, 123.54065, 157.75650, 120.88961, 134.64092, 177.44000, 123.62948,87.03000, 63.22455, 132.62000, 120.95000, 129.60000, 116.32000, 60.49000, 66.59000)
x<-c(0, 0, 0, 0, 1, 1, 1, 3, 3, 3, 3, 3, 3, 7, 7, 7, 7, 7, 7, 11, 11, 11, 11, 16, 16, 16, 16, 16, 16)
但我得到了以下错误:
numericDeriv(form[[3L]]、names(ind)、env中出错:评估模型时缺少值或产生无穷大。
在德韦布尔(x、形状、比例):南部产生
数据非常分散。此外,它们是$0范围内的几个点。由于参数值超出范围,可能会出现NAN:例如,优化器可能会尝试形状或比例的负值。给它们加上边界可能会有所帮助,或者编写一个更复杂的目标函数来处理超出范围的值(例如,通过将它们推回边界,或在边界中反映它们,等等)。在我的例子中,拟合导致形状接近1,因此,当某些x值为零时,您可能会产生0^0。非常感谢您的回答和对另一个函数的思考!我想,不太可能再达到x=0,因为它是一条类似于平台的直线,从左到右y=-30到0,然后在0处增加,对吗?无论如何,我认为这种方法对我来说已经足够好了!
nls(y~127*dweibull(x,shape,scale), start=c(shape=3,scale=100))