マルウェア解析できるデータサイエンティストblog

マルウェアのリバースエンジニアリング技術を持つデータサイエンティストとして、データ分析/機械学習に関する情報を発信します。

確率母関数で確率分布の特性が求められる

f:id:kazukiigeta:20210331112939p:plain ベルヌーイ分布や、ポアソン分布、幾何分布などの確率分布の平均分散といった特性を自分で算出することができるのを皆さんご存じですか?

私は、統計検定準1級の勉強中にそのことを知って、ちょっとした感動を覚えました。

今まで何となく暗記していたものを、ちゃんと自分で導出できるようになるのって嬉しいですよね😆

というわけで、今回は確率分布の特性を自分で算出することができる確率母関数についての記事を書きます。


確率母関数 (Probability generating function)とは

確率密度関数から平均分散歪度尖度といった分布の特性を算出することができる関数です。

以下の式で定義されています。

\displaystyle{
G(s) = E[s^{X}] = \sum_{x} s^x f(x)
}

中身は非常に単純で、確率変数sxの期待値になっています。 f(x)は確率密度関数を意味しています。

条件

  • 確率変数Xは整数値を取る。
  • 1を含むある開区間のすべてのsに対して、右辺の和が収束すると仮定する。


確率母関数でベルヌーイ分布の期待値と分散を求めてみる

準備

まずは、確率母関数の式から期待値E[sx]を求める式を導出します。

G(s)の導関数にs=1とおいたとき、G'(1)Xの期待値を表します

\displaystyle{
        G^{'}(s) = E[Xs^{X-1}]
    }
\displaystyle{
        G^{'}(1) = E[X]
    }


G(s)の2次導関数にs=1とおいたとき、G''(1) + G'(1)X2の期待値を表します。

\displaystyle{
        G^{''}(s) = E[X(X-1)s^{X-2}]
    }
\displaystyle{
        G^{''}(1) = E[X(X-1)] = E[X^2] - E[X]
    }


したがって、G''(1)G'(1)を使ってXの分散を求めることが出来ます

\displaystyle{
        G^{''}(1) + G^{'}(1) + \{G^{'}(1)\}^2 = E[X^2] - \{E[X]\}^2 = V[X]
    }


ベルヌーイ分布に適用

ここからは、確率母関数を用いる実例として、ベルヌーイ分布の期待値と分散を求めてみることにします。

確率母関数を利用するためには、分布の確率密度関数が必要となるため、以下に記載します。

ベルヌーイ分布の確率密度関数
\displaystyle{
f(x)=p^x(1-p)^{1-x}
}


ベルヌーイ分布の確率母関数G(s)は、以下の様になります。

\displaystyle{
        G(s) = E[s^{X}] = \sum_{x} s^x f(x) = \sum_{x} s^x p^x(1-p)^{1-x}
    }


ベルヌーイ分布の確率変数Xは0か1の2値のみを取り得る(x∈{0, 1})ため、それぞれ代入して和を取ると以下の様になります。

\displaystyle{
        G(s) = \sum_{x∈\{0, 1\}} s^x p^x(1-p)^{1-x} = 1 - p + sp
    }


以上より、次のように期待値E[X]と分散V[X]を求めることが出来ます。

\displaystyle{
        G^{'}(s) = p
    }
\displaystyle{
        G^{''}(s) = 0
    }
\displaystyle{
        G^{'}(1) = p
    }
\displaystyle{
        G^{''}(1) = 0
    }
\displaystyle{
        E[X] = G^{'}(1) = p
    }
\displaystyle{
        V[X] = G^{''}(1) + G^{'}(1) + \{G^{'}(1)\}^2 = 0 + p - p^2 = p(1 - p)
    }

補足

確率母関数は正の整数にのみ利用可能ですが、モーメント母関数を使えば連続確率変数で対しても同じように分布の特性を求めることができるようになります。

また、確率母関数はk階微分を行うとE[X(X-1)(X-2)...(X-k+1)]のようにk次階乗モーメントを容易に求められるという点でメリットがあるそうです。 一方で、ただ期待値(1次モーメント)と分散(2次モーメント)を算出したいだけなら実はモーメント母関数を使った方が算出が簡単になります。

日本統計学会公式認定 統計検定準1級対応 統計学実践ワークブックには、確率母関数とモーメント母関数さらには特性関数なんてものまで紹介されていました。

https://www.amazon.co.jp/%E6%97%A5%E6%9C%AC%E7%B5%B1%E8%A8%88%E5%AD%A6%E4%BC%9A%E5%85%AC%E5%BC%8F%E8%AA%8D%E5%AE%9A-%E7%B5%B1%E8%A8%88%E6%A4%9C%E5%AE%9A%E6%BA%961%E7%B4%9A%E5%AF%BE%E5%BF%9C-%E7%B5%B1%E8%A8%88%E5%AD%A6%E5%AE%9F%E8%B7%B5%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%96%E3%83%83%E3%82%AF-%E6%97%A5%E6%9C%AC%E7%B5%B1%E8%A8%88%E5%AD%A6%E4%BC%9A/dp/478060852X/ref=asc_df_478060852X/?tag=jpgo-22&linkCode=df0&hvadid=342414341173&hvpos=&hvnetw=g&hvrand=12426885836471452873&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009332&hvtargid=pla-912476174347&psc=1&th=1&psc=1www.amazon.co.jp

最後に

データ分析や機械学習の手法など直接的にすぐ活用できる技術・知識だけでなく、それらを支える数学/統計の基礎知識についても少しずつ学んでいき、データサイエンティストとして成長していけたらと思います。

今回の記事はここまで。Kazuki Igetaでした😃