在R中编码后验分布

时间:2013-11-22 14:02:20

标签: r bayesian

这可能是一个荒谬的问题,但我对R(3周前开始)很新,但我正在运行一个Gibbs采样器,而且我是从非共轭分布中提取的。设置为Yi | mu~N(1,4 ^ 2),mu~N(0,1)和sig ^ 2~IG(2,1)。我对采样部分进行了编码,但是我无法对后验分布进行编码以创建要采样的数据。到目前为止我所拥有的是:

dev.new() #####Posterior predictive density ( ppd[1:lx] )for data on the grid x (new line)
#
lx = 200 (new line)
x = seq( min(yy) - .1*(max(yy) - min(yy)), 
     max(yy) + .1*(max(yy) - min(yy)), len = lx )

dev.new()
hist( yy, prob=T )

ppd = rep( 0, lx )

for( ii in 1:lx )
{
    ##### enter the code here, 
    ### ppd[ ii ] = mean( dnorm( .....
 }

 lines( x, ppd, col=2, lwd=2 )

1 个答案:

答案 0 :(得分:1)

我不知道Gibbs采样器是什么,只是搜索google
似乎分发的代码可能是:

gibbs<-function (n, rho) 
{
        mat <- matrix(ncol = 2, nrow = n)
        x <- 0
        y <- 0
        mat[1, ] <- c(x, y)
        for (i in 2:n) {
                x <- rnorm(1, rho * y, sqrt(1 - rho^2))
                y <- rnorm(1, rho * x, sqrt(1 - rho^2))
                mat[i, ] <- c(x, y)
        }
        mat
}

我认为来自同一页面的here会找到您想要的完整代码R. 在另一个page中,您可能会找到更多解释和示例