0

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

在此处输入图像描述

> 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

当我尝试计算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

那么为什么psrfrunjags 的报告如此之低呢?这是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 回答