2

我正在尝试理解以下 rjags 代码。

 library(rjags)

 set.seed(1)
 N <- 10
 p <- rep(10,N)


 cat("


 model {
 for (i in 1:N) {
 p[i] ~ dpois(lambda)
  }
 lambda <- 2*exp(-2*alpha*3)/(2*pow(4,2))
 alpha ~ dnorm(beta,tau)T(0,0.2)
 beta ~ dnorm(0,10000)
 tau ~ dgamma(2,0.01)
  }", file= "example1.jag")


  jags <- jags.model('example1.jag',data = list( "N" = N,"p"=p))
 update(jags, 16000)
 out_ex1<-jags.samples(jags, 'alpha',4000)
 out_ex1$alpha

它具有泊松似然和正态先验,因此吉布斯采样没有封闭形式。那么这里使用的是什么MCMC方法呢?ARS?切片采样?还是大都会黑斯廷?

4

1 回答 1

3

您始终可以使用 rjags::list.samplers 找出 JAGS 用于随机变量的采样器 - 例如:

> list.samplers(jags)
$`base::RealSlicer`
[1] "alpha"

$`base::RealSlicer`
[1] "beta"

$`base::RealSlicer`
[1] "tau"

在这种情况下,这告诉您模型中三个未观察到的随机节点中的每一个都使用了切片采样器。切片采样是 JAGS 中的主要主力,因此这是非常典型的,除非有更有效的(例如共轭)采样器可用(或者如果为适当的模型加载了 GLM 模块)。

于 2019-07-12T11:38:27.880 回答