这可能是一个荒谬的问题,但我对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 )
答案 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
}