素朴な標準誤差
\(m\) のマルコフ連鎖の平均は、\(m\) の事後平均の推定値です。素朴な標準誤差(naive standard error)は、この推定値に含まれる潜在的な誤差の大きさを示す指標です。この指標を使って、適切な連鎖の長さを決定できます。たとえば、\(m\) の事後平均を標準誤差 0.1 ms 以内で推定することを目標とするとします。観測された素朴な標準誤差がこの目標を超えていても問題ありません。連鎖を長くするだけで解決できます。マルコフ連鎖を使って事後分布を近似する際の誤差は、連鎖の長さが増えるにつれて小さくなる傾向があります。
定義済みの sleep_model とコンパイル済みの sleep_jags オブジェクトを使って作業を進めましょう。
この演習はコースの一部です
RJAGS によるベイズモデリング
演習の手順
\(m\) と \(s\) の事後モデルから 1,000 サンプルをシミュレートし、結果を
sleep_sim_1に保存します。sleep_sim_1の連鎖のsummary()を確認します。\(m\) 連鎖の素朴な標準誤差が目標値 0.1 を超えている場合は、シミュレーションを調整します。1,000 の代わりに 500 または 10,000 のサンプル数を試してみましょう。結果は
sleep_sim_2に保存します。sleep_sim_2の連鎖のsummary()を確認します。新しいシミュレーションが基準を満たしているか検証しましょう。満たしていない場合は、前の手順に戻って繰り返します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# SIMULATE the posterior
sleep_sim_1 <- coda.samples(model = ___, variable.names = c("m", "s"), n.iter = ___)
# Summarize the m and s chains of sleep_sim_1
# RE-SIMULATE the posterior
sleep_sim_2 <- coda.samples(model = ___, variable.names = c("m", "s"), n.iter = ___)
# Summarize the m and s chains of sleep_sim_2