MCMC演習3:マルコフ連鎖モンテカルロ


演習3:マルコフ連鎖モンテカルロ
のNiAlフリエル
2019年11月1日
、このラボの目的
私たちはクラスで検討している例えばMCMCの実装に焦点を当てる研究室で。
目的は、提案分散が効率決定する上で果たす役割を理解するだろう
マルコフ連鎖を。
MCMCの簡単な再キャップ
MCMCはマルコフ構築することにより、目標分布π(θ)からシミュレートするためのフレームワークであることを思い出して
、その定常分布π(θ)であるとチェーン。我々は十分な長さのためにチェーンを実行する場合次に、シミュレート値
チェーンからは、目標分布から(依存)サンプルとして扱われ、のための基礎として使用することができる
πの重要な機能をまとめました。
一定の規則性の条件の下で、マルコフ連鎖のサンプル経路を模倣πからのランダムサンプル。所与の
実現{θT:T = 0、1、。}このような鎖から、典型的な漸近的結果が分布含む
実現の収束、すなわち
θT→π(θ)の
分布であり、t→∞の両方。また、エルゴード平均の一貫性、任意のスカラー関数φため、
MCMC留学生作业代做、代写R程序设计作业
1は、一般的に、そのようなマルコフ連鎖を生成することができる方法の質問に対するので、このリード。私たちが見てきたように
講義、メトロポリス・ヘイスティングス法は、これを行うための一般的な手段を提供します。
メトロポリス・ヘイスティングスアルゴリズム
リコールは、メトロポリス・ヘイスティングス法の一方の反復tにおける一部から、φを提案した状態をシミュレートすること
現在の状態、θtとに依存提案分布。我々は、Q(θT、φ)によって、この提案の密度を表します。
この提案された状態は、その後確率で受け入れられている(後述)α(θT、φ)で表され、次
マルコフ連鎖の状態がθT+ 1 =φ、そうでなければ、θT+ 1 =θTとなります。
次のように私たちは、アルゴリズムこのアルゴリズムを説明します。
ステップ1θtと、現在の状態を考えると、提案された新しい状態、φを生成し、分布q(θT、φ)から。
ステップ2を計算。
確率α(θT、φ)でステップ3、セットθT+ 1 =φ、他のセットθT+ 1 =θT。
ステップ1のステップ4戻る
1
ここでは、我々はメトロポリス-ヘイスティングスアルゴリズムを実装するための汎用関数を記述します。
metropolis.hastings < -関数(F、#ターゲット分布
G、#提案分布
random.g、#提案分布から試料
X0、チェーンの#初期値は、Rでは、x [1]
シグマ、#提案ST。DEV。
chain.size = 1E5){#鎖サイズ
X < - C(X0、担当者(NA、chain.size-1))#の初期化チェーン
(I 2用:chain.size){
Y < - random.g(X [I-1]、シグマ)位のGからYを生成|(XT)random.g使用。
- * G(X [I-1]、Y、シグマ)/(#alpha <分(1、F(y)をF(X [I-1])* G(Y、X [I-1]、シグマ
)))、α< -分(1、F(Y)* G(Y、X [I-1]、シグマ) /(F(X [I-1])* G(X [I-1]、Y、シグマ)))
IF(runif(1)<アルファ){X [i]は< - Y}
他{X [I ] < - X [I-1]}}} X
最初の(簡単な)の例
ここでは、我々はN(0、1)からサンプルしたい講義で検討再訪問する簡単な例であろう
提案分布として別の正規分布を使用して配布。目的があったことを思い出して
得マルコフ連鎖の効率に提案分布の分散の影響を探ります。
私たちの一般的なコードを使用してこれを実装するために、我々は最初の貧しい提案の選択肢を使用以下、行う
分散(σ2= 202):シグマ= 20
F < -関数(x)はdnorm(X、0,1)
random.g < -関数(X、シグマ)rnorm(1、X、シグマ)#Q(x、y)は
G < -関数(X、Y、シグマ)dnorm(Y、X、シグマ)
X0 < - 4
chain.size < - 1E4
X < - metropolis.hastings(F、G、random.g、X0、シグマ、chain.size)
次のように我々は、このチェーンの出力を探索することができ:
PAR(mfrow = C(1,2))
プロット(X、xlab = "X"、ylab = "F(X)"、主=( "xのトレースプロット[T]、シグマ="、Sigma)を貼り付け、COL = "赤"、タイプ= "L" )
XMIN =分(X [(0.2 * chain.size):chain.size])
XMAX = MAX(X [(0.2 * chain.size):chain.size])
xs.lower =分(-4、XMIN)
2
xs.upper = MAX(4、XMAX)
XS < -配列(xs.lower、xs.upper、LEN = 1E3)
HIST(X [(0.2 * chain.size):chain.size]、50、XLIM = C (xs.lower、xs.upper)、COL = "青"、xlab = "X"、メイン= "メトロポリス・ヘイスティングス"、FREQ = FALSE)
線(XS、F(XS)、COL = "赤"、LWD = 1)
0 2000 6000 10000
xのトレースプロット[T]、シグマ= 20
メトロポリス・ヘイスティングス
我々は(トレースプロットから証明されるように)鎖apearsは非常によく混合したことがないことがわかります。また、
histrogramは(右側のプロット上に赤色でプロット)目標濃度の優れた要約を生じません。
今、私たちははるかに小さい提案分散(σ2= 0.22)を使用し、これはマルコフ連鎖をした方法を探ります。
シグマ= 0.2
F < -関数(X)dnorm(x、0,1)
random.g < -関数(X、シグマ)rnorm(1、X、シグマ)#Q(x、y)は
G < -関数(X 、Y、シグマ)dnorm(Y、X、シグマ)
X0 < - 4
chain.size < - 1E4
X < - metropolis.hastings(F、G、random.g、X0、シグマ、chain.size)
我々は、次に、探索することができこのチェーンの出力を次のように
PAR(mfrow = C(1,2))
xの(「トレースプロット[t]をプロット(X、xlab = "X"、ylab = "F(X)"、主=貼り付け、シグマ=」、シグマ)、COL = "赤"、タイプ= "L")
XMIN =分(X [(0.2 * chain.size):チェーン。
XMAX = MAX(X [(0.2 * chain.size):chain.size])
xs.lower =分(-4、XMIN)
xs.upper = MAX(4、XMAX)
XS < -配列(xs.lower、XS .upper、LEN = 1E3)
3
HIST(X [(0.2 * chain.size):chain.size]、50、XLIM = C(xs.lower、xs.upper)、COL = "青"、xlab = "X 」主= "メトロポリス・ヘイスティングス"、FREQ = FALSE)
線(XS、F(XS)、COL = ""赤、LWD = 1)
0 2000 6000 10000
xのトレースプロット[T]、シグマ= 0.2
Metropolis-ヘイスティングス
マルコフのヒストグラムが再び、トレースプロットは、チェーンが非常によく混合されていないことを示し
チェーントレースが目標濃度とのより良い一致しています。
最後に、我々は提案の分散がσ2= 32に設定されている場合考える
シグマ= 3
F < -関数(X)dnorm(x、0,1)
random.g < -関数(X、シグマ)rnorm(1、X、シグマ)#Q(x、y)は
G < -関数(X、Y、シグマ)dnorm(Y、X、シグマ)
X0 < - 4
鎖.size < - 1E4
X < - metropolis.hastings(F、G、random.g、X0、シグマ、chain.size)
次のように我々は、このチェーンの出力を探索することができ:
PAR(mfrow = C(1,2) )
プロット(X、xlab = "X"、ylab = "F(X)"、メイン=ペースト( "トレースプロットのxの[T]、シグマ="、シグマ)、COL = "赤"、タイプ= "L 「)
XMIN =分(X [(0.2 * chain.size):chain.size])
XMAX = MAX(X [(0.2 * chain.size):chain.size])
xs.lower =分(-4、XMIN )
xs.upper = MAX(4、XMAX)
XS < -配列(xs.lower、xs.upper、LEN = 1E3)
HIST(X [(0.2 * chain.size):chain.size]、50、XLIM = C (xs.lower、xs.upper)、COL = "青"、xlab = "X"、メイン= "メトロポリス - ヘイスティングス"、FREQ = FALSE)
ライン(XS、F(XS)、COL =「赤」、LWD = 1)
xのトレースプロット[T]、シグマ= 3
トレースプロット及びヒストグラムの面で今出力は、アルゴリズムがよく混合されていることを示唆していますすなわち、
メトロポリス・ヘイスティングス法からの出力は、ターゲット分布の良好な概要を提供します。
5つの
演習は
再びラボで探求問題を考えてみましょう1.。
3つのそれぞれに対する提案値が受け入れられる速度、監視するためのコード変更します
(σ= 20、0.2または3)上記のシナリオ。この分析はどのように調整する提案を決定するために助けることができる方法を説明
分散を。[15マークは】
•シナリオでは、X〜N(0、1)からの出力を用いて、X> 2、確率を推定します
メトロポリス・ヘイスティングス法。それぞれの場合のおおよその標準誤差を提供します。(あなたがいることを注意
真値0.02275にあなたの見積もりを比較することができます)[10マーク]
2.均一で独立サンプラー使用してベータ版(2.5、4.5)分布からのサンプリングを検討し
提案分布を。これを行うためのRコードを提供します。説明するためにあなたのコードからの出力を生成し
、あなたのアルゴリズムの性能を。
[25マーク]
ハンドイン日:11月13日12:00に

 

プロ、とても信頼できるので。必要であれば、追加してください QQを 99515681 またはEメール:[email protected] 

マイクロ手紙: codehelp

おすすめ

転載: www.cnblogs.com/spjava/p/11837447.html