我有一个关于在 JAGS 和 BUGS 中运行模型的详细信息的快速问题。
n.burnin=5000
假设我使用和运行n.iter=5000
模型thin=2
。这是否意味着该程序将:
- 运行 5,000 次迭代,并丢弃结果;接着
- 再运行 10,000 次迭代,只保留每秒的结果?
如果我将这些模拟保存为一个CODA
对象,是全部保存了 10,000 个,还是只保存了稀疏的 5,000 个?我只是想了解使用哪组迭代来制作 ACF 图?
使用 JAGS, n.burnin=5000, n.iter=5000 and thin=2
, 意味着你什么也不保留。您运行 5000,丢弃这 5000 个中的前 5000 个,然后只保留链中剩余值的一半(保留 1 个值并丢弃下一个 ..)。
使用例如n.burnin=2000, n.iter=7000, thin=50, n.chains=5
:所以你有 (7000-2000)/50 * 5 = 500 个值。
您能否更具体地说明您在谈论哪个软件?看起来您指的是 R2WinBUGS 包中函数 bugs() 的参数(除了该参数称为 n.thin not thin)。查看帮助(错误)它只是说 n.burnin 是“开始时要丢弃的迭代次数”。这并没有具体回答您的问题,但是查看该包中 bugs.script() 的源代码向我表明,正如您所怀疑的那样,它将运行 5000 次迭代。您可以向该软件包的维护者发送建议,以澄清他们的文档。
在您的示例中, bugs() 将在老化后运行 0 次进一步迭代。这里的文档更清楚 - n.iter 是包括老化在内的迭代总数。
对于您的第二个问题,WinBUGS(以及任何调用 WinBUGS 或 OpenBUGS 的软件)的 CODA 输出将仅包括精简样本。