二項分布とは
二項分布とは、ある事象が起こる確率を
例えば、サイコロを3回(
二項分布の確率は以下の式で表されます。
サイコロの例
サイコロを3回投げて1の目が出る回数の分布について考えます。
まずは事象のついて考えます。事象としては、以下の2パターンになります。
- 1の目が出る
- 1の目が出ない
このように事象が発生する、しないといった2択の事象であるため、この事象が起こる確率の分布は二項分布になります。
次に事象の発生確率を考えます。1の目が出る確率、1の目が出ない確率はそれぞれ以下のようになります。
事象 | 1 の目が出る | 1 の目が出ない |
---|---|---|
確率 |
サイコロを3回投げて1の目が出る回数は0回、1回、2回、3回の4パターンがあります。それぞれの確率は以下になります。
1 の目が出る回数 | 0 | 1 | 2 | 3 |
---|---|---|---|---|
確率 |
上記の確率を一般的に記述すると以下の二項分布の確率の式となります。
Python で確認
Pythonを用いて
from scipy.stats import binom
import seaborn as sns
from matplotlib import pyplot as plt
%matplotlib inline
sns.set()
sns.set_context(rc = {'patch.linewidth': 0.2})
sns.set_style('dark')
data_binom = binom.rvs(n=3, p=1/6, size=1000)
plt.figure(figsize=(10,5))
sns.distplot(data_binom, kde=False)
以下の確率の計算値と近い確率となっていることが分かります。
1 の目が出る回数 | 0 | 1 | 2 | 3 |
---|---|---|---|---|
確率 |
ラプラスの定理
確率変数Xが二項分布
ラプラスの定理をPythonで実際に確認してみます。今回はサイコロを100回投げて1の目が出る回数の分布
from scipy.stats import binom
import seaborn as sns
from matplotlib import pyplot as plt
%matplotlib inline
sns.set()
sns.set_context(rc = {'patch.linewidth': 0.2})
sns.set_style('dark')
data_binom = binom.rvs(n=100, p=1/6, size=1000)
plt.figure(figsize=(10,5))
sns.distplot(data_binom, kde=False)
サイコロを3回投げるときよりも、より正規分布に近づいていることが分かります。