3

我有一个关于在 JAGS 和 BUGS 中运行模型的详细信息的快速问题。

n.burnin=5000假设我使用和运行n.iter=5000模型thin=2。这是否意味着该程序将:

  1. 运行 5,000 次迭代,并丢弃结果;接着
  2. 再运行 10,000 次迭代,只保留每秒的结果?

如果我将这些模拟保存为一个CODA对象,是全部保存了 10,000 个,还是只保存了稀疏的 5,000 个?我只是想了解使用哪组迭代来制作 ACF 图?

4

2 回答 2

2

使用 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 个值。

于 2014-05-06T07:14:32.080 回答
0

您能否更具体地说明您在谈论哪个软件?看起来您指的是 R2WinBUGS 包中函数 bugs() 的参数(除了该参数称为 n.thin not thin)。查看帮助(错误)它只是说 n.burnin 是“开始时要丢弃的迭代次数”。这并没有具体回答您的问题,但是查看该包中 bugs.script() 的源代码向我表明,正如您所怀疑的那样,它将运行 5000 次迭代。您可以向该软件包的维护者发送建议,以澄清他们的文档。

在您的示例中, bugs() 将在老化后运行 0 次进一步迭代。这里的文档更清楚 - n.iter 是包括老化在内的迭代总数。

对于您的第二个问题,WinBUGS(以及任何调用 WinBUGS 或 OpenBUGS 的软件)的 CODA 输出将仅包括精简样本。

于 2013-02-05T14:31:45.940 回答