
5.4
加数
■
49
5.4
加数
ベイズ統計の基本操作は
Update
である。これは事前確率分布とデータ集合とから、
事後確率分布を生成する。実際の問題を解く際には、スケーリング、加算、最大、最
小などの算術演算を含めて、他にも多くの操作が必要となる。
本章では、そのうちの加算と最大を扱う。他の操作については、必要になったとこ
ろで扱う。
最初の例は、「
Dungeons & Dragons
」というロールプレイング・ゲームに基づくもの
で、これでは、プレイヤーの意思決定結果がサイコロを振って出た目で決定される。実
際、ゲームの開始前にプレイヤーの人物の属性、すなわち、体力、知力、賢さ、器用さ、
体格、カリスマは、
3
つの
6
面体のサイコロの目とその和で決まる。
そこで、この和の分布を知りたくなる。計算するには次のように
2
つの方法がある。
シミュレーション
1
つのサイコロの目を表す
Pmf
が与えられ、ランダムなサンプルを生成し、そ
れらを足し合わせ、これを繰り返してシミュレーションした和の分布を出す。
数え上げ
2
つの
Pmf
が与えられ、あらゆる値の対を数え上げて、和の分布を計算する。
Thinkbayes
では、両方の関数を提供する。最初の方式の例を示す。まず、
Pmf
で
1
つ
のサイコロを表現するクラスを定義する。
class Die(thinkbayes.Pmf):
def
__
init
__
(self, sides):
thinkbayes.Pmf.
__
init
__
(self)
for x in xrange(1, sides+1): ...