我正在尝试为我目前使用 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 列表对象相同,并且与我在评估所有迭代的收敛诊断时使用的相同(它工作得非常完美),我在这里看不到问题。
该函数本身仅提供在收敛诊断计算中使用系列的后半部分(迭代)的选项。由于我的老化阶段比这更长,不幸的是这对我来说还不够。
我想这是很明显的事情,我只是想念。有没有人有任何建议或提示?
由于代码很多,我没有提供 R 代码来运行完整的 2MCMC-JAGS 分析。我希望上面的代码能够很好地说明问题,也许有人以前遇到过同样的问题,或者识别出我的语法中的任何错误。但是,如果您觉得需要完整的代码来理解我的问题,我仍然可以提供运行 2MCM JAGS 分析的示例代码。