gpt4 book ai didi

runjags 对象太大

转载 作者:行者123 更新时间:2023-12-01 12:43:58 25 4
gpt4 key购买 nike

我正在尝试使用新包运行 JAGS runjags ,因为 R2jags has a bug (完整的模型代码在问题 https://stats.stackexchange.com/q/62006/5509 中):

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))

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

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

runjags 对象很大,但我必须存储它以便以后在模型上使用 runjags 接口(interface)。

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

最佳答案

runjags 类的对象非常大,主要是因为它们存储了在它们停止的地方继续模拟所需的所有信息(模型/数据/RNG 状态)。如果你想要的只是 MCMC 链,那么你可以使用以下方法摆脱大部分:

as.mcmc.list(yourrunjagsobject)

...或者转换为可以直接与 rjags 包一起使用的东西:

as.jags(yourrunjagsobject)

另见 ?runjagsclass

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

我猜你也可以破解类对象以摆脱大组件,但更好的是使用提供的转换方法......

关于runjags 对象太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com