我想這個數據擬合到威布爾分佈Weibull分佈中的R擬合曲線利用NLS
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)
情節是這樣的:
我期待這樣的事情: fitted plot
我想對它適合一個威布爾曲線。我使用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」變量是發佈後的月份數量。
也許這篇文章在交叉驗證將幫助:http://stats.stackexchange.com/questions/19866/how-to-fit-a-weibull-distribution-to-input-data-containing-zeroes – MrFlick
我沒有在問這個問題之前先閱讀這篇文章,但沒有發現它有用,因爲使用fitdistr函數沒有問題。而fitdistr則提供了最佳的配戴合適性,而不是最佳的配合。 –
_hint_:概率密度函數將積分爲1.這是否適合您數據的曲線? –