Up

ベルヌーイ分布

 

各試行がベルヌーイ分布に従う実験を一様乱数を用いてシミュレーションしてみる。リスト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のスクリプトを実行すると、まず、abの値の入力が求められる。

 

a = 1

b = 2

 

bの値の設定後、グラフが表示される(図2)。

図2

 

参考文献

岡本安晴(2022データを使いこなすための統計入門.22世紀アート、付録 確率 E.1 ベルヌーイ分布

 

 

Up