
2.3
ベイズ・フレームワーク
■
13
pmf = Pmf()
pmf.Set('Bowl 1', 0.5)
pmf.Set('Bowl 2', 0.5)
各仮説についての事前確率を含むこの分布は、事前確率分布(
prior distribution
)と
呼ばれる。
新しいデータ(バニラクッキー)に基づいて分布を更新するには、各事前確率に対応
する尤度を掛ける。ボウル
1
からバニラクッキーを取り出す確率は
3/4
となる。ボウル
2
の尤度は
1/2
となる。
pmf.Mult('Bowl 1', 0.75)
pmf.Mult('Bowl 2', 0.5)
Mult
は、読者が予想する通りの動きをする。すなわち、指定された仮説の確率を取
り出し、それに指定された尤度を掛ける。
この更新後、分布は正規化されていないが、これらの仮説は相互排他で全体網羅な
ので、再正規化(
renormalize
)できる。
pmf.Normalize()
結果は、各仮説に対する事後確率の分布で、事後確率分布(
posterior distribution
)
と呼ばれる。
最終的に、ボウル
1
の事後確率が得られる。
print pmf.Prob('Bowl 1')
答えは
0.6
である。この例は、
http://thinkbayes.com/cookie.py
からダウンロードで
きる。詳細については、まえがきの「コードについて」(
ix
ページ)を参照のこと。
2.3
ベイズ・フレームワーク
他の問題に移る前に、前節のコードを書き直して一般的なものにしておきたい。最