数学への挑戦 第二弾〜卒業までに彼氏ができる確率:数理モデルxプログラミング〜

始めに断っておきますが、参考にしている書籍のタイトルです。自分の話ではございません(笑)

余談

世間にはオープンデータを始め色々な情報(統計データ)が落ちています。
図書館やインターネットには国、市が作成したという系データというものがWebAPIという形で使用することができます。
例えば、Macユーザーの方だったらターミナルを立ち上げて
下のようなコマンドを叩いてみてください。
curl -s https://api.ipify.org?format=jsonこれをターミナルから叩くと、自分の端末が使用しているグローバルIPがわかるらしいです。

こんな感じで、たくさんの情報がインターネット上にあるのでそれを有効利用するために「統計」「人工知能」。。。などと騒がれる昨今ですが、基本を理解しないと「なんとなく動いた。。。」で終わってしまうんで基本を理解つまりは数学的にどういう意味なのか?を理解するために数理モデルを学習します。

学習中の本は以下のものです。

彼氏ができる確率

この本に出てくる「青葉」は女子大生です。やはり女の子は結婚などがきになるようです。
そして、結婚できるか不安になったようです。。。

その不安を解消するために「数理モデル」をしようしようというのが今回のお話です。。。

ベルヌーイ分布

「なぜ?分布が?」と思った方、自分もそう思ったのでよく本を読んでみます。
とりあえずは「確率」でものを考えるようです。
コインと時と同じように考えますので。。。
「出会った男性が青葉のことを好きになる or ならない」で考えます。

好きになる 好きにならない
1 0

そして、確率変数の時と同じように表にすると下のようになります。

出来事 確率
好きにならない 0 1 - p
好きになる 1 p

P(X1 = 1) = p
P(X2 = 0) = 1-p

これが、ベルヌーイ分布というもだと書いてありました。

確率変数Xが、「確率pでX=1」となり、「確率1-pでX=0」となる時、確率変数Xはベルヌーイ分布に従う、という

これをベースにして

n人の異性と出会いx人から好かれる確率を計算する

ここで人数を「n」とか「x」のように<変数>にしておくとこの変数に10とか100とか入れ替えて計算できる、ということです。
プログラマからして見ると「いつも使ってるものと同じ」です。
データ型はintとかlongになるのかな?いや、小数点も扱うからdoubleかもしれない(笑)

そして、上の値は○○%の確率で「好きになる」 or 「好きにならない」の2択であることに注意が必要です。
さらに、「確率」と記載していますが、これは「割合」を示す数値で例えば『「確率p=0.01」で男性に好かれる』というのは100人と出会った場合男性が一人好きになるという意味なので確率というよりも「割合」という意味になります。

実際に考える

男性3人に出会いそれぞれが青葉を好きになる結果のパターン数を出してみる

表にして見ると下のようになります。あくまで人数に注目しています。

男性1(X1) 男性2(X2) 男性3(X3) 合計
No No No 0
Yes No No 1
No Yes No 1
No No Yes 1
Yes Yes No 2
Yes No Yes 2
No Yes Yes 3
Yes Yes Yes 3

このようになります。「Yes」は好きになる、「No」は好きにならないことを示しています。

そして「青葉」が気がついたことは下のようなことです。

好きになる人の合計は常に「X1 + X2 + X3」になる

なるほど、「男性1〜3」を変数として考えればそーなるな。。。

独立な確率変数

当然の話ではあるが、男性1〜男性3に関連性は、ありません。このような状態を「独立」していると言いいます。

確率変数が独立であるというのは、どんな実験値x1, x2についてもP(X1 = x1, X2 = x2) = P(X1 = x1)P(X2 = x2)が成り立つ

つまり、上のベルヌーイ分布に照らし合わせ流と下のようになります。

P(X1 = 0, X2 = 0) = P(X1 = 0)P(X2 = 0)
P(X1 = 0, X2 = 1) = P(X1 = 0)P(X2 = 1)
P(X1 = 0, X2 = 1) = P(X1 = 0)P(X2 = 1)
P(X1 = 1, X2 = 0) = P(X1 = 1)P(X2 = 0)
P(X1 = 1, X2 = 1) = P(X1 = 1)P(X2 = 1)

そして、実験値と確率を表にすると下のようになります。

X1 X2
0 1 0 1 実験値
1/2 1/2 1/2 1/2 確率

X1の期待値は

(0 x 1/2) + (1 x 1/2) = 0.5

X2の期待値は

(0 x 1/2) + (1 x 1/2) = 0.5

両方とも同じになります。

今日はここら辺にしておきます。次回は「確率変数の足し算」をやります。

でわでわ。。。



数理モデル関連ページ

  1. 数学への挑戦 第二弾〜数理モデルxプログラミング〜
  2. 数学への挑戦 第二弾〜実装編:数理モデルxプログラミング〜
  3. 数学への挑戦 第二弾〜集合を使う:数理モデルxプログラミング〜
  4. 数学への挑戦 第二弾〜確率変数:数理モデルxプログラミング〜
  5. 数学への挑戦 第二弾〜期待値と分散:数理モデルxプログラミング〜
  6. 数学への挑戦 第二弾〜卒業までに彼氏ができる確率:数理モデルxプログラミング〜
  7. 数学への挑戦 第二弾〜確率変数の足し算:数理モデルxプログラミング〜
  8. 数学への挑戦 第二弾〜まとめ1:数理モデルxプログラミング〜

投稿者:

takunoji

音響、イベント会場設営業界からIT業界へ転身。現在はJava屋としてサラリーマンをやっている。自称ガテン系プログラマー(笑) Javaプログラミングを布教したい、ラスパイとJavaの相性が良いことに気が付く。 Spring framework, Struts, Seaser, Hibernate, Playframework, JavaEE6, JavaEE7などの現場経験あり。 SQL, VBA, PL/SQL, コマンドプロント, Shellなどもやります。

コメントを残す