MCMCをヒットして実行する


16

ヒットを実装してMCMCアルゴリズムを実行しようとしていますが、その方法を理解するのに少し苦労しています。一般的な考え方は次のとおりです。

MHで提案ジャンプを生成するには、次のようにします。

  • 単位球Oの表面上の分布から方向を生成するdO
  • 制約された空間に沿って符号付き距離を生成します。λ

ただし、これをR(または他の言語)で実装する方法についてはわかりません。

誰かが私を正しい方向に向けるコードのスニペットを持っていますか?

ところで、私はこのメソッドを実行するライブラリにあまり興味がありません。自分でそれをコード化してみたいと思います。

どうもありがとう。


1
これまでこのアルゴリズムについて聞いたことはありませんが、非常に興味深いようです。説明ソースへのリンクを提供していただけますか?ありがとうございました !
ステフェン

@steffenこれは元の論文へのリンクです-実際には技術報告書です。私もこの手順を使用したことがありません。
csgillespie

1
他の方法よりもヒットしてMCMCを実行する利点は何ですか?収束の速度?
RockScience

@fRed:だから私は賞金を提供しました。Hit and runを読んだことがありますが、どのような状況で役立つかわかりません。
csgillespie

3
リンクが壊れています。
-daknowles

回答:


11

私はあなたが提供した論文を見ませんでしたが、とにかく手放してください:

あなたが持っている場合次元のパラメータ空間を、あなたは、ランダムな方向を生成することができますdはpd一様で単位球の表面に分布します

x <- rnorm(p)
d <- x/sqrt(sum(x^2))

(cf Wikiを)。

次に、これを使用して、拒否サンプリングの提案を生成します(実際にdの分布を評価できると仮定します)。dd

位置から開始してdを受け入れたと仮定すると、提案yを生成しますバツdy

 lambda <- r<SOMEDISTRIBUTION>(foo, bar)
 y <- x + lambda * d

そして、Metropolis-Hastings-Stepを実行してに移動するかどうかを決定します。y

もちろん、これがうまく機能するかどうかは、の分布と拒否サンプリングステップで(繰り返し)その密度を評価するのにどれだけ費用がかかるかに依存しますが、dの提案を生成するのは安価なので、それで済ませるかもしれません。dd


@csgillespieの利益のために追加:

いくつかのグーグルで収集できたものから、任意の境界を持つが必ずしも接続されていない(多変量)ターゲットがある場合、ヒットアンドランMCMCは主に高速ミキシングに役立ちますワンステップで他へのサポートで。詳細はこちらこちら


1
この回答で満足できない場合、その理由を説明してください。
ジョンサルバ

@fredについてはわかりませんが、賞金を提供したとき、ヒットアンドランMCMCについてもう少し洞察を得たいと思いました。たとえば、どのタイプの問題が最も適しているでしょうか。もちろん、他に答えがなければ、この質問は賞金を獲得します。
csgillespie

3
@csgillespie:回答を編集して、あなたの興味をよりよく満たすようにしました。賞金に値しないと言わないでください。;)
ファビアン

2
リンクをありがとう。私が賞金を支払った理由の1つは、私のGoogle検索でメソッドの数学的議論が行われたが、実際の応用にはほとんど及ばなかったことです。賞金を授与する前にさらに48時間待つ場合、それを
軽視

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.