とあるお兄さんの雑記

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

統計学基礎vol.29~中心極限定理~

今回の記事は中心極限定理です。

前回と今回と統計学的な内容が入ってきてテンション上がりますね!

中心極限定理

標本を抽出する母集団が平均 \mu、分散 \sigma ^2正規分布従う、従わないにかかわらず抽出するサンプルサイズ nが大きくなるにつれて標本平均の分布は正規分布\displaystyle N(\mu, \frac{\sigma ^2}{n})に従う。

中心極限定理は言ってしまえば上の通りなのですが、一回読んだだけで理解するには結構難しい定理です。私はなかなか理解できなかったのですが、ある本で中心極限定理をプログラムしたコードが載っており、それをみて初めて中心極限定理を理解できたような気がします。

というわけで、実際にプログラムを組んで理解を目指しましょう。また、今回の目標としては、母集団の分布が正規分布であろうが無かろうが、サンプルサイズ nが大きくなるにつれて、標本平均の分布が正規分布のようになグラフになることを確かめることとします(厳密な証明はしません)。

中心極限定理を確かめる

条件・環境など

今回使うのは前回に引き続きGoogle Colaboratoryです。
加えて、今回は 1  6までの目をもつサイコロとします。ちなみに、このサイコロはどの目が出る確率も同様に確からしいとします(勘の良い人は、この時点で母集団の分布が正規分布ではなく一様分布であることに気づいたはずです)。

この時、上記のサイコロを10回投げてその時の平均を記録するまでを1セットとし、このセットを n回ほど行うとします。今回のプログラムではこの nを次第に大きくしていき、その結果、だんだん正規分布のグラフになるかを確かめます。

プログラムコード

下記がプログラムコードです。中心極限定理と読み合わせがならプログラムを読むと理解できるかなと思います。

import random
import matplotlib.pyplot as plt

random.seed(1) #乱数の固定

n = 50 # サンプルサイズ n
mu = [] # i回目の標本平均を記録するための配列


for i in range(1, n+1):
  total = 0

  # 1~6のサイコロを1回投げそれの合計を計算
  for j in range(10):
    total = total + random.randint(1, 6) 

  # i回目の標本平均を記録
  mu.append(total / 10)

# ヒストグラムで表示
plt.hist(mu)

出力〜サンプルサイズを変えながら

サンプルサイズ nを変更しながらプログラムを実行した結果です。サンプルサイズを増やすほどに正規分布のようなグラフに近づくことが分かりますね。

サンプルサイズn = 50の時

f:id:kurasher:20210120202643p:plain
サンプルサイズ n = 50の時

サンプルサイズ n = 100の時

f:id:kurasher:20210120202711p:plain
サンプルサイズ n = 100の時

サンプルサイズn = 1000の時

f:id:kurasher:20210120202734p:plain
サンプルサイズ n = 1000の時

サンプルサイズn = 10000の時

f:id:kurasher:20210120202748p:plain
サンプルサイズ n = 10000の時

まとめ

まとめです。大数の法則中心極限定理ときてやっと統計学らしくなってきましたね。

言葉 意味
中心極限定理 標本を抽出する母集団が平均 \mu、分散 \sigma ^2正規分布従う、従わないにかかわらず抽出するサンプルサイズ nが大きくなるにつれて標本平均の分布は正規分布\displaystyle N(\mu, \frac{\sigma ^2}{n})に従う

おまけ

私のノートになぜか統計Webさんの練習問題2が書いてありました(なんでや?)。ついでなので、書いておきます。

練習問題2

問題


平均 \mu、分散 \sigma ^2のある分布に従う、互いに独立な n個の確率変数 X_i(i = 1, 2, \dots, n)がある。 Y Zを次のように定義するとき、分散 V [ Y ] V [ Z ]を求めよ。

 \displaystyle Y = \sum_{i=1} ^{n} X_i

 \displaystyle Z = \frac{1}{n} \sum_{i=1} ^{n} X_i

解答

 Y = X_1 + X_2 + \dots + X_n

 V[ Y ] = V[ X_1 + X_2 + \dots + X_n ]

 X_iは互いに独立より

 V[ Y ] = V[ X_1 ] + V[ X_2 ]+ \dots + V[X_n ]

 = n \sigma ^2

 \displaystyle V[ Z ] = V[ \frac{1}{n} Y ]

 \displaystyle = \frac{1}{n ^2} V[ Y ]

 \displaystyle = \frac{\sigma ^2}{n}

なぜ、この問題だけノートに書いていたのか...?