I’ll describe Stan’s probabilistic programming language, and how it’s used. I’ll also provide an overview of the underlying algorithms for log density and derivative calculations, and inference with full Bayes, approximate Bayes, and maximum likelihood. I’ll also briefly describe the user-facing interfaces: RStan (R), PyStan (Python), CmdStan (command line), Stan.jl (Julia), etc.
I’ll describe Stan’s probabilistic programming language, and how it’s used, including
• blocks for data, parameter, and predictive quantities • transforms of constrained parameters to unconstrained spaces, with automatic Jacobian corrections • automatic computation of first- and higher-order derivatives • operator, function, and linear algebra library • vectorized density functions, cumulative distributions, and random number generators • user-defined functions • differential equation solvers
I’ll also provide an overview of the underlying algorithms for log density and derivative calculations, and inference with full Bayes, approximate Bayes, and maximum likelihood:
• adaptive Hamiltonian Monte Carlo for Markov-chain Monte Carlo sampling • L-BFGS optimization and transforms for maximum likelihood estimation • Automatic differentiation variational inference (ADVI) for variational inference
I’ll also briefly describe the user-facing interfaces: RStan (R), PyStan (Python), CmdStan (command line), Stan.jl (Julia), MatlabStan (MATLAB), MathematicaStan (Mathematica)
I’ll finish with an overview of the what’s on the immediate horizon:
• GPU matrix operations • MPI multi-core, multi-machine parallelism • data parallel expectation propagation for approximate Bayes • marginal Laplace approximations