遅くなりましたが,「BUGS/stan勉強会 #3」の報告記事です。
発表内容
-
『階層ベイズで野球データ解析』 by @gg_hatano
- メジャーリーグのオープンデータを利用した打率推定を行う。 4 月までの初期データからシーズン終了時の打率を推定したい。
- 最尤推定だと推定値は現在の打率になる。
- 打率は試行回数を増やすと個人間のばらつきが小さくなるという特性があるので,これを事前分布としてモデルに組み入れたい。
- 解析的に求めるのが難しいので Stan を使ってサンプリング。
-
『Stan による階層ベイズ的 SEM』 by 豊田秀樹
- 正規分布はパラメーターが 1 次と 2 次の積率になっていて扱いやすい。
- 3 次の積率は不平等の度合いを表すので,パラメーターとして扱えれば解釈がしやすい。
- 3 次の積率までをパラメーターとしてもつ非対称正規分布を構築し,実際の分析に応用。
- 事例紹介 (論文投稿中とのことなのでここでは割愛)。
-
『data ブロックと parameters ブロックの関係』 by @kos59125
- 私が発表した分なので後述します。
-
『PyMC による確率的プログラミングと MCMC と Theano』 by @xianze750
- Stan と同様に HMC や NUTS サンプラーが使える。 Theano で GPU 拡張も可能。
- 独自の確率密度関数も定義可能[A]。
- データの設定,パラメーターの設定,モデルの設定を行うとサンプリングができる。
-
『Stan で欠測データの相関係数を推定してみた』 by @hoxo_m
- 欠測データが含まれると,相関係数に偏りが生じてしまう。
- 欠測データがあっても相関係数を精度よく推定したい。
- 対数尤度の増加を
increment_log_prob
またはモデル式で記述する。 - 欠測データがあってもうまく相関係数が推定できた。
-
『Stan で決める人類最強の男』 by @TeitoNakagawa
- 時間の都合で発表なし。次回発表されるそうです。
-
『分布から見た線形モデル・GLM・GLMM』 by @berobero11
- もともと参加できない予定だったのでスライドだけ作成されたそうです (結局都合がついて参加されていましたが)。きっと次回発表してくださることでしょう。
data ブロックと parameters ブロックの関係
Stan の data ブロックと parameters ブロックがベイズ推定の枠組みでどのような位置づけにあるのかを説明しました。ベイズ推定ではデータもパラメーターも確率変数なので,入れ替えても正しく動くという話です。ただし外部から与えられる定数があるので,それについては data ブロックに入れなければならないので注意してください。
感想・まとめ
まだまだネタは尽きないようで,これからも継続していきそうな勢いですね。統計モデリングを主眼に置いて, BUGS や Stan の名前が入っていますが, BUGS が既にあまり使われなくなっていたり, PyMC の発表があったり,この分野も常に進展があるのだなという感想です。
『データ解析のための統計モデリング入門』という書籍があります。統計モデリングの入門書として素晴らしい書籍で,読書会も発足しています。この書籍で書かれているような内容を踏まえ,現実の統計モデリングに関する問題は様々あると思います。そんなことを BUGS/Stan 勉強会で議論できたら楽しいですね。
脚注
- Stan も (確か) 2.3 からユーザー定義の確率密度関数が定義できます。 [↩]