ガンマ分布を 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