如何从 mcmc.list 生成类似于 plot.bugs 和 plot.jags 生成的图?

机器算法验证 r 数据可视化 锯齿 错误
2022-03-17 06:55:06

R 似乎能够从函数R2WinBUGS::bugsbugsR2jags : jags 生成的对象中输出漂亮的摘要图。jags

但是,我正在使用该rjags软件包。当我尝试rjags::coda.samples使用结果绘制函数R2WinBUGS::plot.mcmc.list的结果时,结果是每个参数的诊断图(参数密度、链时间序列、自相关)。

下面是我想要制作的情节类型,来自 Andrew Gelman 的教程“Running WinBuugs and OpenBugs from R”这些是使用plot.pugs.

问题是它plot.bugs接受一个bugs对象作为参数,而plot.mcmc.list输出coda.samples.

这是一个示例(来自coda.samples):

 library(rjags)
 data(LINE)
 LINE$recompile()
 LINE.out <- coda.samples(LINE, c("alpha","beta","sigma"), n.iter=1000)
 plot(LINE.out)

我需要的是要么

  • 一种生成类似的、信息丰富的单页摘要图的方法,类似于由plot.bugs
  • 将转换LINE.out为错误对象的函数或

在此处输入图像描述

2个回答

由于没有答案,我至少会发布我到目前为止所获得的信息:

包中的as.bugs.array函数R2WinBUGS就是为此目的而创建的。根据文档(?as.bugs.array):

将马尔可夫链模拟的结果(可能不是来自 BUGS)的函数转换为错误对象。主要用于显示带有 plot.bugs 的结果。

因此,可以从LINE.out您的示例中获得一个图,尽管它没有绘制正确的变量:

plot(as.bugs.array(sims.array = as.array(LINE.out)))        

确定转换 的正确方法需要更多的工作LINE.out,并且LINE.samples对象 fromexample(jags.samples)可能是一个更容易开始的地方。

以下似乎对我有用:

require(R2jags)
m <-jags(data=d,inits=i,pars,n.iter=1000,n.chains=3,model.file="foo.txt",DIC=F)
m <- autojags(m)
plot(m)

这是一个可重现的示例:

example(jags)
plot(jagsfit)