ベータ関数,ベータ分布
ベータ関数
定義
が正の定数のとき、下記右辺の定積分を、の関数と考え、ベータ関数と呼ぶ。
$$
B(p, q) = \int_0^1 x^{p-1} (1-x)^{q-1} dx \;\;\; (p,q > 0)
$$
ベータ関数とガンマ関数の関係
ベータ関数と、ガンマ関数の間には次の関係がある。
$$
B(p,q) = \frac{\Gamma (p) \Gamma (q)}{\Gamma (p + q)}
$$
ベータ分布
ベータ分布は区間上の確率分布であり、以下の確率密度関数によって定義される。
$$
f(x) = \left\{
\begin{array}{cc}
\frac{1}{B(p, q)} x^{p-1} (1-x)^{q-1} & (0 < x < 1) \\
0 & その他
\end{array}
\right.
$$
ベータ分布はで表す。
以下とする。
ベータ分布の平均,分散
\begin{eqnarray}
E[X] &=& \frac{p}{p + q} \\
V[X] &=& \frac{pq}{(p+q)^2 (p+q+1)}
\end{eqnarray}
導出
まずは平均について
\begin{eqnarray}
E[X] &=& \int_0^1 x \frac{1}{B(p,q)} x^{p-1} (1-x)^{q-1} dx \\
&=& \frac{\Gamma(p+q)}{\Gamma(p)\Gamma(q)} \int_0^1 x^p (1-x)^{q-1} dx \\
&=& \frac{\Gamma(p+q)}{\Gamma(p)\Gamma(q)} \frac{\Gamma(p+1)\Gamma(q)}{\Gamma(p+q+1)} \\
&=& \frac{\Gamma(p+q)}{\Gamma(p+q+1)} \frac{\Gamma(p+1)}{\Gamma(p)} \\
&=& \frac{p}{p+q}
\end{eqnarray}
分散を求めるに当たって、次のモーメントを求める。
\begin{eqnarray}
E[X(X-1)] &=& \int_0^1 x(x-1)\frac{1}{B(p,q)} x^{p-1} (1-x)^{q-1} dx \\
&=& -\frac{\Gamma(p+q)}{\Gamma(p)\Gamma(q)} \int_0^1 x^p (1-x)^q dx \\
&=& -\frac{\Gamma(p+q)}{\Gamma(p)\Gamma(q)} \frac{\Gamma(p+1)\Gamma(q+1)}{\Gamma(p+q+2)} \\
&=& -\frac{pq}{(p+q+1)(p+q)}
\end{eqnarray}
これより、から、分散は
\begin{eqnarray}
V[X] &=& E[X(X-1)] + E[X] - E[X]^2 \\
&=& -\frac{pq}{(p+q+1)(p+q)} + \frac{p}{p+q} - (\frac{p}{p+q})^2 \\
&=& \frac{pq}{(p+q)^2(p+q+1)}
\end{eqnarray}
モーメント
ベータ関数の次モーメントを求める。
\begin{eqnarray}
E[X^k] &=& \int_0^1 x^k \frac{1}{B(p,q)}x^{p-1}(1-x)^{q-1} dx \\
&=& \frac{1}{B(p,q)} \int_0^1 x^{p+q-1}(1-x)^{q-1} dx \\
&=& \frac{B(p+k, q)}{B(p,q)} \\
&=& \frac{\Gamma(p+q)}{\Gamma(p)\Gamma(q)} \frac{\Gamma(p+k)\Gamma(q)}{\Gamma(p+q+k)} \\
&=& \frac{\Gamma(p+q)\Gamma(p+k)}{\Gamma(p)\Gamma(p+q+k)}
\end{eqnarray}
が正の整数のときは
と書くことができる。
ベータ分布の密度関数のグラフ
ベータ分布のグラフは、パラメータごとに以下のようになる。
pythonで描画。以下のサイトをおおいに参考にした。
【Python】scipyとmatplotlibでベータ関数を描画 - 歩いたら休め
ソースコードは以下。
import numpy as np import scipy.stats from matplotlib import pyplot as plt x = np.linspace(0, 1, 1000) plt.xlim(0,1) plt.ylim(0,5) plt.xlabel(r"$x$", fontsize=20, fontname='serif') plt.ylabel(r"$f(x; p,q)$", fontsize=20,fontname='serif') plt.title("PDF of Beta Distribution") params = [[3,9],[6,6],[9,3],[1,1],[1,5],[5,1],[16,16]] for param in params: rv = scipy.stats.beta(param[0], param[1]) y = rv.pdf(x) plt.plot(x,y,'-',lw=2,label=param) plt.legend(bbox_to_anchor=(1.05,1), loc='best', borderaxespad=0) #凡例を枠外表示 plt.show()
ベータ関数の特徴
ベータ関数の特徴として、上記のグラフを見ればわかると思うが、パラメータの値によっていろいろな形を取る、ということがある。例えばのときは一様分布になっていることがグラフからもわかる。
ベータ分布とベイズ
ベータ分布がよく出てくるのは、ベイズ統計の分野である。ベイズ統計では、事前分布と、事後分布というものを考えるが、その時の事前分布としてベータ分布はよく使われる。グラフでも示した通り、ベータ分布のグラフはパラメータによって非常に柔軟に形を変えることができる。また、グラフとパラメータの対応関係をよく見て欲しい。の時、グラフは左に偏り、の時、グラフは右に偏っている。つまり、の比がそのままグラフに表現されるのである。このことは、確率的主観を表現する際に都合が良い。予想が6-4であるとして、期待値を0.6とするならば、「私の確信」をのベータ分布で表現できるのである。ベイズ主義は確率を「ある事象をどれくらいできるか」の指標と解釈しているため、主観的な確率というものが非常に重要になってくる。その主観的確率を表現する際にベータ分布は非常に都合の良い分布なのだ。