ベータ関数

定義

p,qが正の定数のとき、下記右辺の定積分を、p,qの関数と考え、ベータ関数と呼ぶ。

$$
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)}
$$

ベータ分布

ベータ分布は区間(0,1)上の確率分布であり、以下の確率密度関数によって定義される。

$$
f(x) = left{
egin{array}{cc}
frac{1}{B(p, q)} x^{p-1} (1-x)^{q-1} & (0 < x < 1)
0 & その他
end{array}
ight.
$$
ベータ分布はBe(p, q)で表す。

以下X sim Be(p,q)とする。

ベータ分布の平均,分散

egin{eqnarray}
E[X] &=& frac{p}{p + q}
V[X] &=& frac{pq}{(p+q)^2 (p+q+1)}
end{eqnarray}

導出

まずは平均について
egin{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}
分散を求めるに当たって、次のモーメントを求める。
egin{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}
これより、V(X) = E(X(X-1)) + E(X) - E(X^2)から、分散は
egin{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}

モーメント

ベータ関数のk次モーメントを求める。
egin{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}

p,qが正の整数のときは

 displaystyle
E [X^k] = frac{(p+q-1)! (p+k-1)!}{(p-1)!(p+q+k-1)!}
と書くことができる。

ベータ分布の密度関数のグラフ

ベータ分布のグラフは、パラメータごとに以下のようになる。
f:id:doratai:20170528192802p:plain
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()
ベータ関数の特徴

ベータ関数の特徴として、上記のグラフを見ればわかると思うが、パラメータp,qの値によっていろいろな形を取る、ということがある。例えば(p,q) = (1,1)のときは一様分布になっていることがグラフからもわかる。

ベータ分布とベイズ

ベータ分布がよく出てくるのは、ベイズ統計の分野である。ベイズ統計では、事前分布と、事後分布というものを考えるが、その時の事前分布としてベータ分布はよく使われる。グラフでも示した通り、ベータ分布のグラフはパラメータによって非常に柔軟に形を変えることができる。また、グラフとパラメータの対応関係をよく見て欲しい。(p,q) = (3,9)の時、グラフは左に偏り、(p,q) = (9,3)の時、グラフは右に偏っている。つまり、p,qの比がそのままグラフに表現されるのである。このことは、確率的主観を表現する際に都合が良い。予想が6-4であるとして、期待値を0.6とするならば、「私の確信」をp:q = 6:4のベータ分布で表現できるのである。ベイズ主義は確率を「ある事象をどれくらいできるか」の指標と解釈しているため、主観的な確率というものが非常に重要になってくる。その主観的確率を表現する際にベータ分布は非常に都合の良い分布なのだ。

参考文献

松原望,縄田和満,中井検裕(1991):『統計学入門(基礎統計学I)』,東京大学出版会
日本統計学会(2013):『日本統計学会公式認定 統計検定1級対応 統計学』,東京図書