runjags摘要中的psrf值太低了?

时间:2014-11-20 11:01:10

标签: r jags runjags

对于显然存在收敛问题的链,Runjags报告的psrf = 1.0047非常低:

enter image description here

> 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

当我尝试使用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

那么为什么runjags报告的psrf如此之低?这是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

1 个答案:

答案 0 :(得分:1)

出现(从离线发送给我的信息)psrf正在被正确计算,但由于某些信息不适用于某些半随机监测变量,因此报告不按顺序报告。这个软件没有被软件选中的事实是我将要修复的错误!

与此同时,您可以(a)忽略输出中列出的摘要()中的psrf,而使用RJout $ psrf(或您自己的代码),或者(b)删除受监视的变量(在这种情况下为M) )导致问题的原因。 runjags的开发版本具有更好的解决方案(在返回模型后(摘要)计算汇总统计数据和绘图),并且在接下来的几个月内应该在CRAN上。

这也是一个很好的提醒,手动检查痕量图是MCMC分析的重要组成部分:)