我正在尝试将此数据拟合到 weibull 分布:
我的x
和y
变量是:
y <- c(1, 1, 1, 4, 7, 20, 7, 14, 19, 15, 18, 3, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1)
x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
情节如下所示:
我正在寻找这样的东西: 拟合情节
我想给它拟合一条威布尔曲线。我在 R 中使用 nls 函数,如下所示:
nls(y ~ ((a/b) * ((x/b)^(a-1)) * exp(- (x/b)^a)))
这个函数总是抛出一个错误说:
Error in numericDeriv(form[[3L]], names(ind), env) :
Missing value or an infinity produced when evaluating the model
In addition: Warning message:
In nls(y ~ ((a/b) * ((x/b)^(a - 1)) * exp(-(x/b)^a))) :
No starting values specified for some parameters.
Initializing ‘a’, ‘b’ to '1.'.
Consider specifying 'start' or using a selfStart model
所以首先我尝试了不同的起始值,但没有任何成功。我无法理解如何对起始值做出“好的”猜测。然后我使用SSweibull(x, Asym, Drop, lrc, pwr)
了 selfStart 函数。现在 SSWeibull 函数需要 Asym、Drop、lrc 和 pwr 的值,我不知道这些值可能是什么。
如果有人可以帮助我弄清楚如何进行,我将不胜感激。
数据背景:我从 bugzilla 获取了一些数据,我的“y”变量是特定月份报告的错误数,“x”变量是发布后的月份数。