R 的 runjags
包非常棒。并行能力和使用 extend.jags
函数的能力让我的生活变得更好。然而,有时,在我运行模型后,我意识到老化阶段应该更长。如何从我的 run.jags
输出中修剪额外的样本,以便我可以重新估计我的参数分布并检查收敛?
jags.object <- run.jags(model, n.chains=3, data=data, monitor =c('a','b'), sample=10000)
最佳答案
不幸的是,目前无法在 runjags 中执行此操作,因此您必须使用底层 mcmc.list 对象 - 类似于:
library('coda')
mcmc.object <- as.mcmc.list(jags.object)
niter(mcmc.object)
windowed.object <- window(mcmc.object, start=10001)
summary(windowed.object)
请注意,window.mcmc 的开始(和结束)参数包括阶段性刻录,因此如果您有 5000 次刻录 + 10000 个样本,那么此代码为您提供迭代 10001:15000
然而,runjags 类的窗口方法将是一个好主意,希望很快就会出现!
[可能还值得注意的是,您可以使用带有 extend.jags 的 combine=FALSE 参数来删除整个第一批迭代,但这显然需要重新采样新迭代,所以这不是您想要的。]
另外 - 感谢您对包的客气话 - https://sourceforge.net/p/runjags/forum/general/ 始终欢迎反馈和功能建议 :)
关于r - 在 R 的 runjags 中运行 JAGS 模型后延长老化期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37998391/