問題タブ [mle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
258 参照

r - R二項GLMで準分離は重要ですか?

準分離が R 二項 GLM にどのように影響するかを学んでいます。そして、場合によってはどうでもいいと思うようになる。

私の理解では、因子レベルのいくつかの線形結合が故障/非故障を完全に識別できる場合、データには準分離があると言います。

そこで、次のように R で準分離を使用して人工データセットを作成しました。

次に、x1=1 および x2=1 (obs 3) の場合、データは常に失敗しません。このデータでは、共変量行列には切片、x1、x2 の 3 つの列があります。

私の理解では、準分離は無限の価値の見積もりをもたらします。したがって、 glm fit は失敗するはずです。ただし、次の glm フィットは失敗しません。

結果は次のとおりです。

標準 準分離であっても、エラーは非常に合理的です。準分離がglmフィットの結果に影響を与えていない理由を誰か教えてもらえますか?

0 投票する
3 に答える
1515 参照

python - Python による制約付き MLE

私はPythonでMLEの実装を行っています。私の対数尤度関数には、推定する 5 つのパラメーターがあり、そのうちの 2 つには、0 から 1 の間でなければならないという制約があります。statsmodels パッケージの GenericLikelihoodModel モジュールを使用して MLE を実装できますが、方法がわかりません。制約でこれを行います。具体的には、私の負の対数尤度関数は

MLE 最適化クラスは

そしてメインは

コードを変更して制約を組み込む方法がわかりません。alpha と sigma は 0 から 1 の間である必要があります。

0 投票する
0 に答える
680 参照

r - MLEを見つけるためのRコード

次の分布と密度関数のパラメーターの最尤推定 (MLE) を見つけたいと思います。

x>0、a、c>0、b>1、および d <1 の場合。

データセットの MLE を見つけるために、次の R コードを作成しました。

いくつかの論文で見たように、パラメータ推定の結果は次のようになります。

どうすればこの問題を解決できますか?

0 投票する
1 に答える
229 参照

r - optim を使用して r の尤度を最大化する際のエラー

だから、私はこれらの機能を持っています:

これは、データ y を説明するために使用されます。

optim を使用して尤度を最大化したいので、尤度関数を定義しました。

そして私はoptimを使ってフィットしようとしました

しかし、私はエラーが発生します:

なぜかわからないのですが?nls フィッティング funk2(x,l,r) を y に実行できます

これは、funk2 が機能していることを意味します。私が設計したLL関数の問題だと思いますが、わかりません!! 助けてください!

0 投票する
2 に答える
3056 参照

r - r の 3 パラメーター ワイブル分布の最尤推定

3p ワイブル分布のスケール、形状、およびしきい値パラメーターを推定したいと考えています。

これまでに行ったことは次のとおりです。

この投稿を参照して、R で 3 パラメーターのワイブル分布をフィッティングします。

関数を使ってみた

MASS-Package の「fitdistr」関数の引数「start」の初期値として使用できるように、ワイブル パラメータを「事前推定」します。

パラメータを 2 回推定する理由を尋ねるかもしれません...理由は、fitdistr 関数によっても推定される推定値の分散共分散行列が必要だからです。

例:

これは、形状パラメーターが 1 を超える場合に非常にうまく機能します。残念ながら、私のアプローチでは、形状パラメーターが 1 よりも小さい可能性がある場合に対処する必要があります。

形状パラメータが 1 より小さい場合にこれが不可能な理由については、http ://www.weibull.com/hotwire/issue148/hottopics148.htm で説明されています。

ケース 1 では、3 つのパラメータすべてが不明であり、次のように述べられています。

「ti の最小の故障時間を tmin と定義します。このとき、γ → tmin のとき、ln(tmin - γ) → -∞。β が 1 未満の場合、(β - 1)ln(tmin - γ) は + ∞ . β, η および γ の与えられた解について, より大きな尤度値を与える別の解のセットをいつでも見つけることができます (たとえば、γ を tmin に近づけることによって). したがって、β の MLE 解はありません。 ηとγ」

これは非常に理にかなっています。まさにこの理由で、私は彼らがこのページで説明した方法でそれをやりたいと思っています.

「Weibull++ では、勾配ベースのアルゴリズムを使用して、β、η、および γ の MLE 解を見つけます。γ の範囲の上限は、tmin の 0.99 に任意に設定されます。データ セットに応じて、局所最適または 0.99tmin が γ の MLE 解として返されます。」

解が (0, .99 * tmin) の間にあるように、ガンマ (「thres」と呼ばれるコード内) の実行可能な間隔を設定したいと考えています。

この問題を解決する方法を知っている人はいますか?

関数 fitdistr では、1 つのパラメーターを制約して、制約付き MLE を実行する機会がないようです。

もう 1 つの方法は、スコア ベクトルの外積による漸近分散の推定です。スコア ベクトルは、上記で使用した関数 thetahat.weibul(x) から取得できます。しかし、外積を手動で (関数を使用せずに) 計算すると、非常に時間がかかり、制約付き ML 推定の問題は解決されません。

敬具、ティム

0 投票する
0 に答える
687 参照

r - 右打ち切りデータの最尤推定 3 パラメーター ワイブル

打ち切りデータの ML を使用して、3 パラメーターのワイブル分布のパラメーターを推定しようとしています。

flexsurv「独自の」密度関数を定義したパッケージを使用して解決しました。

また、関数のドキュメントに記載されている指示に従ってflexsurv::flexsurvreg、顧客密度関数で MLE を実行するために必要なすべての情報を含むリストを作成しました。

以下で、私がこれまでに行ったことを確認できます。

変数 y はユニットのステータスを表す必要があります。1 は失敗、0 は打ち切りまで失敗していないユニットです。

fitdistrplus形状とスケールの初期値は、パッケージでも定義されているモーメントから取得されます。

しきい値パラメータについては、しきい値がデータの最小値よりも実際に小さくなければならないため、制約が必要です。したがって、しきい値の制約は最大 .99 * t_min で十分です (これは私が今まで実装していないものです)。

上記の MLE の出力は次のとおりです。

打ち切りがあっても、推定されたパラメータはうまくいきません。この手順を他のランダムに生成されたデータで数回実行しました...見積もりは常に「真実」からかなりかけ離れています。

したがって、コードを改善するか、MLE を使用して 3 パラメーターのワイブルのパラメーターを推定する別の可能性が必要です。

0 投票する
1 に答える
1676 参照

r - R optim(){fExtremes} は 0 のヘッセ行列を取得します

R {fExtremes} を使用して、データ (ベクトル) の GEV 分布の最適なパラメーターを見つけています。しかし、次のエラーメッセージが表示されます

solve.default(fit$hessian) のエラー: Lapack ルーチン dgesv: システムは厳密に特異です: U[1,1] = 0

fit$hessian までさかのぼると、ヘッセ行列が特異な行列であり、すべての要素が 0 であることがわかりました。gevFit()のソース コード ( https://github.com/cran/fExtremes/blob/master/R/GevFit.R ) は、fit$hessian が optim() によって計算されることを示しています。出力パラメーターは、初期パラメーターとまったく同じ値です。この問題を引き起こすデータの問題は何でしょうか? ここにコードをコピーしました

Google ドキュメントでデータセットを更新しました: https://docs.google.com/spreadsheets/d/1IRRpjmdrrJPhNmfiLism_P0efV_Ot4HlEsa6kwMnljc/edit?usp=sharing

0 投票する
1 に答える
1159 参照

r - R を使用した SARIMAX モデルの数値法

私の友人は現在、時系列モデル SARIMAX (Seasonal ARIMA Exogenous) のパラメーターの推定に関する課題に取り組んでおり、最尤法 (MLE) 法を使用しています。彼が使用したデータは、2000 年から 2012 年までの月間降雨量に関するもので、外生変数としてインド洋ダイポールモード (IOD) 指数が使用されています。ここにデータがあります:

その際R、SARIMAX モデルを解析するためのパッケージがあるため、彼は協力します。arimax()そしてこれまでのところ、彼はシーズン ARIMA オーダー (1,0,1) を使用した TSA パッケージの機能でうまく機能しています。

したがって、ここに彼の構文を添付します。

以下は結果です。

彼は構文が機能していると主張しましたが、彼の講師はもっと期待していました。理論的には、彼は MLE を使用したため、対数尤度関数の 1 次導関数が陰解を与えることを証明しました。これは、MLE では推定プロセスを分析的に行うことができなかったことを意味するため、それを行うには数値的手法を引き続き使用する必要があります。

ということで、友人講師の期待です。彼は、推定は本当に数値的に行う必要があることを少なくとも彼に納得させることができると彼に期待していました。 BHHHなど)。

しかし、ここで重要なのはarimax()、以下のように推定を数値的に実行する必要があるかどうかを選択するための数値的方法を関数が選択できないことです。

以上'method'が推定方法で、利用可能な方法はML, CSS,CSS-MLです。上記のシンタックスが数値法で構成されていないことは明らかであり、これが問題です。

では、R で使用されている数値メソッドを知る方法はありますか? それとも私の友人はarimax()関数に依存せずに独自のプログラムを作成する必要がありましたか?

私のコードにエラーがある場合は、お知らせください。また、文法や語彙の誤りについてもお詫び申し上げます。英語は私の母国語ではありません。