首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R2OpenBugs中获得蒙特卡罗误差?

如何在R2OpenBugs中获得蒙特卡罗误差?
EN

Stack Overflow用户
提问于 2022-07-06 19:13:58
回答 2查看 37关注 0票数 1

在运行贝叶斯模型un R2OpenBugs时,是否有人设法获得了参数的蒙特卡罗误差?

它是在OpenBugs的标准输出中提供的,但是当在R2OpenBugs下运行时,日志文件没有MC error.Is --有一种方法可以要求R2OpenBugs计算MC错误吗?或者有一种手动计算的方法?拜托,如果你听说有什么办法的话请告诉我。谢谢!

下面是R2OpenBugs的标准日志输出:

代码语言:javascript
复制
$stats
              mean      sd val2.5pc    median val97.5pc sample
beta0      1.04700 0.13250   0.8130   1.03800   1.30500   1500
beta1     -0.31440 0.18850  -0.6776  -0.31890   0.03473   1500
beta2     -0.05437 0.05369  -0.1648  -0.05408   0.04838   1500
deviance 588.70000 7.87600 575.3000 587.50000 606.90000   1500

$DIC
       Dbar  Dhat   DIC    pD
t     588.7 570.9 606.5 17.78
total 588.7 570.9 606.5 17.78
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-15 09:51:23

计算蒙特卡罗标准误差(MCSE)的一个简单方法是将链的标准差除以有效样本数的平方根。输出中提供了标准偏差,但在打印模型输出时,有效样本大小应以n.eff (最右边列)的形式给出--或者至少是我从以下方面得到的印象:

https://cran.r-project.org/web/packages/R2OpenBUGS/vignettes/R2OpenBUGS.pdf

我不再使用OpenBugs了,所以不能轻易地为您检查,但是应该有指示有效样本大小的东西(这与您所采样的迭代次数不一样,因为它还考虑到由于链内关联而导致的信息丢失)。

否则,您可以自己提取原始MCMC链,然后使用coda包(?coda::effectiveSize)计算有效样本大小,或者直接使用LaplacesDemon::MCSE计算Monte标准误差。有关更多信息,请参见:

https://rdrr.io/cran/LaplacesDemon/man/MCSE.html

注意,有些人(包括我!)建议直接关注有效样本量,而不是看MCSE,因为旧的“经验法则”认为MCSE应小于样本标准差的5%,这相当于说有效样本量应至少为400 (1/0.05^2)。但意见各不相同:)

票数 0
EN

Stack Overflow用户

发布于 2022-07-23 10:43:27

MCMC被命名为时间序列SE,可以在coda对象的汇总的统计部分中找到:

代码语言:javascript
复制
library(R2OpenBUGS)
library(coda)
my_result <- bugs(...., codaPg = TRUE)
my_coda <- read.bugs(my_result)
summary(my_coda$statistics)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72888786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档