マルコフ連鎖のトレースプロット
トレースプロットは、マルコフ連鎖の時系列的な挙動を可視化するグラフです。具体的には、\(m\) 連鎖のトレースプロットは、x 軸に反復番号、y 軸に連鎖の観測値をプロットします。
\(m\) 連鎖のトレースプロットを、2 つの方法で作成しましょう。1 つ目は、組み込みの plot() 関数を mcmc.list オブジェクトの sleep_sim に適用する方法です。2 つ目は、グラフをより細かく制御するために(後の章での分析でも役立ちます)、data.frame オブジェクトの sleep_chains に ggplot() を適用する方法です。sleep_sim と sleep_chains はどちらもワークスペースに用意されています。
sleep_sim <- coda.samples(model = sleep_jags, variable.names = c("m", "s"), n.iter = 10000)
sleep_chains <- data.frame(sleep_sim[[1]], iter = 1:10000)
この演習はコースの一部です
RJAGS によるベイズモデリング
演習の手順
sleep_simに対してdensity = FALSEを指定してplot()を適用し、\(m\) 連鎖と \(s\) 連鎖のトレースプロットを作成します。注意:記録された 10,000 回の反復は、サンプルが破棄される「バーンイン」期間の後から始まります。そのため、反復カウントは 1 からスタートしません。sleep_chainsに対してgeom_line()レイヤーを加えたggplot()を適用し、\(m\) 連鎖のトレースプロットを再作成します。ズームイン:\(m\) 連鎖の最初の 100 反復に絞ったトレースプロットを
ggplot()で作成します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Use plot() to construct trace plots of the m and s chains
# Use ggplot() to construct a trace plot of the m chain
ggplot(___, aes(x = ___, y = ___)) +
geom_line()
# Trace plot the first 100 iterations of the m chain
ggplot(___, aes(x = ___, y = ___)) +
geom_line()