Stanの手習い m-面さいころの目のでる確率を推定する

Marcov chain monte carlo で確率モデルのパラメータ推定をするツールであるStanを使って,さいころの目のでる確率を推定してみた.

考えている状況は

* 各面のでる確率が\theta_1,\theta_2,...,\theta_mで与えられるm面さいころ

* このさいころをN回ふったとき,各面が何回でたかx_1,x_2,...,x_m

*  与えられたx_iにたいして,theta_iを推定する

Stanのコードは以下 

Stan code for inferring probability of m-face dice ...

このStanコードを実行するPythonスクリプトは以下

Sample code to call dice.stan with input data

例として等確率の6面さいころを1000回試行したデータを生成して推定を行う.

chains=1, iterator=100000 で結果は以下のような感じ

          mean se_mean     sd   2.5%    25%    50%    75%  97.5%  n_eff   Rhat

theta[0]   0.17  9.5e-5   0.01   0.15   0.16   0.17   0.18    0.2  15819    1.0

theta[1]   0.17  9.3e-5   0.01   0.14   0.16   0.17   0.17   0.19  15757    1.0

theta[2]    0.2  1.0e-4   0.01   0.18   0.19    0.2   0.21   0.23  15699    1.0

theta[3]   0.17  9.6e-5   0.01   0.15   0.16   0.17   0.18    0.2  15578    1.0

theta[4]   0.13  8.5e-5   0.01   0.11   0.12   0.13   0.14   0.15  15891    1.0

theta[5]   0.16  9.1e-5   0.01   0.13   0.15   0.16   0.16   0.18  15752    1.0

lp__      -1796    0.02   1.59  -1800  -1797  -1796  -1795  -1794  10595    1.0

 

\theta_i=1/6\sim1.6666 だけど\theta_2,\theta_495%区間にもはいってない.こんなものかな?