以下のサイトを見ていて、 「どう見ても3/8じゃん?P(A)も8/17じゃん?」 ってなって納得行かなかった。 なので、実際にコードを書いて実験してみて、そもそもの考え方が間違ってたんだなーと理解した。
https://bellcurve.jp/statistics/course/6444.html
わかりやすくするため、ボールの数を変えます。 たくさん試行回数を増やせば、まぁまぁいい感じの割合になるでしょう(コードでは1200万回試してます)
袋の名前 | 白ボールの数 | 赤ボールの数 | このバッグが選ばれている状態で白ボールを引く確率 |
---|---|---|---|
bag_A | 1 | 1 | 1/2 |
bag_B | 2 | 2 | 2/4 = 1/2 |
bag_C | 3 | 3 | 3/6 = 1/2 |
すべてのボールから、1つだけランダムに選ぶ。 bag_Aから選ばれている確率は大体1/6。 私が愚かであったときの考え。
まずbagを選び、その上でボールを選ぶ。 bag_Aから選ばれている確率は大体1/3。
またまた、ボールの数を変えます。 第1の実験ではどの袋でも白ボールが出る確率は同じでしたが、 今回はその割合を変更します。
袋の名前 | 白ボールの数 | 赤ボールの数 | このバッグが選ばれている状態で白ボールを引く確率 |
---|---|---|---|
bag_A | 1 | 1 | 1/2 = 6/12 = 50% |
bag_B | 1 | 2 | 1/3 = 4/12 = 33% |
bag_C | 1 | 3 | 1/4 = 3/12 = 25% |
愚かであった頃の自分だった場合、 A:B:C が1:1:1になると考えてましたが…。
1:1:1とはなりませんね。 bag_Aになる可能性が高い。
下の式でも書きますが、36が分母になるのでキリいい感じになるだろうと思ってやってみました。 確かに、公式通りの確率(6:4:3)に近づきましたね。
(次の段階で約分しやすいように、分母は36で揃えておく) bag_Aかつwhite_ballを P(AnW) = P(A) * P(W|A) = 1/3 * 6/12 = 6/36 bag_Bかつwhite_ballを P(BnW) = P(B) * P(W|B) = 1/3 * 4/12 = 4/36 bag_Cかつwhite_ballを P(CnW) = P(C) * P(W|C) = 1/3 * 3/12 = 3/36 上記より、white_ballになる確率を P(W) として (6 + 4 + 3) /36 = 13/36
bag_Aになる確率: P(AnW)/P(W) = 6/13 = 46.154% bag_Bになる確率: P(BnW)/P(W) = 4/13 = 30.769% bag_Cになる確率: P(CnW)/P(W) = 3/13 = 23.077%
実験の結果とだいぶ近いですね。 なかなかいい感じなのではないでしょうか?
愚かしかった頃の自分は、ベイズの公式の計算を見て「そんな複雑な計算してたら、足したときに1にならないっしょ」って疑ってました。 それを晴らす上でも、一応の計算。
最終的に、P(W) + P(R) = 1 になればOKですね。
P(W) は先程確認したとおり、 (6 + 4 + 3) /36 = 13/36
**P(R)**は、 bag_Aかつred_ballを P(AnR) = P(A) * P(R|A) = 1/3 * 6/12 = 6/36 bag_Bかつred_ballを P(BnR) = P(B) * P(R|B) = 1/3 * 8/12 = 8/36 bag_Cかつred_ballを P(CnR) = P(C) * P(R|C) = 1/3 * 9/12 = 9/36 上記より、P(R) = (6 + 8 + 9) /36 = 23/36
P(W) + P(R) = 13/36 + 23/36 = 1
うん、なりますね。
実際に「これはベイズを使わねば!」っていう判断って難しそうですね。 ランダムに選ぶ回数が2回以上になっているか?というところは注意してみていかないと、また同じミスをおかしてしまいそう。 似たようなことを普段からやっている環境にいるわけではいないので、忘れてしまいそうです。
1ヶ月後の自分でも、「ボールは全部で9個、白ボールは全部で3個なんだから、単純にP(W) = 3/9でしょ?」ってなってしまいそうです。 しかも、いやらしいことに3/9 = 12/36なので、結構近いからミスに気づきにくいんですよね。。。
choose - chose - chosen
読み方は「チョウズン」みたいな感じ。音節は2つ。 知らない人がいるかも?