基于后验样本的R,HPD(最高后验密度)区间,WinBUGS

  • 本文关键字:区间 WinBUGS HPD 样本 r winbugs
  • 更新时间 :
  • 英文 :


如何根据后验样本计算HPD(最高后验密度(区间?我有四个参数,我从后验参数分布中生成1000个样本。现在如何在R软件中计算HPD。我使用了包代码,但我得到了一个错误,

HPDinterval(winbugsresult$sims.list,prob=0.05)
Error in UseMethod("HPDinterval") : 
no applicable method for 'HPDinterval' applied to an object of class "list"

其中";winbugsresult"是一个包含后验样本的列表。

我还使用了一个向量,我得到了以下错误

HPDinterval(winbugsresult$sims.list$alpha ,prob=0.05)
Error in UseMethod("HPDinterval") : 
no applicable method for 'HPDinterval' applied to an object of class "c('double', 'numeric')"

我只使用了一个来自正常的随机矢量,我再次出现错误

HPDinterval(rnorm(100))
Error in UseMethod("HPDinterval") : 
no applicable method for 'HPDinterval' applied to an object of class "c('double', 'numeric')"

我不太确定winbugsresult$sims.list的结构是什么(你可以编辑你的答案以包括str(winbugsresult$sims.list)(,但用as.mcmc()转换数字向量矩阵会给你一个可以传递给HPDinterval的对象,例如

library(coda)
HPDinterval(as.mcmc(rnorm(1000)))
HPDinterval(as.mcmc(matrix(rnorm(1000),ncol=10)))  # matrix

最新更新