2

このデータをワイブル分布に当てはめようとしています:

xy変数は次のとおりです。

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" 変数はリリース後の月数です。

4

1 に答える 1