ベルヌーイ分布
各試行がベルヌーイ分布に従う実験を一様乱数を用いてシミュレーションしてみる。リスト1がプログラム例である。
リスト1 ベルヌーイ分布に従う試行のシミュレーション
import scipy.stats
as ss
p = float(input('p = '))
for i in
range(1000):
v = ss.uniform.rvs(0,1) # uniform.rvs(a,b): Uniformly on [a,a+b]
if v < p:
print('1', end = '')
else:
print('0', end = '')
一様乱数のクラス型scipy.stats.uniformのメソッドrvsを用いている。
リスト1のスクリプトを実行するとpの値の入力が求められる。
pの値を設定すると、ベルヌーイ分布に従う試行が1000試行実行される(図1)。
図1
一様分布を用いた例をリスト2に示す。
リスト2 一様分布
import scipy.stats
as ss
import matplotlib.pyplot
as plt
a = float(input('a = '))
b = float(input('b = '))
samples = ss.uniform.rvs(a,
b, size = 10000)
plt.hist(samples)
plt.title(f'a =
{a}, b = {b}')
plt.show()
クラス型uniformのメソッドrvsを
ss.uniform.rvs(a, b, size = 10000)
と呼び出すと、区間上で一様分布する乱数がsize = 10000個呼び出される。
リスト2のスクリプトを実行すると、まず、aとbの値の入力が求められる。
a = 1
b = 2
bの値の設定後、グラフが表示される(図2)。
図2
参考文献
岡本安晴(2022)データを使いこなすための統計入門.22世紀アート、付録 確率 E.1 ベルヌーイ分布