Statistical modelling is used throughout the sciences. Often, statistical analyses require custom models that cannot be fitted using off-the shelf statistical software. These models can be specified in a statistical syntax and can then be automatically fit to data using methods such as Markov Chain monte Carlo (MCMC) and maximum likelihood. This lets users focus on the statistical nature of the model, rather than implementation details and inference procedures. Since the development of the widely successful WinBUGS (later developed as OpenBUGS; Spiegelhalter, Thomas, Best, & Lunn (2014)) a number of alternative software packages for custom statistical modelling have been introduced, including JAGS, Stan, and NIMBLE (Carpenter et al., 2017; de Valpine et al., 2017; Plummer & others, 2003). In these software packages, users typically write out models in a domain-specific language, which is then compiled into computational code. Though see the Python packages PyMC and Edward (Salvatier, Wiecki, & Fonnesbeck, 2016; Tran et al., 2016) in which models are specified in Python code.
[1]
Brian D. Ripley,et al.
Modern Applied Statistics with S Fourth edition
,
2002
.
[2]
John Salvatier,et al.
Probabilistic programming in Python using PyMC3
,
2016,
PeerJ Comput. Sci..
[3]
Dustin Tran,et al.
Edward: A library for probabilistic modeling, inference, and criticism
,
2016,
ArXiv.
[4]
Martyn Plummer,et al.
JAGS: A program for analysis of Bayesian graphical models using Gibbs sampling
,
2003
.
[5]
Duncan Temple Lang,et al.
Programming With Models: Writing Statistical Algorithms for General Model Structures With NIMBLE
,
2015,
1505.05093.
[6]
M. Plummer,et al.
CODA: convergence diagnosis and output analysis for MCMC
,
2006
.
[7]
Jiqiang Guo,et al.
Stan: A Probabilistic Programming Language.
,
2017,
Journal of statistical software.
[8]
Martín Abadi,et al.
TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems
,
2016,
ArXiv.