首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rjags与r2jags的差异

rjags与r2jags的差异
EN

Stack Overflow用户
提问于 2018-06-08 10:32:54
回答 1查看 2.9K关注 0票数 4

为了进行贝叶斯分析,我使用了这两个包,但是有一些我不明白的区别:

首先,包rjags允许具有jags.model函数的适配阶段,而包r2jags不具有此阶段,而函数jags (或jags.parallel)则开始从后验分布中取样。适应性阶段是否包含在该函数中,还是包r2jags不考虑它?

其次,在rjags中,我可以说这两段代码是相似的吗?

代码语言:javascript
复制
jmod <- jags.model(file="somefile.txt", data = data, n.chains=3)
update(jmod,100)
jsample <- coda.samples(jmod, n.iter=100, variable.names=par)

代码语言:javascript
复制
jmod <- jags.model(file="somefile.txt", data = data, n.chains=3)
jsample <- coda.samples(jmod, n.iter=200,n.burnin=100, variable.names=par)

也就是说,update函数的烧成阶段也可以在coda.samples函数中完成?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-14 04:32:25

R2jags是一个运行rjags的过头函数.它的目的是使执行包描述中描述的一些事情更容易一些,比如运行直到聚合,或者并行化MCMC链。

如果您查看R2jags中的R2jags函数(例如,通过查看源代码或只在R控制台中不带括号地输入jags ),您会发现在函数末尾附近有以下调用(链接github版本上的第151-177行):

代码语言:javascript
复制
  m <- jags.model(model.file,
                  data     = data,
                  inits    = init.values,
                  n.chains = n.chains,
                  n.adapt  = 0 )

  adapt( m,
         n.iter         = n.adapt,
         by             = refresh,
         progress.bar   = progress.bar,
         end.adaptation = TRUE )

  samples <- coda.samples( model          = m,
                           variable.names = parameters.to.save,
                           n.iter         = ( n.iter - n.burnin ),
                           thin           = n.thin,
                           by             = refresh,
                           progress.bar   = progress.bar )

因此,R2jags::jagsjags.model编译模型,用adapt修改模型,然后用coda.samples迭代后验样本。

你的两个电话不是完全等同的。在第一个你:

  1. jags.model编译和适应,
  2. 使用update更新100个迭代,然后
  3. coda.samples更新和从后面进行100次迭代。

在你的第二个

  1. jags.model编译和适应,
  2. coda.samples更新并从后部进行200次迭代。

也就是说,你的后验样本来自更多的迭代,但是在方法2中没有额外的“烧伤”阶段,在jags.model中隐含的适应性之后。n.burninrjags中没有任何用处,只在R2jags中使用;请参阅上面的jags函数代码中的coda.samples调用,而前面的在第77行则指定n.adapt <- n.burnin

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50758693

复制
相关文章

相似问题

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