Stan (software)

Source: Wikipedia, the free encyclopedia.
Stan
Original author(s)Stan Development Team
Initial releaseAugust 30, 2012 (2012-08-30)
Stable release
2.34.1[1] Edit this on Wikidata / 23 January 2024; 3 months ago (23 January 2024)
Repository
Written in
Statistical package
LicenseNew BSD License
Websitemc-stan.org

Stan is a

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

Stan is licensed under the

Stan was created by a development team consisting of 34 members[3] that includes Andrew Gelman, Bob Carpenter, Matt Hoffman, and Daniel Lee.

Interfaces

The Stan language itself can be accessed through several interfaces:

  • CmdStan – a command-line executable for the
    shell
    ,
  • CmdStanR and rstan – R software libraries,
  • CmdStanPy and PyStan – libraries for the
    Python programming language
    ,
  • CmdStan.rb - library for the Ruby programming language,
  • MatlabStan – integration with the MATLAB numerical computing environment,
  • Stan.jl – integration with the
    Julia programming language
    ,
  • StataStan – integration with Stata.

In addition, higher-level interfaces are provided with packages using Stan as backend, primarily in the R language:[4]

  • rstanarm provides a drop-in replacement for frequentist models provided by base R and lme4 using the R formula syntax;
  • brms[5] provides a wide array of linear and nonlinear models using the R formula syntax;
  • prophet provides automated procedures for time series forecasting.

Algorithms

Stan implements gradient-based

optimization
for penalized maximum likelihood estimation.

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.[2] The automatic differentiation within Stan can be used outside of the probabilistic programming language.

Usage

Stan is used in fields including social science,

pharmaceutical statistics,[9] market research,[10] and medical imaging.[11]


See also

  • PyMC is a probabilistic programming language in Python
  • ArviZ a Python library for Exploratory Analysis of Bayesian Models


References

  1. ^ "Release 2.34.1". 23 January 2024. Retrieved 20 February 2024.
  2. ^ a b c d e Stan Development Team. 2015. Stan Modeling Language User's Guide and Reference Manual, Version 2.9.0
  3. ^ "Development Team". stan-dev.github.io. Retrieved 2018-07-25.
  4. ^ Gabry, Jonah. "The current state of the Stan ecosystem in R". Statistical Modeling, Causal Inference, and Social Science. Retrieved 25 August 2020.
  5. ^ "BRMS: Bayesian Regression Models using 'Stan'". 23 August 2021.
  6. ^ Hoffman, Matthew D.; Gelman, Andrew (April 2014). "The No-U-Turn Sampler: Adaptively Setting Path Lengths in Hamiltonian Monte Carlo". Journal of Machine Learning Research. 15: pp. 1593–1623.
  7. Bibcode:2015arXiv150603431K. {{cite journal}}: Cite journal requires |journal= (help
    )
  8. .
  9. ^ Feit, Elea (15 May 2017). "Using Stan to Estimate Hierarchical Bayes Models". Retrieved 19 March 2019.
  10. PMID 31840442
    .

Further reading

External links