2

我通过从 R 运行 Winbugs 进行了贝叶斯分析,并得出了拟合值及其贝叶斯区间。这是相关的 Winbugs 输出,其中 mu[i] 是第 i 个拟合值。

node     mean   2.5%    97.5%   
mu[1]   0.7699  0.6661  0.94    
mu[2]   0.8293  0.4727  1.022   
mu[3]   0.7768  0.4252  0.9707  
mu[4]   0.6369  0.4199  0.8254  
mu[5]   0.7704  0.5054  1.023   

我想要做的是找到这 5 个拟合值的平均值的贝叶斯区间。知道怎么做吗?

4

2 回答 2

2

Chris Jackson 的答案是正确的,但是,如果您的模型已经运行了几个小时,您将不会高兴,因为这意味着修改模型并再次运行它。但是您可以在后处理中实现 R 中的目标,而无需再次运行模型 - 通过取后验样本的平均值:

out <- bugs(...)
sapply(out$sims.list$mu, mean, ...) # I'm not sure exactly about the structure of
                                    # out$sims.list$mu, so it might be slightly 
                                    # different
于 2013-01-28T11:06:46.413 回答
1

在 WinBUGS 模型代码中定义另一个节点

mu.mean <- 均值(mu[])

并监控它?

于 2013-01-14T12:44:22.890 回答