とあるお兄さんの雑記

基本的に技術系の内容を書きますが、何を書くかは私の気分です。

統計学基礎vol.28~大数の法則~

最近、なんで人って写真なんか撮るんだろうか、インスタ目当てか?なんて考えていたんですが。

聞いた話であれば人って楽しい出来事よりも悲しい出来事の方が記憶に残りやすいそうで。

ということを考えると、楽しい思い出を残しておくのは自然だなぁと思うようになりました。はい。


あ、今回の記事は統計学です。

対数の法則

確率 pで起こる事象において、試行回数を増やすほどその事象が実際に起こる確率は pに近づく。

 1~6の数字が書いてある普通のサイコロがあるとします。このサイコロのそれぞれが出る目は同様に確からしいとします。
ここまで考えると 1の目が出る確率は \displaystyle  \frac{1}{6}になるはずです、理論上は。

ここで、仮にサイコロを10回投げて 1の目が出た回数が 1回だったとすると、\displaystyle \frac{1}{10}になります。
さらに回数を増やし、20回投げたときにtex: 1]の目が出た回数が 4回だと、\displaystyle \frac{4}{20} = \frac{1}{5}になります。
さらに回数を増やし、...としていくと、 1の目が出る確率は、理論上の\displaystyle \frac{1}{6}に近づくはず!

というのが大数の法則です。

というわけで実際にサイコロを投げてみましょう。

大数の法則を調べる

とはいえ、実際にサイコロを投げると途方もない時間がかかりますので、プログラムを組んでみましょう。言語はPythonです。今回はGoogle Colaboratoryを使ってみました。

Google Colaboratory

出た目が1の総数に対して、投げた回数 nで割った値を5回刻みで出力しています。理論値は\displaystyle  \frac{1}{6} = 0.16666666666666666です。

import random

n = 100

dice1 = 0
for i in range(1, n+1):
  if (random.randint(1, 6) == 1):
    dice1 = dice1 + 1

  if i % 5 == 0:
    print('{:>5}回目、p = {:}'.format(i, dice1 / i))


出力

    5回目、p = 0.2
   10回目、p = 0.2
   15回目、p = 0.2
   20回目、p = 0.2
   25回目、p = 0.16
   30回目、p = 0.16666666666666666
   35回目、p = 0.17142857142857143
   40回目、p = 0.175
   45回目、p = 0.15555555555555556
   50回目、p = 0.16
   55回目、p = 0.18181818181818182
   60回目、p = 0.18333333333333332
   65回目、p = 0.16923076923076924
   70回目、p = 0.17142857142857143
   75回目、p = 0.16
   80回目、p = 0.175
   85回目、p = 0.16470588235294117
   90回目、p = 0.17777777777777778
   95回目、p = 0.18947368421052632
  100回目、p = 0.18

出力を見ると、5回目よりも、100回目のほうが理論値に近いことが分かりますね(そこ、実は30回目がめっちゃ理論値に近くね?とか言わない)。

ちなみに統計Webさんでは

母平均が \muである集団から標本を抽出する場合、サンプルサイズが大きくなるにつれて、標本平均が母平均 \muに近づく

ということを言っています。

大数の法則1
大数の法則2

コラム:母平均と標本平均

母平均:母集団の平均のこと。一般的に \muで表されることが多い。
標本平均:標本の平均のこと。

母集団と標本についてはこちら
→ 統計学基礎vol.25~母集団と標本~

まとめ

用語 意味
対数の法則 確率 pで起こる事象において、試行回数を増やすほどその事象が実際に起こる確率は pに近づく
母平均 母集団の平均のこと
標本平均 標本の平均のこと