使用rjags中的尾波样本进行诊断

使用rjags中的尾波样本进行诊断,r,coda,jags,R,Coda,Jags,我对Bayes和JAGS都是新手,所以请原谅我的无知 我收到了一个使用JAGS代码编写的R脚本(由同事发送) 本规范的作者将尾波样本集定义如下: codaSamples = coda.samples( jagsModel , variable.names=parameters , n.iter=nPerChain , thin=thinSteps ) 我希望取得以下成果,但成功有限: Gelman diagnostics:我使用了“sh

我对Bayes和JAGS都是新手,所以请原谅我的无知

我收到了一个使用JAGS代码编写的R脚本(由同事发送)

本规范的作者将尾波样本集定义如下:

codaSamples = coda.samples( jagsModel , variable.names=parameters , 
                            n.iter=nPerChain , thin=thinSteps )
我希望取得以下成果,但成功有限:

Gelman diagnostics:我使用了“show(Gelman.diag(codaSamples)),这对于单个模拟来说很好。但是,对于每个感兴趣的模拟,如何将每个gelman诊断、每个参数输出到一个文件?更有趣的是,是否可以只记录Rhat值大于1.1的模拟比例

密度图:我使用了“show(densplot(codaSamples))”。但是,这会在单独的绘图上生成每个绘图(我在模型中有96个参数)。是否存在与“autocorr.plot”等价的内容,即每页放置几个绘图

分位数:我使用了“show(summary(codaSamples))”,但尽管这给出了每个参数的平均值、标准差和具体的分位数(这是我想要的),它也给出了MCMC矩阵。是否存在只指定每个参数的基本统计特性的方法

后验分布:是否有方法计算每个参数的给定值(如零)位于下/上的百分位数?然后总结所有模拟

提前感谢您提供的任何帮助。

  • 使用以下内容记录gelman输出:
write.csv(gelman.diag(codaSamples)$psrf,file=“gelman.csv”)

  • 要绘制mcmc的密度:
    mcmc
    对象具有特定的S3类
    mcmc.list
    so
    class(codaSamples)
    应返回
    mcmc.list
    。对于此类具有参数的对象,有一个
    plot
    S3方法:
    trace
    density
绘图(codaSamples,trace=FALSE,density=TRUE)

这应该符合你的期望

  • 摘要(codaSamples)给出了参数的后验概率统计。我不确定我是否理解这个问题,但codaSamples是一个长度的
    列表
    :链的数量,列:估计的参数,行:链的每个迭代。因此,您可以使用此对象或子对象(
    分位数
    ,…)计算所需的所有统计信息。 例如,第一个参数的分位数:
分位数(codaSamples[[1]][,1])

[[1]]
,因为我使用第一个链和
[,1]
作为第一个参数

要查看对象的结构,需要使用
str()
。使用此功能,可以选择所需的所有子对象