2

ガンマ分布を 338 要素で構成されたデータセットに、固定の低しきい値(私は R を使用しています)で適合させたいと考えています。下限を表すために、位置を追加して 3 つのパラメーターを持つガンマを使用することを考えました。これが私のコードです:

library(FAdist)
library(fitdistrplus)
fit <- fitdist(mydata,"gamma3",start=list(1,1,mythreshold))

コードを実行するたびに、同じエラーが発生しました。

<simpleError in optim(par = vstart, fn = fnobj, fix.arg = fix.arg, obs = data,     gr = gradient, ddistnam = ddistname, hessian = TRUE, method = meth,     lower = lower, upper = upper, ...): non-finite finite-difference value [3]>
Error in fitdist(Hs, "gamma3", start = list(1, 1, 3)) : 
  the function mle failed to estimate the parameters, 
                with the error code 100

そこで、ガンマを 2 つのパラメーターでフィッティングして得られた値を使用して、開始値を変更しようとしました。これにより、次の結果が得られました。

fit <- fitdist(mydata,"gamma")
fit
Fitting of the distribution ' gamma ' by maximum likelihood 
Parameters:
       estimate Std. Error
shape 21.417503  1.6348313
rate   5.352422  0.4133735

しかし、それでもうまくいきません..2 つのパラメーターを持つガンマでさえうまくいかない場合は理解できますが、そうではなく、自分で説明することはできません。さらに、QQ プロットと 2 つのパラメーターを持つガンマの ecdf はあまり良くありません...しかし、低しきい値に関してスケーリングされた元のデータセットの分布に適合すると、適合は完璧に見えます:

fit <- fitdist(mydata-mythreshold,"gamma")
fit
Fitting of the distribution ' gamma ' by maximum likelihood 
Parameters:
      estimate Std. Error
shape 1.059540 0.07212832
rate  1.058007 0.09117620

しかし、そのようにすることが正しいかどうかはわかりません...パラメータは非常に異なり、データに関連する返品期間を計算するために必要です! そのため、位置パラメーターを使用してガンマについて考えました。

psデータが多すぎるため添付しませんでしたが、それらの概要を報告できます。

 summary(mydata)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  3.003   3.282   3.753   4.001   4.444   8.087 
4

1 に答える 1