Что такое алгоритм зазубрин с дискретным правдоподобием и непрерывным - PullRequest
2 голосов
/ 11 июля 2019

Я пытаюсь понять следующий код 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? Отбор проб? или Метрополис Гастинг?

1 Ответ

2 голосов
/ 12 июля 2019

Вы всегда можете узнать, какие сэмплеры JAGS используют для стохастических переменных, используя rjags :: list.samplers - например:

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

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

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

В этом случае это говорит о том, что сэмплер среза используется для каждого из трех ненаблюдаемых стохастических узлов в вашей модели. Сэмплирование срезов является основной рабочей лошадкой в ​​JAGS, так что это довольно типично, за исключением случаев, когда доступен более эффективный (например, сопряженный) сэмплер (или если модуль GLM загружен для соответствующей модели).

...