Supriya Ghosh (Editor)

Stan (software)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Original author(s)
  
Stan Development Team

Written in
  
C++

Development status
  
Active

Initial release
  
August 30, 2012 (2012-08-30)

Stable release
  
2.14.0 / December 26, 2016 (2016-12-26)

Repository
  
github.com/stan-dev/stan

Stan is a probabilistic programming language for statistical inference written in C++. The Stan language is used to specify a (Bayesian) statistical model with an imperative program calculating the log probability density function.

Contents

Stan is licensed under the New BSD License. Stan is named in honour of Stanislaw Ulam, pioneer of the Monte Carlo method.

Interfaces

Stan can be accessed through several interfaces:

  • CmdStan - command-line executable for the shell
  • RStan - integration with the R software environment
  • PyStan - integration with the Python programming language
  • MatlabStan - integration with the MATLAB numerical computing environment
  • Stan.jl - integration with the Julia programming language
  • StataStan - integration with Stata
  • Algorithms

    Stan implements gradient-based Markov chain Monte Carlo (MCMC) algorithms for Bayesian inference, stochastic, gradient-based variational Bayesian methods for approximate Bayesian inference, and gradient-based optimization for penalized maximum likelihood estimation.

  • MCMC algorithms:
  • No-U-Turn sampler (NUTS), a variant of HMC and Stan's default MCMC engine
  • Hamiltonian Monte Carlo
  • Variational inference algorithms:
  • Black-box Variational Inference
  • Optimization algorithms:
  • Limited-memory BFGS (Stan's default optimization algorithm)
  • Broyden–Fletcher–Goldfarb–Shanno algorithm
  • Laplace's method for classical standard error estimates and approximate Bayesian posteriors
  • Automatic differentiation

    Stan implements reverse-mode automatic differentiation to calculate gradients of the model, which is required by HMC, NUTS, L-BFGS, BFGS, and variational inference. The automatic differentiation within Stan can be used outside of the probabilistic programming language.

    Usage

    Stan is used in fields including social science and pharmaceutical statistics.

    References

    Stan (software) Wikipedia