[解決済み] エラーコード 100 r で fitdist を使用して exp 分布を適合させる。
2022-02-17 22:58:30
質問
自分のデータに指数分布を当てはめようとしていますが、以下のようなエラーが発生します。
"Error in fitdist(x41, "exp", method = "mle") :
the function mle failed to estimate the parameters,
with the error code 100"
私はmmeを試しましたが、mleを持つ他の分布を持っているので、指数分布のmleも必要です。もう何日も行き詰っています。どなたか助けてください。
私のデータはこのようなものです。
2795.5
304.6833
2786.45
5897.75
4381.367
1178.1
351.3167
109.85
459.6167
13.26667
0.033333
846.3833
3698.45
1527.1
94.31667
15.01667
271.8833
473
これは私のコードです
ExpMle41 <- fitdist(x41, "exp", method="mle")
ExpMle41
plot(ExpMle41)
何かお手伝いいただけることがあれば、ぜひお願いします。ありがとうございます。
解決方法は?
これを想定して
fitdist
から
fitdistrplus
パッケージで、あなたのエラーを複製することができます。
> fitdist(x41, "exp", method="mle")
<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 [1]>
Error in fitdist(x41, "exp", method = "mle") :
the function mle failed to estimate the parameters,
with the error code 100
しかし、あなたのデータには大きな数字が含まれています......すべてを1/4に縮小してみると......。
> fitdist(x41/10000, "exp", method="mle")
Fitting of the distribution ' exp ' by maximum likelihood
Parameters:
estimate Std. Error
rate 7.1417 1.683315
さて、うまくいったようですね。もう少し規模を小さくしてみましょう。
> fitdist(x41/1000, "exp", method="mle")
Fitting of the distribution ' exp ' by maximum likelihood
Parameters:
estimate Std. Error
rate 0.71417 0.1683312
そうですね。1000で割ると効果がありますね。続けてみよう。
> fitdist(x41/100, "exp", method="mle")
Fitting of the distribution ' exp ' by maximum likelihood
Parameters:
estimate Std. Error
rate 0.071417 0.01682985
順調です。
> fitdist(x41/10, "exp", method="mle")
Fitting of the distribution ' exp ' by maximum likelihood
Parameters:
estimate Std. Error
rate 0.0071417 0.001649523
つまり、データを1/10にスケーリングするとうまくいき、推定値とSEがどのようにスケーリングされるかがわかるのです。もう一歩踏み込んでみましょう。
> fitdist(x41/1, "exp", method="mle")
<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 [1]>
Error in fitdist(x41/1, "exp", method = "mle") :
the function mle failed to estimate the parameters,
with the error code 100
クランチ 根本的なアルゴリズムに数値安定性の問題があるようだ。もし、データを指数関数的に処理するのであれば、無限大と区別がつかないような値になるのかもしれません。例えば
> exp(x41)
[1] Inf 2.100274e+132 Inf Inf Inf
[6] Inf 3.757545e+152 5.096228e+47 4.064401e+199 5.776191e+05
[11] 1.033895e+00 Inf Inf Inf 9.145540e+40
[16] 3.323969e+06 1.195135e+118 2.638092e+205
しかし、10倍にすれば、数学は対応できる、ほぼ(E+256!!)。
> exp(x41/10)
[1] 2.552833e+121 1.706977e+13 1.032728e+121 1.367817e+256 1.907002e+190
[6] 1.459597e+51 1.809216e+15 5.898273e+04 9.139021e+19 3.768462e+00
[11] 1.003339e+00 5.727429e+36 4.184491e+160 2.094645e+66 1.247731e+04
[16] 4.489166e+00 6.423056e+11 3.484408e+20
関連
-
[解決済み】基本 - T-検定 -> グループ化因子は正確に2水準でなければならない
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み】値を置き換えようとすると、"データフレームの添え字の割り当てで欠損値は許可されない"
-
[解決済み] テスト
-
[解決済み】Rで立方根と対数変換をする
-
[解決済み】データのマージ - fix.by(by.x, x)のエラー)
-
[解決済み】 file(filename, "r", encoding = encoding) : cannot open the connectionでエラーが発生する。
-
[解決済み】Rでデータフレームのサブセットをプロットする方法は?
-
[解決済み】 if/while (条件) {: TRUE/FALSEが必要な場所に値がない場合のエラー
-
[解決済み】"object not interpretable as a factor "というエラーの意味は?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ベースグラフィックスでプロットエリアの外側に凡例をプロットする?
-
[解決済み】RでのMLEエラー:'vmmin'の初期値が有限でない
-
[解決済み】「次のオブジェクトは 'package:xxx' からマスクされています」とはどういう意味ですか?
-
[解決済み】R ggplot2 で scale_x_discrete を使用する。
-
[解決済み】R Markdown - html出力でフォントサイズとフォントタイプを変更する
-
[解決済み】 if/while (条件) {: TRUE/FALSEが必要な場所に値がない場合のエラー
-
[解決済み】Rで、Error: ggplot2 doesn't know how to handle of data of class numericに対処する。
-
[解決済み】randomForestの実行予測で「NA/NaN/Inf in foreign function call (arg 7)」をなくすには?
-
[解決済み】.External.graphics Rでエラーが発生しました。
-
[解決済み】R4DSのエラー比較(1)は、アトミック型とリスト型でのみ可能です