ベルヌーイ分布(Bernoulli distribution)は0か1かの2値をとる確率分布です。
具体的な問題設定では、「コインを1回投げた際に、表が出るか?裏が出るか?」や、「1人にアンケートを行った際の回答が、猫が好きか?犬が好きか」のように、1回の試行を行った時に、2値の値が得られるような確率を考える際に用いられます。
例えばコインの例では、コインの表を1、裏を0というように当てこめれば、ベルヌーイ分布はを用いてこれらの事象を表現することができます。
ベルヌーイ分布自体は、非常に単純な確率分布ですが、多くの統計や機会学習の参考書でベルヌーイ分布から確率分布の学習がスタートします。
それはベルヌーイ分布が非常に簡単な確率分布であることに加えて、さまざまな応用分野で広く利用されていることが理由としてあると思います。
今回は、このベルヌーイ分布の定義や性質について解説すると同時に、平均や分散、エントロピーといった統計量を導出し、ベルヌーイ分布に対して理解を深めていきましょう。
- ベルヌーイ分布の確率質量関数の定義
- Pythonでベルヌーイ分布を可視化する
- ベルヌーイ分布の平均や分散、エントロピーなどの統計量
ベルヌーイ分布の確立質量関数
まず最初に、ベルヌーイ分布の確率質量関数の定義式を掲載します。
ベルヌーイ分布(Bernoulli ditstribution)は、下記のように定義される、1つのパラメータ$μ \in (0, 1)$をとる離散的確率分布です。
\begin{equation} Bern(x|μ) = μ^x(1-μ)^{1-x} \end{equation}
確率変数$x$の値がとりえる範囲は、$x \in \{0,1\}$ です。
先ほども少し書きましたが、ベルヌーイ分布の値のとりうる範囲は、$x \in \{0,1\}$ で、0か1のどちらかの値が確立質量関数によって出力されるようになっているため、値0と1で表現できるような、2つの事柄のうちどちらかが起こるような状況を表現する際に、ベルヌーイ分布を用いて、定式化することができます。
正規化(normalization)の確認
確率分布は、その定義から、確率分布関数のとりうる値で積分を取った値が1になる(正規化)されている必要性があります。
(1)式で定義される、ベルヌーイ分布の確率質量関数がきちんと正規化(normalization)されているかを確認します。正規化とは、確率変数のとりうる値で周辺化すると1になる性質のことです。
ベルヌーイ分布のとりうる値は、0, 1 なので、正規化の計算をしてみます。
\sum_{x \in \{ 0, 1\}} Bern(x | \mu) = (1 - \mu) + \mu = 1
きちんと1になってくれました。ベルヌーイ分布の定義式が、きちんと確率質量分布の定義の条件を満たしていることがわかります。
ベルヌーイ分布のグラフ
ベルヌーイ分布がとる値の実現値$X$(0, 1)が起こり得る確率は、ベルヌーイ分布のパラメータ$\mu$を用いて次のようにまとめることができます。
$X$ | 0 | 1 |
$P(X)$ | 1-μ | μ |
表を見るとわかりますが、確率変数Xは値が0になるのが$1-μ$、1になるのは$μ$となります。
例えば、例えばコイン投げをした際に、表と裏が均等に0.5の確率で出るような普通のコインを利用した場合、このモデルのパラメータ$\mu$の値は、$\mu = 0.5$となります。
そして、上の表から表(1)が出る確率は、$1-0.5 = 0.5$ 、裏 (1)が出る確率は、$0.5$ という風になるわけです。
ここまでを、Pythonを用いて、ベルヌーイ分布の確率密度関数から、ランダムにサンプリングした結果を見ていきましょう。
Pythonでベルヌーイ分布を可視化
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
d = stats.bernoulli(0.7)
x = d.rvs(100)
labels = [0, 1]
freq = np.array([np.sum(x == 0), np.sum(x == 1)])
plt.bar(labels, freq)
plt.xticks(ticks=labels)
plt.title(r"bernoulli $\mu = 0.7$")
ここまででベルヌーイ分布の基本的な部分を解説しました。ベルヌーイ分布は今後登場する、二項分布や多項分布の考え方の基礎になるので非常に重要です。
また機械学習分野でも、混合ベルヌーイ分布など、応用分野のモデルでたまに利用されることがあるので、ベルヌーイ分布について理解を深めることができると良いでしょう。
ベルヌーイ分布の期待値と分散
続いて、ベルヌーイ分布の期待値と分散についてですが、まず最初に、結論を掲載します。
期待値
\begin{equation} \mathbb{E}[Bern(x | \mu)] =\mu \end{equation}
分散
\begin{equation} Var[Bern(x | \mu)] =\mu(1 - \mu) \end{equation}
(2)の期待値については、例えば$\mu = 0.5$となるような、表と裏が均一のコインを投げた時の期待値が0.5になるということで、直感的にわかりますね。
ベルヌーイ分布の期待値の証明
ベルヌーイ分布の期待値の証明をしてみましょう。
ベルヌーイ分布は離散確率分布なので、離散的確率分布の期待値の定義式を用いて導出できます。
離散的確率分布の期待値の定義より、
\begin{equation} \begin{split} E[X] &= \sum_{i=0}^{1} x_i p(x_i) \\ &= 0・(1-μ) +1・ μ = μ \end{split} \end{equation}
ベルヌーイ分布の分散の証明
ベルヌーイ分布の分散の証明は、定義式からも導出でいますが、下記の分散と期待値の関係式からを利用すると、より簡単に導出することができます。
\begin{equation} VAR[X] = E[X^2] - E[X]^2 \end{equation}
ある確率分布の分散を考える時、毎回分散の定義からその確率分布の分散を求めるのは、計算が煩雑になる時があるので、計算が煩雑になりそうな時は、(4)式にある、$X$と$X^2$の2つの期待値から分散を導出することがよくあります。
まず$E[X^2]$を計算すると、
\begin{equation} \begin{split} E[X^2] &= \sum_{i=0}^1 x_i^2 p(x_i) \\ &= 0^2・(1-μ) + 1^2・μ = μ \end{split} \end{equation}
ここで、分散は(5)式で表されるので、
\begin{equation} \begin{split} VAR[X] &= E[X^2] - E[X]^2 \\ &= μ - μ^2 = μ(1-μ) \end{split} \end{equation}
となり、(3)と同じ値を導くことができました。
ベルヌーイ分布の分散の証明1 : 定義式からの証明
続いて、定義式からも証明してみましょう。
離散確率分布における分散の定義式を掲載します。
\begin{equation} VAR[X] = \sum_{i=1}^{n} (x_i - E[x_i])^2 p(x_i) \end{equation}
詳細は、こちらの記事でもまとめています。
今回、平均 $E[X] = μ$ なので、(8)の分散の定義式から、
\begin{split} VAR[X] &= (0-μ)^{2}・(1-μ) +(1-μ)^2 ・μ \\ &= μ^2(1-μ) + (1 - 2μ + μ^2)μ \\ &= μ^2-μ^3 +μ -2μ^2+ μ^3 \\ &= μ(1-μ) \end{split}
ベルヌーイ分布のエントロピー
確率分布の統計量である平均・分散をここまで考えてきたので、今度はベルヌーイ分布のエントロピーを導出してみましょう。エントロピー$H[X]$の定義は下です。
H[X] = - \sum_{i=1}^{n} p(x_i) ln p(x_i)
よってこのエントロピーを計算してみます。
H[X] = - \{(1-μ) ln (1-μ) + μ ln μ\} \\ = - μ ln μ - (1-μ)ln(1-μ)
このようになりました。