倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

不完全ベータ関数の公式あれこれ

不完全ベータ関数の Wikipedia ページに載っている公式を導いていきます。

定義

ベータ関数 {B(a,\,b)} は以下のように定義されるのでした:

  { \displaystyle\begin{align*}
  B(a,\,b) = \int_0^1 t^{a-1}(1-t)^{b-1}dt
\end{align*}}

不完全ベータ関数 (incomplete beta function) {B(x;\,a,\,b)} は、ベータ関数の定義の積分上端を変数にしたもので定義されます:

  { \displaystyle\begin{align*}
  B(x;\,a,\,b) = \int_0^x t^{a-1}(1-t)^{b-1}dt
\end{align*}}

変数が特定の値をとる場合

{x = 0,\,1} の場合、{B(x;\,a,\,b)} の定義より

  { \displaystyle\begin{align*}
  B(0;\,a,\,b) &= 0, &
  B(1;\,a,\,b) &= B(a,\,b)
\end{align*}}

となります。

{b = 1,\,a=1} の場合は、定義の積分が簡単に実行できます:

  { \displaystyle\begin{align*}
  B(x;\,a,\,1)
    &= \int_0^x t^{a-1}dt 
    = \left[\frac{1}{a}x^a\right]_0^x \\
    &= \frac{1}{a}x^a \\[2mm]
  B(x;\,1,\,b)
    &= \int_0^x (1-t)^{b-1}dt 
    = \left[-\frac{1}{b}(1-t)^b\right]_0^x \\
    &= \frac{1}{b}\left\{1 - (1-x)^b\right\}
\end{align*}}

a, b の交換

{a,\,b} を入れ替える公式は、簡単な積分変数の変換 {t \mapsto s = 1- t} で導けます:

  { \displaystyle\begin{align*}
  B(x;\,b,\,a)
    &= \int_0^x t^{b-1}(1-t)^{a-1}dt \\
    &= -\int_1^{1-x} (1-s)^{b-1}s^{a-1}ds \qquad(s = 1-t)\\
    &= \int_{1-x}^1 s^{a-1}(1-s)^{b-1}ds \\
    &= \int_0^1 s^{a-1}(1-s)^{b-1}ds - \int_0^{1-x} s^{a-1}(1-s)^{b-1}ds \\
    &= B(a,\,b) - B(1-x;\,a,\,b)
\end{align*}}

特に {x = 1} として、上記で導いた公式も使うと、ベータ関数自体は引数 {a,\,b} に関して対称 {B(a,\,b) = B(b,\,a)} であることが分かります。

a, b の昇降

{B(x;\,a+1,\,b)}{B(x;\,a,\,b+1)}{B(x;,\,a,\,b)} との関係を導いてみましょう。

a の昇降
{B(x;\,a+1,\,b)} の定義で部分積分を行うと

  { \displaystyle\begin{align*}
  B(x;\,a+1,\,b)
    &= \int_0^x t^a (1-t)^{b-1}dt \\
    &= \int_0^x t^a \left(-\frac{(1-t)^b}{b}\right)'dt \\
    &= \left[-\frac{t^a(1-t)^b}{b}\right]_0^x + \frac{a}{b}\int_0^x t^{a-1}(1-t)^b dt \\
    &= -\frac{x^a(1-x)^b}{b} + \frac{a}{b}B(x;\,a,\,b+1)
\end{align*}}

よって

  { \displaystyle\begin{align*}
  bB(x;\,a+1,\,b) = -x^a(1-x)^b + aB(x;\,a,\,b+1) \qquad\cdots (1)
\end{align*}}

ここで、{B(x;\,a,\,b+1)} の定義に戻って少し変形すると

  { \displaystyle\begin{align*}
  B(x;\,a,\,b+1)
    &= \int_0^x t^{a-1}(1-t)^b dt \\
    &= \int_0^x t^{a-1}(1-t)(1-t)^{b-1} dt \\
    &= \int_0^x t^{a-1}(1-t)^{b-1} dt - \int_0^x t^a(1-t)^{b-1} dt \\
    &= B(x;\,a,\,b) - B(x;\,a+1,\,b)
\end{align*}}

これを (1) 式に代入すると

  { \displaystyle\begin{align*}
  bB(x;\,a+1,\,b) = -x^a(1-x)^b + aB(x;\,a,\,b) - aB(x;\,a+1,\,b)
\end{align*}}

{B(x;\,a+1,\,b)} について解くと

  { \displaystyle\begin{align*}
  B(x;\,a+1,\,b) = \frac{a}{a+b}B(x;\,a,\,b) - \frac{x^a(1-x)^b}{a+b}
\end{align*}}

を得ます。 特に {x=1} から {B(a+1,\,b) = \frac{a}{a+b}B(a,\,b)} となります。 {B(a,\,b)}{a,\,b} に関して対称だったので、{B(a,\,b+1) = \frac{b}{a+b}B(a,\,b)} も成り立ちます。

b の昇降
{B(x;\,a,\,b+1)} についても同様の方法で導けますが、ここでは {a,\,b} を交換する公式を使って導いてみます。

  { \displaystyle\begin{align*}
  B(x;\,a,\,b+1)
    &= B(a,\,b+1) - B(1-x;\,b+1,\,a) \\
    &= \frac{b}{a+b}B(a,\,b) - \frac{b}{a+b}B(1-x;\,b,\,a) + \frac{x^a(1-x)^b}{a+b} \\
    &= \frac{b}{a+b}B(x;\,a,\,b) + \frac{x^a(1-x)^b}{a+b}
\end{align*}}

0 ≦ x ≦ 1 の範囲外の値

不完全ベータ関数 {B(x;\,a,\,b)} の引数 {x} は、定義的にも実用的*1にも {0 \leqq x \leqq 1} の範囲内の値を扱うことがほとんどですが、この範囲外の値を {0 \leqq x \leqq 1} 内の値と結びつける公式があるので、それを導いてみます。

x < 0
公式を導く前に少々。 不完全ベータ関数の定義の被積分関数には {t^{a-1}} という因子があるので、{a} が整数でなければ {t} が負のとき(よって {x} が負のとき)不完全ベータ関数の値は実数になりません。 また、この因子は {a} が0以下の整数のときに積分値を発散させるので、このとき不完全ベータ関数の値も発散します。

それでは公式の導出。 {t < 0} のとき、{s = \frac{t}{t-1}} で定義された変数 {s}{0 < s < 1} の範囲内の値をとります。 不完全ベータ関数の定義の積分をこの {s} を使った積分に変換します。

この変換を施すと

  { \displaystyle\begin{align*}
  B(x;\,a,\,b)
    &= -\int_0^\frac{x}{x-1} \left(-\frac{s}{1-s}\right)^{a-1} \left(\frac{1}{1-s}\right)^{b-1} \frac{ds}{(1-s)^2} \\
    &= (-1)^a \int_0^\frac{x}{x-1} s^{a-1}(1-s)^{-(a+b)}ds \\
    &= (-1)^a B\left(\tfrac{x}{x-1};\,a,\,1-a-b\right)
\end{align*}}

となります。 因子 {(-1)^a} より、これが実数となるのは {a} が整数でなければならないことが一目で分かります。 一方、{b} はこの範囲で不完全ベータ関数の値が実数かどうかや発散には無関係です。

x > 1
{a,\,b} を交換する公式は {x}{1-x} での不完全ベータ関数の値を関係づける公式でもあるので、{x > 1} の範囲の値を {0 \leqq x \leqq 1} の範囲の値に関係づける公式は、{a,\,b} を交換する公式と {x < 0} の範囲の値を得る公式から導けます。

  { \displaystyle\begin{align*}
  B(x;\,a,\,b)
    &= B(a,\,b) - B(1-x;\,b,\,a) \\
    &= B(a,\,b) - (-1)^b B\left(\tfrac{x-1}{x};\,b,\,1-a-b\right)
\end{align*}}

第2項に {(-1)^b} という因子があるので、この値が実数をとるためには {b} が整数でなければなりません。 また、{B\left(\tfrac{x-1}{x};\,b,\,1-a-b\right)}{b} が0以下の整数のとき、{\tfrac{x-1}{x}} が0、すなわち {x} が1で発散します。 ただし、このとき第1項の {B(a,\,b)} も発散するので、きちんと評価するには定義に戻る必要がありますが。

{B(a,\,b)}{a} が0または負の整数のとき発散するので、{x > 1} のとき {B(x;\,a,\,b)} もそうなります。

正規化された不完全ベータ関数

正規化された不完全ベータ関数 (regularized incomplete beta function) は以下で定義されます:
  { \displaystyle\begin{align*}
  I_x(a,\,b) = \frac{B(x;\,a,\,b)}{B(a,\,b)}
\end{align*}}

この {I_x(a,\,b)} に対して上記の公式を書き換えておきましょう。 ただし、いくつかのベータ関数の性質は証明なく使います(ガンマ関数の性質 {\Gamma(a+1) = a\Gamma(a)} と、ガンマ関数とベータ関数との関係 {B(a,\,b) = \frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}} から簡単に導けます)。

変数が特定の値をとる場合
{x = 0,\,1} の場合は簡単:

  { \displaystyle\begin{align*}
  I_0(a,\,b) &= 0, & I_1(a,\,b) &= 1
\end{align*}}

{b=1,\,a=1} の場合は {B(a,\,1) = B(1,\,a) = \frac{1}{a}} より

  { \displaystyle\begin{align*}
  I_x(a,\,1) &= x^a, &
  I_x(1,\,b) &= 1 - (1-x)^b \\
\end{align*}}

a, b の交換
{a,\,b} の交換も簡単:

  { \displaystyle\begin{align*}
  I_x(b,\,a) = 1 - I_{1-x}(a,\,b)
\end{align*}}

a, b の昇降
{B(a+1,\,b) = \frac{a}{a+b}B(a,\,b),\quad B(a,\,b+1) = \frac{b}{a+b}B(a,\,b)} より

  { \displaystyle\begin{align*}
  I_x(a+1,\,b) &= I_x(a,\,b) - \frac{x^a(1-x)^b}{aB(a,\,b)} \\
  I_x(a,\,b+1) &= I_x(a,\,b) + \frac{x^a(1-x)^b}{bB(a,\,b)}
\end{align*}}

{I_x(a,\,b)}{0 \leqq x \leqq 1} の範囲外の値を計算する公式は使わなさそうなので略。

導いた公式まとめ

不完全ベータ関数 {B(x;\,a,\,b)}

{ \displaystyle\begin{align*}
  B(0;\,a,\,b) &= 0 \\
  B(1;\,a,\,b) &= B(a,\,b) \\
  B(x;\,a,\,1) &= \frac{1}{a}x^a \\
  B(x;\,1,\,b) &= \frac{1}{b}\left\{1 - (1-x)^b\right\} \\
  B(x;\,b,\,a) &= B(a,\,b) - B(1-x;\,a,\,b) \\
  B(x;\,a+1,\,b) &= \frac{a}{a+b}B(x;\,a,\,b) - \frac{x^a(1-x)^b}{a+b} \\
  B(x;\,a,\,b+1) &= \frac{b}{a+b}B(x;\,a,\,b) + \frac{x^a(1-x)^b}{a+b} \\
  B(x;\,a,\,b) &= (-1)^a B\left(\tfrac{x}{x-1};\,a,\,1-a-b\right) \\
  B(x;\,a,\,b) &= B(a,\,b) - (-1)^b B\left(\tfrac{x-1}{x};\,b,\,1-a-b\right)
\end{align*}}

正規化された不完全ベータ関数 {I_x(a,\,b) = \dfrac{B(x;\,a,\,b)}{B(a,\,b)}}

  { \displaystyle\begin{align*}
  I_0(a,\,b) &= 0 \\
  I_1(a,\,b) &= 1 \\
  I_x(a,\,1) &= x^a \\
  I_x(1,\,b) &= 1 - (1-x)^b \\
  I_x(a+1,\,b) &= I_x(a,\,b) - \frac{x^a(1-x)^b}{aB(a,\,b)} \\
  I_x(a,\,b+1) &= I_x(a,\,b) + \frac{x^a(1-x)^b}{bB(a,\,b)}
\end{align*}}

*1:不完全ベータ関数はいくつかの確率分布の累積分布関数を表すのに使われます。