📖 二項分布とベルヌーイ分布 登校中にヤンキーに遭遇してしまう確率…?
📖 二項分布
「 確率、平均、分散、確率変数 は前提知識として必要なようだぜ」
「 👆 コインの オモテが出る確率と、ウラが出る確率の話しをしているのは 確かだぜ」
「 👆 コインの ウラ を 0、 オモテ を 1 としようぜ?」
「 👆 ウラ と オモテ の2つしかない ということに X という記号を当ててると思ってくれだぜ。
この X は 確率変数 と呼ばれることがあるが、プログラムやったことあるんなら ハッシュセットの名前ぐらいに思っておけだぜ。
ハッシュセットが分かんなかったら、要素の順番が決まってない配列と思えだぜ」
「 👆 そして オモテが出る確率と、ウラが出る確率は、5分5分とも限らないよね、という話しをしているのは 確かだぜ」
「 ベルヌーイ分布は難しいから、簡単な例から 見ていこうぜ?」
「 趣旨としては、2本の青い棒をつなげれば 長さが 1.0 になるぜ」
「 n=1 のとき p なら、 n=0 のとき 1-p ということなんじゃないの?
それ以上の深い意味があんの?」
「 👆 じゃあ オモテが ちょっとばかし出やすい インチキ・コイン を例に考えようぜ?」
func Pr(x):
if x==1:
return 0.6
else if x==0:
return 0.4
else:
panic( )
「 👆 プログラムを疑似コードで書くと こんな感じ。
Pr(1)
なら 答えは 0.6 で、
Pr(0)
なら 答えは 0.4 を返すぜ」
「 x を入れたら p か、 1-p のどっちかが返ってくるんだろ。 関数だな」
p = 0.6
func Pr(x):
if x==1:
return p
else if x==0:
return 1-p
else:
panic( )
📖 確率質量関数(probability mass function)
p(x)
「 さっき 大文字の Pr が名前の関数やったのに。何が違うんだぜ?」
📖 確率質量関数
「 👆 プログラムのところを 数式でも おんなじことが できるようだぜ」
p^x × (1-p)^(1-x)
p^x × (1-p)^(1-x)
= p^1 × (1-p)^(1-1)
= p^1 × (1-p)^ 0
= p^1 × 1
「 👆 右の方の数が 0乗になって、 1 になったな。 左の方の数が残ったぜ」
p^x × (1-p)^(1-x)
= p^0 × (1-p)^(1-0)
= 1 × (1-p)^1
「 👆 左の方の数が 0乗になって、 1 になったな。 右の方の数が残ったぜ」
「 うーん。 この P
関数 逆なんじゃないの?
オモテが 出るか、 ウラが 出るか 知りたいのに、 P(n)
の n って、 オモテか ウラを入れんの?」
「 👆 このコインを10回投げたとき、オモテがでるのは何回ぐらいだと思うんだぜ?」
0.4 * 0 + 0.6 * 1
= 0 + 0.6
= 0.6
E(X) = p
「 👆 式が長ったらしいんで、 E(X)
が 期待値 を求める関数だぜ。期待値は p なんだけど」
「 数値型変数1個受け取る Pr(x) 関数に、 X つっこんでいいの?」
「 E(X) = p
は X の要素の 0、 1 の どっちを突っ込んでもいい、というプログラムの コメント みたいなもんだぜ。
関数コール文ではないんで」
sum = 0
for (k=0; k<=1; k+=1):
sum += k * Pr(k)
return sum
sum = 0 * Pr(0)
sum += 1 * Pr(1)
return sum
return 0 + 1*p
return p
「 分散の話しをしたいんだが、前提知識として 平均 って何かの説明が要るな」
「 👆 例えば コンピューター将棋の大会に 8チーム出場していて、 PR文書の平均ページ数を調べようと思ったら」
(1 + 1 + 2 + 2 + 1 + 5 + 2 + 4) / 8
= 18 / 8
= 2.25
「 👆 だいたい 1人 2.5ページ 書いてきてるなあ、と 考えたりするわけだぜ」
「 👆 平均(μ;ミュー)って この辺か。
こんな 何からも離れている線が 役に立つのかだぜ?」
「 実体とかけ離れていても、数字1個で表したいときって あるのよ。比較したいから」
「 👆 じゃあ そこに 100ページのPR文書を提出してくるやつが 1人 居たらどうなるんだぜ?」
(1 + 1 + 2 + 2 + 1 + 5 + 2 + 4 + 100) / 8
= 118 / 8
= 14.75
「 👆 1人 14.75ページぐらい 書いている計算になるな」
「 平均の中に おかしなデータが ぼんっと入ってないか 雰囲気を見てみるのが 分散 という考え方だぜ」
📖 統計学における分散とは?不偏分散との違いも! 例題でわかりやすく解説
「 👆 分散の説明をしても 難しいだろうから、 計算してみようぜ?」
(1.5625 + 1.5625 + 0.0625 + 0.0625 + 1.5625 + 7.5625 + 0.0625 + 3.0625) / 8
= 15.5 / 8
= 1.9375
「 それが 分散(Variance) だぜ。
その数が小さいほど、 1つだけバカに離れた数が入ってる、みたいなことが少ないわけだぜ」
「 👆 1チームだけ離れてるときの平均の誤差も見てみようぜ?」
(13.75 + 13.75 + 12.75 + 12.75 + 13.75 + 9.75 + 12.75 + 10.75 + 85.25) / 8
= 23.15625
📖 統計における分散とは?意味や求め方、標準偏差との違いを詳しく解説します
「 👆 分散の説明をしても 難しいだろうから、 簡単なところから やろうぜ」
// 0 の 2 乗
= 0 ^ 2
= 0 * 0
= 0
// 1 の 2 乗
1 ^ 2
= 1 * 1
= 1
「 👆 0 の 2乗は 0、 1 の 2乗は 1 というのは OK?」
「 👆 0 と 1 で、2乗して面積を求めているが、結局 面積も 0、 1 なことを知れだぜ」
「 👆 1辺の長さを p とする正方形の面積は、 p だぜ。
これは p は 0 か 1 のどっちかしか無いから はっきりしてるぜ」
return E(k^2) - E(k)^2
if k==0:
return E(0^2) - E(0)^2
elif k==1:
return E(1^2) - E(1)^2
if k==0:
return E(0) - E(0)^2
elif k==1:
return E(1) - E(1)^2
if k==0:
return (1-p) - (1-p)^2
elif k==1:
return p - p^2
return (1-p) * p
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!