Kei Minagawa's Blog

皆川圭(@keimina)のブログ、Pythonで試したことを書いていきます

混合分布が確率であることについて

混合分布が確率であることについて書きます。混合分布とは、確率質量関数または確率密度関数を線形結合させたものだと理解しています。本を読んでいたところ、結合係数の和が1のとき、混合分布も確率質量関数または確率密度関数として解釈することができるということでした。個人的にこれがなぜかわからなかったので備忘録としてまとめました。

1 わからなかったこと

まず、わからなかったことについて書きます。「このように考えたらわかるようになった」ということについては次章に書きます。

話を簡単にするため、ここでは、離散的な事象についての確率質量関数に限定して話を進めます。例えば、四面体のサイコロと、いかさまサイコロの二つの確率質量関数の分布が以下だったとします。※サイコロがいかさまか否かは本題ではありません。

普通のサイコロ:

X 1 2 3 4
P1(X) 0.25 0.25 0.25 0.25

いかさまサイコロ:

X 1 2 3 4
P2(X) 0.1 0.2 0.3 0.4

このように、離散的な確率分布であれば、イメージしやすいです。まずは、二つの確率分布がイメージできました。これら二つの確率質量関数をそれぞれ P1(X), P2(X) とします。

※Xは確率変数

この二つの確率分布を用いて混合分布の関数 P3 を作成すると以下になります。

P3(X) = w1*P1(X) + w2*P2(X)

※w1, w2 はスカラで、結合係数

X 1 2 3 4
P3(X) w1*0.25 + w2*0.1 w1*0.25 + w2*0.2 w1*0.25 + w2*0.3 w1*0.25 + w2*0.4

このとき

w1 + w2 = 1

であれば

P3(1) + P3(2) + P3(3) + P3(4)

が成り立ち、P3 は確率質量関数となる。

上記のがなぜそう言えるのかがわかりませんでした

2 このように考えたらわかるようになった

P3(1) + P3(2) + P3(3) + P3(4)

を計算すると確かに 1 になるので確率なのですが、次のように式を変形し

X 1 2 3 4
P3(X) w1*0.25 w1*0.25 w1*0.25 w1*0.25
  + + + +
  w2*0.1 w2*0.2 w2*0.3 w2*0.4

このように分解して見ると理解しやすかったです。

そして、

w1*0.25 + w1*0.25 + w1*0.25 + w1*0.25

w1*(0.25 + 0.25 + 0.25 + 0.25)

すなわち

w1*1.0

すなわち

w1

結局のところ、「足して1になるベクトルの要素のそれぞれに w1 をかけて、合計を求める」ことは「1にw1をかける」ことと同じということです。

Python でこれを表現すると以下のようになるでしょうか、、、

import numpy as np
from sympy import symbols, solve, Eq, simplify
w1 = symbols("w1")
a1, a2, a3, a4 = symbols("a1 a2 a3 a4") # [0.25, 0.25, 0.25, 0.25] を [a1, a2, a3, a4] としています。
vec = np.array([a1, a2, a3, a4])
s = sum(w1*vec)
print(s.factor())

# a1 + a2 + a3 + a4 = 1 の条件を s に反映して s を求める
left = a1 + a2 + a3 + a4
a1_new = solve(Eq(left, 1), a1)[0]
# s に 条件を反映
print(simplify(s.subs({a1:a1_new})))
w1*(a1 + a2 + a3 + a4)
w1

同様に

w2*0.1 + w2*0.2 + w2*0.3 + w2*0.4

w2(0.1 + 0.2 + 0.3 + 0.4)

すなわち

w2*1.0

すなわち

w2

です。

これらをまとめると

P3(1) + P3(2) + P3(3) + P3(4)

w1 + w2

と等しくなり

w1 + w2 = 1

であるならば

P3(1) + P3(2) + P3(3) + P3(4) = w1 + w2 = 1

となるため、P1(X) と P2(X) を結合係数 w1, w2(ただし w1 + w2 = 1 のとき) で線形結合させた関数 P3(X)は確率質量関数としてみなせる。

以上です。おやすみなさい。