Rパッケージを使用して現在Rで実行しているJAGS分析のGelmanとRubinの収束診断を計算しようとしていますrjags
。
たとえば、パラメーター の収束診断を評価したいと考えていますbeta
。これを行うために、ライブラリ coda とコマンドを使用しています。
library(coda)
gelman.diag(out_2MCMC$beta)
複数のチェーンを持つout_2MCMC
MCMC リスト オブジェクトであるため、エラー メッセージなどのない正しい出力が得られます。ただし、バーンインとして大量の反復を使用したため、反復のサブセットのみ (バーンイン後の部分のみ!) の収束診断を計算したいと思います。
これを行うために、私は試しました:
gelman.diag(out_2MCMC$beta[,10000:15000,])
これにより、次のエラーが発生しました。
Error in mcmc.list(x) : Arguments must be mcmc objects
したがって、私は試しました:
as.mcmc(out_2MCMC$beta[,10000:15000,]))
しかし、驚くべきことに、これにより次のエラーが発生しました。
Error in gelman.diag(as.mcmc(out_2MCMC$beta[, 10000:15000,]))
You need at least two chains
これは、JAGS 分析から取得したものと同じ MCMC リスト オブジェクトであり、すべての反復の収束診断を評価するときに使用しているものと同じであるため (これは完璧に機能します)、ここに問題はありません。
関数自体は、収束診断の計算でシリーズ (反復) の後半を使用するオプションのみを提供します。私のバーンインフェーズはそれよりも長いので、残念ながらこれでは十分ではありません。
私が見逃しているのは非常に明白なことだと思います。誰か提案やヒントはありますか?
コードが多いため、完全な 2MCMC-JAGS 分析を実行するための R コードは提供しませんでした。上記のコードが問題を十分に示していることを願っています。誰かが以前に同じ問題に遭遇したか、私の構文の間違いを認識した可能性があります。ただし、私の問題を理解するために完全なコードが必要だと思われる場合は、2MCM JAGS 分析を実行するサンプル コードを提供できます。