为什么JAGS中手动编程偏差和DIC计算偏差不同?

时间:2015-03-21 02:57:14

标签: jags

我目前正在JAGS中安装一组16个模型。我有一个jags函数计算结果变量的每个值的概率的对数,另一个函数采用-2 *这些对数概率的总和。即,我有一个自定义公式来计算每个模型的偏差。我想检查一下我对偏差的定义与JAGS使用的相同。

运行5000次burnin和5000次迭代后,我得到了以下结果: enter image description here

基本上,对于某些模型,偏差很接近但不完全相同,而对于其他模型(例如,7,13,16)则差异很大。

为什么使用我的自定义公式计算的偏差与使用基于DIC的自动方法获得的偏差不同?

1 个答案:

答案 0 :(得分:0)

经过一番乱搞后,我认为情况如下。

首先,使用对主要参数估计的离散样本集获得DIC偏差。因此,由于MCMC估计的固有随机方面,估计在运行之间会有所不同。

假设链长很长(几千)并且燃烧足够,那么如果模型收敛且合理有效,则主样本和DIC样本之间的差异应该很小。因此,模型收敛问题可能会出现很大的差异。

这一切都假设原始偏差计算编程正确。