Slide 22
Slide 22 text
22
シミュレーション & デモンストレーション
@interact(a=(1,15,1), b=(1,15,1))
def draw_norm_dist(a=2, b=2):
set_size = a+b-1
trial_size = 30000
bin_width = 51
def gen_orderd_unif(size):
unif = rd.rand(size) # (0, 1)の一様分布に従う乱数をsize個生成
unif.sort() # 大きさの順に並べる
return unif
# a+b-1個の順番に並べた一様乱数を生成、それをtrial_sizeセット実施して各セットa番目を抜き出す
result = [gen_orderd_unif(set_size)[a-1] for _ in np.arange(trial_size)]
plt.hist(result, bins=np.linspace(0,1,bin_width)) # 結果をヒストグラムで表示
plt.plot(p, st.beta.pdf(p, a, b)*trial_size/bin_width, c="g", lw=3) # ベータ分布の密度関数を表示
plt.show()
Pythonによる乱数を用いたシミュレーションで
も、ヒストグラムが理論的な密度関数に一致して
いることがわかる。