0

Runjags はpsrf = 1.0047、明らかに収束の問題があるチェーンに対して非常に低いと報告しています。

ここに画像の説明を入力

> print(o, vars = "q_date2")

JAGS model summary statistics from 3000 samples (chains = 3; adapt+burnin = 1000):

         Lower95   Median   Upper95      Mean       SD    MCerr MC%ofSD SSeff    AC.10   psrf
q_date2 -0.17611 -0.10467 0.0053844 -0.087376 0.063296 0.023726    37.5     7 0.022495 1.0047

using codaを計算しようとすると、psrfより合理的に見える結果が得られます。

> gelman.diag(as.mcmc.list(o)[,'q_date2'], transform=FALSE, autoburnin=FALSE)
Potential scale reduction factors:

     Point est. Upper C.I.
[1,]       3.54       7.94

psrfでは、runjags による報告がこれほど低いのはなぜでしょうか。それはrunjagsの問題ですか、それとも何か間違っていますか?

R 3.1.0 で現在のバージョンの runjags (1.2.1-0) を使用しています。

編集:要約の作成中に警告が表示されました-前に言及しなかったことをお詫びします:

Warning messages:
1: In autocorrs[x$stochastic] <- x$autocorr[4, ] :
  number of items to replace is not a multiple of replacement length
2: In psrfs[x$stochastic] <- x$psrf$psrf[, 1] :
  number of items to replace is not a multiple of replacement length
4

1 に答える 1

1

(オフラインで私に送られた情報から) psrf は正しく計算されているように見えますが、一部の半確率的監視変数については一部の情報が利用できないため、順不同で報告されています。これがソフトウェアによって検出されないという事実は、私が修正するバグです!

当面は、(a) summary() の出力にリストされている psrf を無視して、代わりに RJout$psrf (または独自のコード) を使用するか、(b) 監視対象の変数 (この場合は M) を削除します。問題の原因。runjags の開発バージョンにはさらに優れたソリューションがあり (モデルが返された後に要約統計とプロットが (再) 計算されます)、今後数か月以内に CRAN に実装される予定です。

これはまた、トレース プロットの手動チェックが MCMC 分析の重要な部分であることを思い出させてくれます :)

于 2014-11-20T15:03:57.157 に答える