元理系院生の新入社員がPythonとJavaで色々頑張るブログ

プログラミングや機械学習について調べた事を書いていきます

ベイズ理論(2)

この記事にかかれていること

確率分布と確率密度関数について

ベイズ統計

前回の記事でベイズの定理の導出と簡単な使い方を説明しました。

ベイズ理論 - 理系大学生がPythonで色々頑張るブログ

今回はもうちょっと踏み込んだ話をします。

確率論の話

ベイズ統計を扱う為に必要な確率論の大切な考え方について触れます。
必要な用語は「確率変数」と「確率分布」と「確率密度関数」の3つだけです。

確率変数

確率変数ですが、これは確率的に決定する事象の事を指します。
コインを例にすると、コイントスをした際に出る"目"と出る確率を表にすると次のようになります。

確率 0.5 0.5

この例において、確率変数は"目"になります。この目は確率的に表と裏という値を取ります。

確率分布

確率分布ですが、これは確率変数が取りうる"目"のそれぞれの確率を並べたものです。
この場合は確率変数 Xに付いて、 P(X=表)=0.5, P(X=裏)=0.5ですね。

確率密度関数

確率密度関数は確率分布を拡張したものです。
確率分布ではコインの目の様に、離散的な値(白黒はっきりしてるもの)を扱う事は出来るのですが、連続的な値を扱うのは難しいです。

確率密度関数は連続的な値を取りうる確率変数を扱う確率分布の関数です

確率密度関数は確率変数を引数とした関数となるので、 f(X)となります。

ではXにはどの様な値が入るのでしょうか?連続的な確率と聞いてもピンときませんよね。投げたサイコロの目が3.3333...だった・・・と言われても頭に?マークが出てしまいます。

連続的な確率変数の例

連続的な確率変数は、良く計量誤差を例に説明されている用に感じます。
今回は身長を例に連続的な確率変数を考えてみます。

ランダムに沢山の男性を集めてきた時の平均身長を171cmとします。(他意はないです)

このグループの中から更にランダムに一人の身長を測った時、171cm付近である確率と180cm付近である確率はどちらが高いでしょうか。

多分、きっと、おそらく171cm付近である確率のほうが高そうですよね。

このグループに所属する人々の身長が正規分布に従っていると過程した時、次のように可視化出来ます。f:id:emoson:20150220152242p:plain
(ちょっと160cm付近の人の人数が少なすぎる気がしますが、気にしないでください)

この分布に対し、171cm付近と180cm付近の確率密度値に印を付けると次のようになります。
f:id:emoson:20150220152821p:plain

視覚的に171cm付近の方が、確率密度値が大きい事が分かり、確率分布の考え方から
「この集団からランダムに選ん人の身長が171cm付近である確率は、180cm付近である確率より高い」
という事が分かります。

さて、さっきから171cm付近や180cm付近と170cmジャストではなく、「付近」と言っていますが、これが連続値の連続値たる部分でも有ります。

身長などの連続値は171cmジャスト!なんて事はなく、171.0126...扱おうとしたら小数点以下をどこまで考えればいいのか分かりません。

離散的な確率として扱う場合には、小数点以下は四捨五入とズバッと決定すればよいのですが、根本的な問題解決にはなってませんよね。

そこで、連続的な確率では確率密度関数の面積を確率密度値として考えます。


確率密度関数の面積は、確率密度関数を扱う区間で定積分することで求めることが出来ます。




次こそはPythonベイズ理論を実装する記事を書きたいなぁ