メトロポリスとヘイスティングスの統合-戦略が機能しないのはなぜですか?


16

を統合したい関数g(x)あるとし もちろん、がエンドポイントでゼロになり、爆発がなく、素晴らしい機能であると仮定します。私がいじっていた1つの方法は、Metropolis-Hastingsアルゴリズムを使用して、正規化定数が欠落している比例する分布からサンプルリストを生成することです これをと呼び、これらのについて統計を計算します。 gx x 1 x 2 x n

g(x)dx.
g(x)x1,x2,,xnN = - G X D 、X P X F xはxは1g(x)
N=g(x)dx
p(x)f(x)x
1ni=0nf(xi)f(x)p(x)dx.

以来、、私は置換することができるキャンセルする形の発現をもたらす、積分から そのため、その領域に沿ってに統合される場合、結果を取得する必要があります。これは、必要な答えを得るために逆数を取ることができます。したがって、サンプルの範囲を取得して(ポイントを最も効果的に使用するため)、とし、描画した各サンプルに対してU(x)= 1 / rとします。そのようにU(x)f x = U x / g x g 1p(x)=g(x)/Nf(x)=U(x)/g(x)gUx1

1NU(x)g(x)g(x)dx=1NU(x)dx.
U(x)11/N U x = 1 / r U x r=xmaxxminU(x)=1/rU(x)サンプルが存在しない領域の外側ではゼロと評価されますが、その領域では1に統合されます。期待値を取得したら、
E[U(x)g(x)]=1N1ni=0nU(x)g(x).

サンプル関数g(x)= e ^ {-x ^ 2}の Rでこれをテストしてみましたg(x)=ex2。この場合、Metropolis-Hastingsを使用してサンプルを生成するのではなく、実際の確率を使用してrnormサンプルを生成します(テストのみ)。探している結果が得られません。基本的に、私が計算することの完全な表現は次のとおりです。

1n(xmaxxmin)i=0n1exi2.
これは私の理論では1 / \ sqrt {\ pi}に評価されるはず1/πです。それは近づきますが、確かに予想された方法で収束しません、私は何か間違ったことをしていますか?
ys = rnorm(1000000, 0, 1/sqrt(2))
r = max(ys) - min(ys)
sum(sapply(ys, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.6019741. 1/sqrt(pi) = 0.5641896

CliffABの編集

範囲を使用する理由は、ポイントがある領域でゼロ以外の関数を簡単に定義するためですが、範囲[-\ infty、\ infty]で1に統合されます。関数の完全な仕様は次のとおりです 。U(x)= \ begin {cases} \ frac {1} {x_ \ max-x_ \ min}&x_ \ max> x> x_ \ min \\ 0&\ text {それ以外の場合。} \ end {cases}この均一な密度としてU(x) を使用する必要はありませんでした。たとえば、確率密度P(x)= \ frac {1} {\ sqrt {\ pi}} e ^ {-x ^ 2}など、1に 統合された他の密度を使用することもできます ただし、これにより個々のサンプルの合計が簡単になります。 [,]

U(x)={1xmaxxminxmax>x>xmin0otherwise.
U(x)1
P(x)=1πex2.
1ni=0nP(x)g(x)=1ni=0nexi2/πexi2=1ni=0n1π=1π.

私はに統合する他のディストリビューションのためにこのテクニックを試みることができる。ただし、均一な配布では機能しない理由を引き続き知りたいと思います。1


すぐにこれを見ているだけなので、なぜrange(x)を使用することにしたのか正確にはわかりません。有効であるという条件付きで、それは非常に非効率的です!そのサイズのサンプルの範囲は、あなたがとることができる最も不安定な統計量とほぼ同じです。
クリフAB

@CliffAB範囲を使用することに関して、特別なことは何もありませんが、私のポイントがある区間で均一な分布を定義することは別です。編集を参照してください。
マイクフリン

1
これについては後で詳しく見ていきます。しかし、考慮すべきことは、xが均一なRVのセットである場合、、範囲です。しかし、xが非変性通常のRVのセットである場合、、ます。x 1 n 範囲x n(x)1nrange(x)
クリフAB

あなたが右だったかもしれない@CliffAB、私はその理由は、積分の境界が固定されていないということだったと思うし、推定量の分散が収束することはありませんので...
マイク・フリン

回答:


13

これは最も興味深い質問です。これは、同じ密度からのMCMC出力に基づいて密度正規化定数を近似する問題に関連しています。(副次的な発言は、が積分可能であり、無限大でゼロになることは十分ではないという正しい仮定であるということです。)g gggg

私の意見では、あなたの提案に関するこのトピックの最も関連性の高いエントリは、Gelfand and Dey(1994、JRSS B)による論文であり、著者はから生成する場合。この論文の結果の1つは、確率密度 [これはと同等]で、 次のアイデンティティ からサンプルことを示し ANを生成することができp x g x α x U x {

Xg(x)dx
p(x)g(x)α(x)U(x)X α X
{x;α(x)>0}{x;g(x)>0}
P1/N η
Xα(x)g(x)p(x)dx=Xα(x)Ndx=1N
p公正な評価のに重要サンプリング推定器によって 明らかに、推定器の性能(収束速度、分散の有無、およびTC)の選択に依存しない [その期待はしていませんが]。ベイジアンフレームワークでは、GelfandとDeyが提唱する選択肢は、事前密度であるを取ることです。これにより、 ここで、であるため、は尤度関数です。1/N
η^=1ni=1nα(xi)g(xi)xiiidp(x)
η^αα=πx
α(x)g(x)=1(x)
(x)g(x)=π(x)(x)。残念ながら、結果の推定器 は調和平均推定器であり、これまでで最悪のモンテカルロ推定器とも呼ばれます。トロント大学のラドフォード・ニール。そのため、常にうまく機能するとは限りません。またはほとんどありません。
N^=ni=1n1/(xi)

サンプルの範囲およびその範囲の均一性を使用するという考えは、調和平均の問題に関連しています。この推定量は、分子に現れる(無制限のサポートの場合は常にそうなると思われます!)したがって、正規化定数に非常にゆっくり収束します。たとえば、コードを数回再実行すると、10回の反復後に非常に異なる数値が得られます。これは、答えの大きささえ信用できないことを意味します。exp { x 2(min(xi),max(xi))exp{x2}

この無限の分散問題への一般的な修正を使用することである例えば、あなたのサンプルの四分位用いて、より濃縮された密度、なぜなら次いでこの間隔の間、下限を維持します。α(q.25(xi),q.75(xi))g

コードをこの新しい密度に適応させると、近似は非常に近くなり。1/π

ys = rnorm(1e6, 0, 1/sqrt(2))
r = quantile(ys,.75) - quantile(ys,.25)
yc=ys[(ys>quantile(ys,.25))&(ys<quantile(ys,.75))]
sum(sapply(yc, function(x) 1/( r * exp(-x^2))))/length(ys)
## evaluates to 0.5649015. 1/sqrt(pi) = 0.5641896

この方法については、Darren WraithJean-Michel Marinの 2つの論文で詳しく説明しています。

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