中心極限定理はどんな母集団でも本当に成立するのか?を検証してみました

中心極限定理は「母集団の確率分布によらず、標本の大きさ n が十分に大きければ、和や標本平均の分布は正規分布に従う」という定理です。

数学的に証明されており、推測統計学の基礎になっている大定理ですが、本当にどんな分布でも …(中略)… 正規分布になるのか疑問に感じたことはないでしょうか?

どのような母集団でも本当に中心極限定理は成立するのか?Python スクリプトで検証してみました。

ソースコードのダウンロード

この記事で紹介するソースコードは Github よりダウンロードできます。Python3、numpy、matplotlib をインストール後、是非お手元のパソコンで試してみてください。

Github よりダウンロード

 

中心極限定理とは?

冒頭のように中心極限定理とは「母集団の確率分布によらず、標本の大きさ n が十分に大きければ、和や標本平均の分布は正規分布に従う」という定理です。

中心極限定理は平均だけでなく和についても成り立ちますが、ここでは簡単のため平均に限定します。

少しだけ噛み砕くと「もとの分布がどんな分布であっても、十分な数のサンプルを取り出して平均をとる、という試行を繰り返せば、その標本平均たちの分布は正規分布になる」というのです。

さらには、サンプル数を n、母集団の平均(母平均)を µ、分散(母分散)を σ2 とすると、N(µσ2/n) という正規分布になることが知られています。つまり、標本平均の分布の平均は、母平均に限りなく一致することを意味します。

極めて例外的なケースですが、中心極限定理が成立しない分布もあります。詳しくはWikipedia 中心極限定理を参照ください。

この記事では数学・統計学的な説明をできる限り省略しています。専門的な知識を身につけたい方は、統計学入門 (基礎統計学Ⅰ) 等、統計学の書籍を一読されることを推奨いたします。

Python で中心極限定理を検証

「母集団がどんな分布であっても」というのが中心極限定理の最も「胡散臭い」ところです。

そこで、母集団を少しの規則性も許さない乱数の集まりで形成することにします。乱数の集まりからでも、正規分布に収束する結果が得られたら…認めざるを得ませんね。

要件

  • まったく規則性のない乱数で母集団を形成
  • サンプルを 個抽出して平均を算出、この試行を繰り返して分布を記録
  • 得られた分布の平均が母平均 µ とおおむね一致するかを確認
  • 得られた分布の分散が母分散を で割った値 σ2/とおおむね一致するかを確認

ソースコード

Python3、numpy、matplotlib により実装してみました。

 

検証結果

 

中心極限定理の具体例

上図は母集団の分布、下図は標本平均の分布です。

規則性のない母集団(上図)からも、悔しいほどに見事な正規分布(下図)が描かれました。

さらに数値の結果は

母平均: 489.45
母分散: 86307.64
母分散/n: 863.08
標本平均の分布: N(489.61, 865.81)

となりました。

得られた分布の平均 489.61 と母平均 489.45 はほぼ一致。
得られた分布の分散 865.81 も母分散/n 863.08 とおおむね一致しています。

スクリプト実行時に乱数を発生させて母集団を作るので、結果の図や数値は実行する度に変わりますが、お手元のパソコンで実行すると、中心極限定理が成立することを実際に確認できるかと思います。

結論

母集団がまったく規則性のない乱数から形成されていても、中心極限定理が成立することを検証・体感できました。

この記事で紹介するソースコードは Github よりダウンロードできます。Python3、numpy、matplotlib をインストール後、是非お手元のパソコンで試してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です