1

データが $Poisson(\lambda)$ サンプリング密度を持つ実験を行うとします。パラメータ $\alpha$ および $\beta$ でガンマ事前密度を使用した $\lambda$ に関する私の不確実性。また、独立したガンマ事前密度を使用して、$\alpha$ と $\beta$ についての不確実性についても説明します。

$\lambda$、$\alpha$、および $\beta$ の事後密度を計算する MCMC アルゴリズムを実装しようとしています。以下のコードの何が問題になっていますか? 受け入れ率が0になっています。

obs <- rpois(50, 5)

m <- 100000
x <- matrix(NA, nrow=m, ncol=3)
x[1,] <- c(5, 1, 1)
accept <- 0
sd1 <- 2
sd2 <- 2
sd3 <- 2

post <- function(lambda, alpha, beta) {
  prod(dpois(x, lambda))*dgamma(lambda, 
 alpha,beta)*dgamma(alpha,1,1)*dgamma(beta,1,1)} 

for(i in 2:m){
  xc <- c(rnorm(2, x[i-1,1]-sd1,x[i-1,1]+sd1),runif(1,x[i-1,2]-sd2,x[i-
1,2]+sd2), runif(1,x[i-1,3]-sd3, x[i-1,3]+sd3))
  if (post(xc[1], xc[2], xc[3])/post(x[i-1,1],x[i-1,2], x[i-1,3]) > runif(1)){
    x[i,] <- xc; accept <- accept + 1
  } else{
    x[i,] <- x[i-1,]
 }
}
accept/m
4

0 に答える 0