母関数(確率母関数・積率母関数)

確率分布の情報をすべて閉じ込め、微分によって期待値や分散、各次モーメントを次々と生み出す「母関数」の仕組みを学びます。確率母関数と積率母関数の使い分けを理解します。

難易度 Lv 4 / 10想定時間:約25

できるようになること


サイコロを何回も振ったときの「合計値」の分布

サイコロを1回振ることを考えます。出る目の確率はそれぞれ 1/61/6 です。 では、サイコロを2回振ったときの「合計値の分布」はどうなるでしょうか。合計値は 22 から 1212 までの値をとり、それぞれの場合の数を書き並べれば、確率を求めることができます。

では、サイコロを10回振ったときの「合計値の分布」はどうでしょうか。 合計値は 1010 から 6060 までの値をとりますが、その組合せの数は膨大になり、手計算で確率を求めるのは現実的ではなくなります。

しかし、ここで数学の「多項式」を導入すると、状況が一変します。サイコロを1回振って出る目を確率変数 XX とすると、その確率分布に対応する多項式 GX(s)G_X(s) は以下のように表現されます。

GX(s)=16s1+16s2+16s3+16s4+16s5+16s6G_X(s) = \frac{1}{6}s^1 + \frac{1}{6}s^2 + \frac{1}{6}s^3 + \frac{1}{6}s^4 + \frac{1}{6}s^5 + \frac{1}{6}s^6

驚くべきことに、独立にサイコロを2回振ったときの合計値 X1+X2X_1 + X_2 の確率は、この多項式を2乗した GX(s)2G_X(s)^2 を展開したときの「sks^k の係数」と完全に一致します。たとえば、展開式における s2s^2 の係数は 1/361/36s3s^3 の係数は 2/362/36 となり、これは合計が 2233 になる確率そのものです。

10回振ったときの合計値の分布も、単に GX(s)10G_X(s)^{10} を計算して展開するだけで得られます。

このように、「確率分布というデータの集まりを、関数の形(多項式など)の中にパッケージングし、代数的な操作によって計算を簡単にする」という強力な道具が母関数(generating function)です。

この単元では、離散型の非負整数に用いられる確率母関数と、離散・連続の両方に広く使われる積率(モーメント)母関数の2つを学びます。


確率母関数:離散分布の便利な表現

値が 0,1,2,0, 1, 2, \dots のような非負の整数をとる離散型確率変数 XX に対し、確率母関数(probability generating function、PGF)は次のように定義されます。

GX(s)=E[sX]=x=0P(X=x)sxG_X(s) = E[s^X] = \sum_{x=0}^{\infty} P(X=x) s^x

ここで ss は補助的な変数で、無限級数が収束するように通常は s1|s| \leq 1 の範囲で考えます。

期待値と分散の取り出し方

確率母関数 GX(s)G_X(s) の最大の利点は、定義通りに xP(X=x)\sum x P(X=x) などを計算しなくても、微分するだけで期待値や分散を取り出せる点にあります。

まず、s=1s = 1 を代入すると、確率の総和になるため常に 11 になります。

GX(1)=x=0P(X=x)=1G_X(1) = \sum_{x=0}^{\infty} P(X=x) = 1

ヒント

GX(1)=1G_X(1) = 1 という性質は、自分で求めた確率母関数が正しいかどうかをチェックする簡単な検算方法として非常に役立ちます。式を求めたら、まずは s=1s=1 を代入して 11 になるかを確認してみましょう。

次に、GX(s)G_X(s)ss で微分(1階微分)してみます。

GX(s)=ddsE[sX]=E[XsX1]=x=1xP(X=x)sx1G'_X(s) = \frac{d}{ds} E[s^X] = E[X s^{X-1}] = \sum_{x=1}^{\infty} x P(X=x) s^{x-1}

ここで s=1s = 1 を代入すると、期待値 E[X]E[X] がそのまま現れます。

GX(1)=E[X]G'_X(1) = E[X]

さらに、もう一度微分(2階微分)してみましょう。

GX(s)=d2ds2E[sX]=E[X(X1)sX2]=x=2x(x1)P(X=x)sx2G''_X(s) = \frac{d^2}{ds^2} E[s^X] = E[X(X-1) s^{X-2}] = \sum_{x=2}^{\infty} x(x-1) P(X=x) s^{x-2}

ここで s=1s = 1 を代入すると、次のように階乗モーメントが得られます。

GX(1)=E[X(X1)]=E[X2]E[X]G''_X(1) = E[X(X-1)] = E[X^2] - E[X]

これより、2次の原点まわりモーメントは E[X2]=GX(1)+E[X]=GX(1)+GX(1)E[X^2] = G''_X(1) + E[X] = G''_X(1) + G'_X(1) と表せます。 これを分散の公式 V[X]=E[X2](E[X])2V[X] = E[X^2] - (E[X])^2 に代入すると、分散は次のように計算できます。

V[X]=GX(1)+GX(1)(GX(1))2V[X] = G''_X(1) + G'_X(1) - (G'_X(1))^2


積率母関数:モーメントを生み出すジェネレーター

確率母関数は非負の整数をとる離散分布にしか使えません。これを、マイナスの値をとる離散分布や、連続型確率変数にも使えるように一般化したものが、積率母関数(moment generating function、MGF、別名:モーメント母関数)です。

確率変数 XX に対し、積率母関数は次のように定義されます。

MX(t)=E[etX]M_X(t) = E[e^{tX}]

ここで tt は補助的な実数変数で、00 のまわりのある開区間で定義されます。具体的に書き下すと次のようになります。

なぜ「積率(モーメント)母関数」と呼ばれるのか

「モーメント・歪度・尖度」で、原点まわりの kk 次モーメントが E[Xk]E[X^k] として定義されることを学びました。

指数関数 etxe^{tx} のマクローリン展開(テイラー展開)は以下の通りです。

etx=1+tx+(tx)22!+(tx)33!++(tx)kk!+e^{tx} = 1 + tx + \frac{(tx)^2}{2!} + \frac{(tx)^3}{3!} + \dots + \frac{(tx)^k}{k!} + \dots

これを定義式 MX(t)=E[etX]M_X(t) = E[e^{tX}] に代入し、期待値の線形性(足し算や定数倍を外に出せる性質)を適用します。

(※厳密には、無限和と期待値(積分)の順序交換を行うためには、積率母関数が収束する範囲において一様収束性などの数学的議論が必要ですが、ここではそれらが満たされていると仮定して、項ごとに期待値を分配します)

MX(t)=E[1+tX+t2X22!+t3X33!+]M_X(t) = E\left[ 1 + tX + \frac{t^2 X^2}{2!} + \frac{t^3 X^3}{3!} + \dots \right]

MX(t)=1+tE[X]+t22!E[X2]+t33!E[X3]++tkk!E[Xk]+M_X(t) = 1 + t E[X] + \frac{t^2}{2!} E[X^2] + \frac{t^3}{3!} E[X^3] + \dots + \frac{t^k}{k!} E[X^k] + \dots

この展開式を見ると、tk/k!t^k / k! の係数に、原点まわりの kk 次モーメント E[Xk]E[X^k] がそのまま格納されていることが分かります。

したがって、積率母関数 MX(t)M_X(t)ttkk 回微分して t=0t = 0 を代入すれば、目的のモーメントを簡単に取り出すことができます。

MX(k)(0)=E[Xk]M^{(k)}_X(0) = E[X^k]

これより、期待値と分散は次のように求まります。


独立な確率変数の和と母関数

母関数が確率論でこれほどまでに重宝される最大の理由は、「独立な確率変数の和」を扱うときに圧倒的な威力を発揮するからです。

2つの独立な確率変数 XXYY があり、その和を W=X+YW = X + Y とします。このとき、WW の積率母関数 MW(t)M_W(t) は次のようになります。

MW(t)=E[et(X+Y)]=E[etXetY]M_W(t) = E[e^{t(X+Y)}] = E[e^{tX} \cdot e^{tY}]

ここで XXYY は独立なので、それらを変換した etXe^{tX}etYe^{tY} も独立になります。独立な確率変数の積の期待値は、それぞれの期待値の積に分解できます。

MW(t)=E[etX]E[etY]=MX(t)MY(t)M_W(t) = E[e^{tX}] E[e^{tY}] = M_X(t) M_Y(t)

つまり、**「確率変数の和の積率母関数は、それぞれの積率母関数の積」**になります。

本来、確率変数の和 of 分布(確率密度関数など)を求めるには「畳み込み(コンボリューション)」という複雑な積分や総和の計算が必要です。しかし、母関数の世界を経由すれば、計算は単なる掛け算になります。この性質は、中心極限定理の証明や、標本分布の導出において極めて重要な役割を果たします。

なお、冒頭で紹介した「サイコロを10回振った合計値の確率分布」を GX(s)10G_X(s)^{10} として計算できたのも、この性質の確率母関数(PGF)版である GX1++X10(s)=GX1(s)GX2(s)GX10(s)=GX(s)10G_{X_1+\dots+X_{10}}(s) = G_{X_1}(s) G_{X_2}(s) \dots G_{X_{10}}(s) = G_X(s)^{10} が成り立つためです。

ヒント

対数をとると和になる「キュムラント母関数」

積率母関数の自然対数をとった関数 KX(t)=logMX(t)K_X(t) = \log M_X(t)キュムラント母関数(cumulant generating function)と呼びます。

独立な確率変数の和 W=X+YW = X + Y に対し、積率母関数では MW(t)=MX(t)MY(t)M_W(t) = M_X(t)M_Y(t) という「積」でしたが、対数をとることで、キュムラント母関数では次のような「和」の形に変換できます。

KW(t)=log(MX(t)MY(t))=logMX(t)+logMY(t)=KX(t)+KY(t)K_W(t) = \log( M_X(t)M_Y(t) ) = \log M_X(t) + \log M_Y(t) = K_X(t) + K_Y(t)

この関数を微分することで得られる「キュムラント」には便利な性質があります。たとえば、KX(t)K_X(t) を2階微分して t=0t=0 を代入すると分散が得られます。この関係を利用すると、

V[X+Y]=KX+Y(0)=KX(0)+KY(0)=V[X]+V[Y]V[X+Y] = K''_{X+Y}(0) = K''_X(0) + K''_Y(0) = V[X] + V[Y]

となり、独立な確率変数の和の分散がそれぞれの分散の和になるという「分散の加法性」を、微分と足し算だけの代数的操作で非常にエレガントに導出することができます。


具体例で計算してみる

例 1:ベルヌーイ分布の確率母関数と期待値・分散

11 を確率 pp、値 00 を確率 1p1-p でとるベルヌーイ分布の確率変数 XX を考えます。

確率母関数(PGF)の計算:

GX(s)=E[sX]=s0(1p)+s1p=(1p)+psG_X(s) = E[s^X] = s^0 (1-p) + s^1 p = (1-p) + ps

期待値と分散の導出:

GX(s)G_X(s)ss で微分します。

GX(s)=pE[X]=GX(1)=pG'_X(s) = p \quad \Rightarrow \quad E[X] = G'_X(1) = p

もう一度微分します。

GX(s)=0GX(1)=0G''_X(s) = 0 \quad \Rightarrow \quad G''_X(1) = 0

分散の公式に当てはめます。

V[X]=GX(1)+GX(1)(GX(1))2=0+pp2=p(1p)V[X] = G''_X(1) + G'_X(1) - (G'_X(1))^2 = 0 + p - p^2 = p(1-p)

ベルヌーイ分布の期待値 pp、分散 p(1p)p(1-p) が正しく導出されました。

例 2:指数分布の積率母関数と期待値

確率密度関数が f(x)=λeλxf(x) = \lambda e^{-\lambda x}x0x \geq 0)で与えられる指数分布の確率変数 XX を考えます。

積率母関数(MGF)の計算:

MX(t)=E[etX]=0etxλeλxdx=λ0e(tλ)xdxM_X(t) = E[e^{tX}] = \int_{0}^{\infty} e^{tx} \cdot \lambda e^{-\lambda x} dx = \lambda \int_{0}^{\infty} e^{(t-\lambda)x} dx

この広義積分が収束するためには、tλ<0t - \lambda < 0、すなわち t<λt < \lambda である必要があります。

MX(t)=λ[e(tλ)xtλ]0M_X(t) = \lambda \left[ \frac{e^{(t-\lambda)x}}{t-\lambda} \right]_{0}^{\infty}

ここで t<λt < \lambda(指数部分の係数が負)であるため、xx \to \infty のとき e(tλ)x0e^{(t-\lambda)x} \to 0 となります。したがって、積分結果は次のようになります。

MX(t)=λ(01tλ)=λλt=(1tλ)1M_X(t) = \lambda \left( 0 - \frac{1}{t-\lambda} \right) = \frac{\lambda}{\lambda - t} = \left(1 - \frac{t}{\lambda}\right)^{-1}

これが指数分布の積率母関数です。

期待値の導出:

MX(t)M_X(t)tt で微分します。合成関数の微分公式を用います。

MX(t)=1(1tλ)2(1λ)=1λ(1tλ)2M'_X(t) = -1 \cdot \left(1 - \frac{t}{\lambda}\right)^{-2} \cdot \left(-\frac{1}{\lambda}\right) = \frac{1}{\lambda}\left(1 - \frac{t}{\lambda}\right)^{-2}

ここで t=0t = 0 を代入します。

E[X]=MX(0)=1λ(1)2=1λE[X] = M'_X(0) = \frac{1}{\lambda}(1)^{-2} = \frac{1}{\lambda}

指数分布の期待値 1/λ1/\lambda が定義通りの積分計算を経ずに、微分だけで求まりました。


PGFとMGFの関係と使い分け

確率母関数 GX(s)=E[sX]G_X(s) = E[s^X] と積率母関数 MX(t)=E[etX]M_X(t) = E[e^{tX}] は非常によく似ています。

実際、s=ets = e^t とおけば、両者は次の関係式で結ばれています。

MX(t)=E[etX]=E[(et)X]=GX(et)M_X(t) = E[e^{tX}] = E[(e^t)^X] = G_X(e^t)

名称定義主な対象期待値 E[X]E[X] の求め方分散 V[X]V[X] の求め方
確率母関数 (PGF)G(s)=E[sX]G(s) = E[s^X]非負整数の離散分布G(1)G'(1)G(1)+G(1)(G(1))2G''(1) + G'(1) - (G'(1))^2
積率母関数 (MGF)M(t)=E[etX]M(t) = E[e^{tX}]離散・連続の両方M(0)M'(0)M(0)(M(0))2M''(0) - (M'(0))^2

離散型の「数え上げ」問題(サイコロの目の和や、コイン投げの表の回数)には、多項式の積として直感的に扱えるPGFが適しています。一方、正規分布などの連続分布を含めた一般的な数理統計学の枠組みでは、MGFが主流として使われます。

なお、MGFの積分(または総和)すら収束しない分布(例:コーシー分布)に対しては、虚数単位 ii を用いた特性関数(characteristic function) CX(t)=E[eitX]C_X(t) = E[e^{itX}] を使用します。

ヒント

特性関数が常に存在する数学的理由

オイラーの公式 eitX=cos(tX)+isin(tX)e^{itX} = \cos(tX) + i\sin(tX) より、複素数 eitXe^{itX} の絶対値は常に以下のように有界(11 以下)になります。

eitX=cos2(tX)+sin2(tX)=1|e^{itX}| = \sqrt{\cos^2(tX) + \sin^2(tX)} = 1

積分する対象の絶対値が常に 11 で抑えられるため、確率密度関数 f(x)f(x) との積 eitXf(x)e^{itX} f(x) の積分(期待値)は必ず絶対収束します。これが、積率母関数と違って「特性関数が任意の確率分布に対して常に存在する」強力な理由です。


よくある誤解

注意

「すべての確率分布に積率母関数が存在する」 ── 通常、これは誤りです。

MGFの定義式 E[etX]E[e^{tX}] は、確率密度関数の裾(テール)が非常に厚い分布(極端な値が出やすい分布)では、積分が無限大に発散してしまい、00 以外の tt で収束しないことがあります。

たとえば、「コーシー分布」や「対数正規分布」、「パレート分布」などには積率母関数が存在しません。これらの分布を扱う際には、積率母関数の代わりに、複素数を用いることで常に存在が保証される「特性関数」を使うか、定義通りのモーメント計算を行う必要があります。


まとめ

母関数は、確率分布のすべての情報をたった一つの「関数」の中にコンパクトに閉じ込める手法です。

離散型(非負整数)に特化して多項式のように扱う「確率母関数(PGF)」と、離散・連続問わずに使えてマクローリン展開の各係数からモーメントを抽出できる「積率母関数(MGF)」の2つが基本となります。

母関数を導入することで、複雑な和や積分の計算を「関数の微分」というシンプルな操作に置き換えることができます。さらに、「独立な確率変数の和の母関数は、個々の母関数の積になる」という性質により、複数の確率変数が絡む複雑な計算を劇的に単純化できます。

一見すると抽象的で難解に見える概念ですが、その本質は「計算を楽にするための強力なパッケージング技術」です。この道具を使いこなせるようになると、統計学の数理的な背景がぐっとクリアに見えてくるはずです。