先日のBUGS/stan勉強会 #3に参加(聴講のみ)したのでそのリポート、というわけではなく環境の整備をしたという記事。...形から入りたい性格だから(小声)。詳しいことはまた勉強する or ブログ記事を読む。
(致死させない程度の) マサカリ歓迎
主催の@TeitoNakagawa さんからのメッセージ。
なお、参加される方へ、本日は初心者セッション等はございませんので過去資料や関連するblog記事等に目を通しておくこと、RStanのインストールをお勧めします。 #TokyoBUGS
— Teito Nakagawa (@TeitoNakagawa) July 12, 2014
過去の勉強会
入門セッションは過去のものを参考に。
BUGS/Stanとは... おまけにJAGS
BUGS/Stanとは何ぞやということを説明しておくとベイズ推定による柔軟なモデリングを実現するためのDSL言語 第1回BUGS/Stan勉強会を開催しました - Analyze IT.
とのこと。
MCMC(マルコフ連鎖モンテカルロ法: Markov chain Monte Carlo methods) を用いたベイズ推定という枠組み、は共通しているけど、BUGS, Stan, JAGSはそれぞれ別物。用途に応じて使い分けるのが良さげ↓(参考)。
間違っているかもしれないまとめ
BUGS をマルチプラットフォームで使えるように改良してあるのが JAGS で姉妹のようなもの。 Stanは、BUGSを参考にしつつも処理の方法が前2つとは異なっていて、高速。ちなみにBUGSとJAGSは略称で、Stanの由来はStanislaw Ulamにちなんでいるとか。
(きっとほかにもある)
BUGS (WinBUGS)
BUGSというのはBayesian inference Using Gibbs Samplingの略で、その名の通りギブズサンプラーによるベイズ推定を行う
Macにインストールする方法(Mac OS X上で、WinBUGS+R2WinBUGSを使用するなど)もあるけど面倒なのでやめた。
JAGS (rjags)
JAGSはJust Another Gibbs Samplerの略。ギブス抽出法を用いたベイズ階層モデルを実装できる。rjags
パッケージはR上でJAGSを実行するインターフェイス。
手順
-
JAGS
: sourceforge -> JAGS 3.3.0 -
rjags
: 20140712現在、最新のバージョン(3.13)はmavericksに対応していない。Mavericksでのrjags:Taglibro de H:So-netブログにあるとおり、Snow Leopard用のバイナリ版をインストール
Stan (rstan)
真打ちというか導入が一番楽だった。C++で処理を行うため高速化されているというのが特徴。開発が盛んでマニュアルや実例もまとめてあるので大変良い印象。
インターフェイス
-
CmdStan
-> コマンドラインからStanを操作 -
RStan
-> R上でStanプログラムを実行する- こちらを使う
-
PyStan
-> PythonでStan - 開発中... -> MATLAB, Julia!!, Stata
手順
ここに書いてある手順に従えば良い。MacではR、RStudio、Xcodeを適宜用意する必要がある。自分の環境ではRcppパッケージの再インストールが必要だった。
まとめ
BUGS/stan勉強会 #3でもStanを使った発表が多かったし、速さは正義なのでRStanで勉強進めていく。