Stan (プログラミング言語)

Stan（スタン）はC++で書かれた統計的推論のための確率的プログラミング言語。
Stan言語では、対数確率密度関数を計算する命令型プログラムを使用して、（ベイジアン） 統計モデルを実装できる。  

らによって開発され、
モンテカルロ法の先駆者であるスタニスワフ・ウラムにちなんで名付けられた。
BSDライセンスの下でライセンスされている。

インターフェース 
Stanにはいくつかのインターフェースからアクセスできる。 

 RStan - R言語との統合。アンドリュー・ゲルマンらによってメンテナンスされている。
 PyStan - Pythonとの統合。 
 CmdStan - Unixシェルのコマンドライン実行可能ファイル。 
 MatlabStan - MATLAB数値計算環境との統合。 
 Stan.jl - Juliaとの統合。 
 StataStan - Stataとの統合。 
 MathematicaStan - Mathematicaとの統合。
 ScalaStan - Scalaとの統合

アルゴリズム 
Stanは、ベイジアン推論のための勾配ベースのマルコフ連鎖モンテカルロ法 （MCMC法）アルゴリズム、近似ベイズ推論のための確率論的勾配ベース変分ベイズ法 、およびペナルティ付き最尤推定のための勾配ベース最適化を実装している。 

 MCMC法のアルゴリズム： 
 No-U-Turn Sampler（NUTS）：HMC法の変法であり、StanのデフォルトのMCMCエンジンとなっている。 
 ハミルトニアン・モンテカルロ法 （HMC法）
 変分推論アルゴリズム： 
 ブラックボックス変分推論 
 最適化アルゴリズム： 
 制限付きメモリBFGS （Stanのデフォルトの最適化アルゴリズム） 
 Broyden–Fletcher–Goldfarb–Shannoアルゴリズム 
 古典的な標準誤差の推定値と近似ベイズ後置子に対するラプラスの方法

活用例 
スタンは、社会科学、医薬品統計、市場調査、医用画像などの分野で使用されている。

参考文献 

  
 Gelman, Andrew, Daniel Lee, and Jiqiang Guo (2015).  Stan: A probabilistic programming language for Bayesian inference and optimization, Journal of Educational and Behavioral Statistics. 
 Hoffman, Matthew D., Bob Carpenter, and Andrew Gelman (2012). Stan, scalable software for Bayesian modeling, Proceedings of the NIPS Workshop on Probabilistic Programming.

外部リンク 

 Stan - 公式ウェブサイト 
 Stan source, a Git repository hosted on GitHub

確率的ソフトウェア
ドメイン固有言語
計算統計学