martyn plummer jags
TRANSCRIPT
JAGS: Just Another Gibbs Sampler
Martyn Plummer
International Agency for Research on Cancer
Ecological Forecasting WorkshopMarch 2014
Goals/Aims
I Portable implementation of BUGS languageI Interface to other software:
I User interface to RI Back-end interfact to C/C++/Fortran libraries
I Extensible
I A platform for experimenting with ideas in Bayesian modelling
History
Version Release Date
0.1 December 20021.0 December 20072.0.0 April 20103.0.0 August 20113.4.0 September 2013
I JAGS became feasible when theR Math functions becameavailable as a standalone library.
I JAGS has been in aconsolidation phase, with nochanges to the library API sinceAugust 2011
Technical Implementation
Very much like OpenBUGS:
I User writes a description of the model in the BUGS language
I An interpreter creates a virtual graphical model (VGM)
I Sampler factories inspect the VGM looking for design motifsto sample.
I User runs MCMC updates, monitoring mixing and convergence
But also not like OpenBUGS:
I No GUI.
I No output processing: use R or another package.
I Core library with dynamically loadable modules that providefunctions, distributions, samplers and monitors.
Strengths
I Portable (Windows, Mac OS X, Linux)
I Several R interfaces (rjags, R2jags, runjags)
I Widely used (> 10000 downloads of 3.3.0 - but I don’t knowwho these people are)
Limitations
For the user:
I High memory overhead (inherent to VGM design)
I Lack of support for Gaussian Markov Random Fields
For the developer:
I Lack of developer documentation
I No critical mass
Applications
I In my own field (epidemiology), there are standard models formost study designs
I But sources of “complexity” perturb the model outside therange of these standard models:
I Repeated measurements, hierarchical structure, missing data,measurement error, ...
I We use JAGS to build models that can be adapted to copewith complexity.
Current and future development
Disclaimer: there is no timeline on any of this
I HMC for GLMMs
I ParallelismI Compiler overhaul:
I if/else statementsI vectorized indexingI local variables in loops
I Potentials (Likelihoods that do not correspond to adistribution)
I Better treatment of censored survival data