首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >runjags对象太大了。

runjags对象太大了。
EN

Stack Overflow用户
提问于 2014-02-17 19:03:43
回答 1查看 678关注 0票数 3

我试图使用一个新的包龙贾格运行JAGS,因为R2jags有一个bug (完整的模型代码在问题https://stats.stackexchange.com/q/62006/5509中):

代码语言:javascript
复制
require("runjags")
out <- run.jags("Poisson.OD.t.test.txt", params, win.data, nc, inits,
      nb*4/5, ni, nb*1/5)
plot(out2, layout = c(4, 2))

这个包的缺点是,由runjags函数返回的run.jags对象已经与准备好的图表和输出捆绑在一起,而且太大了。作为比较,相应的.Rdata文件的大小(2个链,每个链保存了500个迭代,总共有1000个迭代):

  • runjags对象-1.2MB
  • R2jags对象- 212 kB
  • mcmc.list对象- 33 kB

runjags对象是巨大的,但是为了以后能够在模型上使用runjags接口,我必须存储它。

这个问题有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-18 16:25:55

runjags的对象相当大,主要是因为它们存储所有需要的信息(模型/数据/RNG状态),以便在停止时继续模拟。如果您想要的只是MCMC链,那么您可以使用以下方法消除其中的大部分内容:

as.mcmc.list(yourrunjagsobject)

将...or转换为可以直接与rjags包一起使用的内容:

as.jags(yourrunjagsobject)

另见?runjagsclass

或者,如果您有与打印/摘要相关的存储问题,并希望保留模型/数据/RNG状态,请尝试summarise=FALSEplot=FALSE to run.jags(),这将防止在初始函数调用期间生成/存储这些数据。

您还可以对类对象进行黑客攻击,以摆脱我猜想的大型组件,但使用提供的转换方法要好得多.

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

https://stackoverflow.com/questions/21837221

复制
相关文章

相似问题

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