JAGSとRでマルコフ連鎖モンテカルロ法

  • このエントリーをはてなブックマークに追加

今日はベイズモデリングに必要なマルコフ連鎖モンテカルロ法を行うための設定と、
簡単なサンプルを紹介したいと思います。
マルコフ連鎖モンテカルロ法を行うライブラリは様々なものがあるのですが、※1
今回はJAGSをRから使えるように設定していきたいと思います。

 

ざっくり、マルコフ連鎖モンテカルロ法とは

「マルコフ連鎖モンテカルロ法」とは確率分布のサンプリングを行うアルゴリズムで、
「マルコフ連鎖」と「モンテカルロ法」の2つの言葉から成り立っています。

 
マルコフ連鎖
マルコフ連鎖とはマルコフ性をもつ確率過程(時間とともに変化する確率変数)のうち、取りうる事象が離散的なものをいいます。
次の状態が過去の状態に依存せず現在の状態のみによって決まる性質です。※2

 
モンテカルロ法
乱数をつかってシミュレーションや数値計算を行う手法のことです。

 

JAGSのインストール

マルコフ連鎖モンテカルロ法(MCMC)をおこなうためのライブラリです。
MACの場合、こちら からダウンロードしてください。
dmgファイルで落とせるので、展開して、pkgファイルをインストールすれば完了です。
簡単ですね!

 

R2jagsのインストール

JAGSをRから使えるようにするにはライブラリを入れる必要があります。
今回はR2jagsを設定します。

Rを立ち上げます

sudo R

Rにて

install.packages(‘R2jags’)

以上です。こちらも非常に簡単です。

 

テストデータによるベイズモデリング

前々回のサッカーの勝敗予測の記事でポアソン分布を使ったので、
ポアソン分布でテストしてみましょう。

テストデータで使用した係数を未知として、MCMCで推定します。

 
alphaの推定結果
RplotAlpha

 
betaの推定結果
RplotBeta

Screen Shot 2015-03-01 at 17.31.24

という形でalpha、betaそれぞれの分布を推定した結果、
alphaの分布の平均値は0.447 (テストデータは0.5)、betaの平均値は2.037(テストデータは2)と推定することができました。
Rhatも1.1以下となっているので収束していると判断できます。※3

競馬の勝敗(ロジスティック回帰)サッカーの勝敗予想(ポアソン回帰)のベイズモデル化にも取り組んで行きたいと思います。

 

環境

OS : Mac OSX 10.9.5
R version : 3.1.2


※1 WinBUGSとかOpenBUGSとかStanとか。こちらによくまとまっています → http://www7.atwiki.jp/hayatoiijima/pages/61.html
※2 こういった応用事例もあります → マルコフ連鎖で日本語をもっともらしく要約する
※3 http://takehiko-i-hayashi.hatenablog.com/entry/20100512/1273643029
  • このエントリーをはてなブックマークに追加