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 ...
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%区間にもはいってない.こんなものかな?