Bernoulli distribution with multiple probability

import numpy as np 

p = [0.1, 0.2, 0.9, 0.1]#異なる確率
n = 1

#10000回ベルヌーイ分布でサンプルを引く
x = np.array([np.random.binomial(n, p) for i in range(10000)])
y = np.array([np.sum(x[:,i]) for i in range(4)])/10000
print(p, "original")
print(y, "experiment")#確率が元の確率と似ているか

 

ベルヌーイ分布のpythonの記事を見てみると、異なるベルヌーイ分布からサンプリングするものについてのまとまった記事が見当たらなかったので、備忘録として残しておく。

 

そもそもベルヌーイ分布とは、当たりの確率の決まったガチャガチャ見たいなもの。

0か1かを返す。

詳しいこと(分散、期待値、エントロピー、特性関数など)はこちらのWikiを参照して欲しい。