5

Rのrunjagsパッケージは素晴らしいです。並列機能と関数を使用するextend.jags機能により、私の生活はとても良くなりました。ただし、モデルを実行した後で、バーンイン フェーズをもっと長くすべきだったことに気付くことがあります。run.jagsパラメータ分布を再推定して収束を確認できるように、出力から余分なサンプルを削除するにはどうすればよいですか?

jags.object <- run.jags(model, n.chains=3, data=data, monitor =c('a','b'), sample=10000)
4

2 に答える 2

6

残念ながら現在、runjags 内でこれを行う方法はありません。そのため、基礎となる mcmc.list オブジェクトを操作する必要があります。

library('coda')
mcmc.object <- as.mcmc.list(jags.object)
niter(mcmc.object)
windowed.object <- window(mcmc.object, start=10001)
summary(windowed.object)

window.mcmc の開始 (および終了) 引数にはバーンイン フェーズが含まれていることに注意してください。したがって、5000 バーンイン + 10000 サンプルがある場合、このコードは反復 10001:15000 を提供します。

ただし、runjags クラスのウィンドウ メソッドは良いアイデアであり、うまくいけばすぐに表示されるものです。

[combine=FALSE 引数をextend.jagsで使用して、反復の最初のロット全体を削除できることも注目に値するかもしれませんが、これには明らかに新しい反復を再サンプリングする必要があるため、正確に望むものではありません.]

また、パッケージについての親切な言葉に感謝します - フィードバックと機能の提案は、https ://sourceforge.net/p/runjags/forum/general/ でいつでも歓迎します :)

于 2016-06-24T14:48:13.347 に答える