二項分布 (英:binomial distribution) とは、互いに独立で同一なベルヌーイ試行を n 回行ったときの成功回数 X が従う離散確率分布のこと。
X∼Bin(n,p)
確率質量関数
確率 p で成功するベルヌー試行を n 回行ったとき、確率変数 X の値となる成功回数が k のときの確率は、
fX(k;n,p)=(kn)pk(1−p)n−k
二項分布の確率質量関数の導出:
n 回中 k 回成功する組合せは、
(kn)
n 回中 k 回のみ成功する組合せそれぞれが発生する確率は、成功する確率 p が k 個の試行で同時に発生する確率と、失敗する確率 1−p が n−k 個の思考が同時に発生する確率が同時に起こる確率に等しい。
pk(1−p)n−k
よって、二項分布の確率質量関数は、
∴fX(k;n,p)=(kn)pk(1−p)n−k
二項分布が確率分布であることの証明:
k=0∑n(kn)pk(1−p)n−k=(p+(1−p))n=1
二項分布の確率質量関数のグラフ:
Python 3
from scipy.stats import binom
import matplotlib.pyplot as plt
cases = [
(40, .3), # n, p
(80, .3),
(80, .5),
]
plt.figure()
for n,p in cases:
x = range(n)
dist = binom.pmf(x,n,p)
plt.plot(x, dist, label="n={}, p={}".format(n,p))
plt.title("Probability mass function of binomial distribution")
plt.xlabel("Number of successes in n trials".format(n))
plt.ylabel("Probability".format(n))
plt.legend()
plt.show()
from scipy.stats import binom
import matplotlib.pyplot as plt
cases = [
(40, .3),
(80, .3),
(80, .5),
]
plt.figure()
for n,p in cases:
x = range(n)
dist = binom.cdf(x,n,p)
plt.plot(x, dist, label="n={}, p={}".format(n,p))
plt.title("Cumulative distribution function of binomial distribution")
plt.xlabel("Number of successes in n trials".format(n))
plt.ylabel("Probability".format(n))
plt.legend()
plt.show()