SlideShare a Scribd company logo
1 of 9
記述されている数式をコードに
今回の目標
   
 e
n
nNP
n
!
・p.57~59に示されている「ポアソン分布」を具体的な実装に落とし込む
・下記式をとりあえず読み解く
(雑な説明)
・ポアソン分布:滅多に発生しない事象を表現する確率関数
(雑な例)
1日あたりの深夜のコンビニ訪問客数は12人であることが知られている(λ=12)。
ある日の深夜のコンビニ訪問客数Nが10人(n=10)である確率はいくらか?
ポアソン分布を実装してみよう
意味の把握編1
   
 e
n
nNP
n
!
定義
 nNP 
まずは左辺の意味を読み解く
:確率変数Nがn回発生する確率⇒???
N:クラス
n:インスタンスこういうイメージで考える
具体例
N:「夜中にコンビニを訪問した客の数」という概念
n:「夜中にコンビニを訪問した客の具体的な数値」
「夜中にコンビニを訪れた客数Nが10人である確率」は
P(N=10)と表現される。
ポアソン分布を実装してみよう
意味の把握編2
   
 e
n
nNP
n
!
定義
次に右辺の意味を読み解く
n
 :Math.Pow(λ,n)と等価
!n :n×(n-1)×(n-2)×・・・×3×2×1

e :Math.Exp(-λ)と等価
ポアソン分布を実装してみよう
プリミティブな実装と問題点
   
 e
n
nNP
n
!
fooもbarもInfになる…
ポアソン分布を実装してみよう
解決編1
!n
n

の対数を取る
 
    









n
k
n
n
kn
nn
n
n
1
loglog
1log1loglogloglog
!loglog
!
log




対数の割り算は、減算と等しい
・・・という事実をとりあえず利用する
対数の掛け算は、加算と等しい
・・・という事実をとりあえず利用する
ポアソン分布を実装してみよう
解決編2






!
log
n
n

は分かった。では
!n
n

はいくらなんだ!
X
eX log
 が成り立つ・・・という事実を利用する

























 
n
k
nn
kn
nn 1
logloglogexp
!
logexp
!


つまり
ポアソン分布を実装してみよう
解決編3
   
 e
n
nNP
n
!
を、上手く変形してみる






































n
k
n
k
nn
nn
enn
e
n
e
n
1
1
loglogexp
logloglogexp
!
logexp
!
X=Math.Exp(Math.Log(X))を利用
対数の乗算・除算を、
加算・減算に変形
∵X=Math.Log(Math.Exp(X))
   
kn
n
ee
n
logloglog
!
実装するとこんな感じ

More Related Content

More from Satoshi Kawamoto (8)

統計検定3級 2
統計検定3級 2統計検定3級 2
統計検定3級 2
 
統計検定3級 1
統計検定3級 1統計検定3級 1
統計検定3級 1
 
Prml7 7.1
Prml7 7.1Prml7 7.1
Prml7 7.1
 
Prml 4.3.6
Prml 4.3.6Prml 4.3.6
Prml 4.3.6
 
Prml 4.3.5
Prml 4.3.5Prml 4.3.5
Prml 4.3.5
 
Prml 4.1.2
Prml 4.1.2Prml 4.1.2
Prml 4.1.2
 
Prml 4.1.1
Prml 4.1.1Prml 4.1.1
Prml 4.1.1
 
Prml 4
Prml 4Prml 4
Prml 4
 

マンガでわかるベイズ統計学第二章実装Tips(C#)