Ccmmutty logo
Commutty IT
4 min read

【Rで図解】大数の法則と中心極限定理の理解が曖昧になりやすいのはなぜか

https://cdn.magicode.io/media/notebox/f9a2ce2e-db00-43bf-93fc-5bd71468b8f0.jpeg

目次

  • はじめに
  • 大数の法則とは
  • 中心極限定理とは
  • 終わりに
  • 参考文献・サイト

はじめに

※2022/5/17:一部解説に誤りがありましたので内容修正いたしました。大変申し訳ございません。
大数の法則と中心極限定理はどちらも統計学の重要な法則・理論です。それゆえ、大学であれば、基礎的な学習事項として大学初年度に学習する機会が多いと思われます。
しかし、両者の解説は「試行回数を十分に増やせば」という前提に対して、サンプルの確率変数(和、平均、分散)の分布に関する結論を導く点において、類似しています。
ゆえに初学者にとっては両者の違いを明確にしづらい(すなわち、大数の法則と中心極限定理の違いって何なのかっていうのがはっきりしない)…。
そこで、本稿ではmajicodeの練習も兼ねて、Rを用いた簡単な実験を行います。そして、大数の法則と中心極限定理の違いを直感的に理解することを目的とします。
  • ※本稿では議論の厳密性を欠く場合がありますが、ご了承ください
  • ※計算の実行環境は以下の通り
    • R version 3.6.1 (2019-07-05)
    • Windows 10 Home、Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz 2.40 GHz、64 ビット

大数の法則

サイコロを振って出る目を調べる場合を考えましょう。この時、試行回数を増やせば、サイコロの各目の出る確率は1/6に次第に近づきます。すなわち、大数の法則とは、理論的な確率(1/6)と経験的な確率が次第に近づくということを主張する法則です。
実際にサイコロを何万回も振る実験を行ってみます。
以下のコードで、試行回数を増やしながら確認してみましょう。
r
#試行回数を引数に取る関数
low_of_learge_number = function(num) {
    #1から6の整数値を無作為抽出し、その結果を格納する
    result = sample(6,num,replace=TRUE)
    table = table(result)
    return(table)
}
barplot(low_of_learge_number(10), main = "n=10")

plot without title
試行回数を10,100,1000,10000,100000,1000000とした時の結果は以下のようになりました。
また、各目の出た回数は次のようになっています(Excelのキャプチャとなっています。すいません)
したがって、試行回数を増やせば増やすほど、各目の出る回数が徐々に均等になっていることが分かります。このように大数の法則では、理論的な確率と経験的な確率が次第に近づいていくということ示すことができます。

中心極限定理とは

確率変数の数が十分に多いならば、その確率変数の和は正規分布に従うことを主張する理論です。
では、サイコロを2、5、10回振って出た目の合計値を求める操作を考えます。この時、それぞれの場合で操作を1万回くり返します。 それぞれの場合において、最小値、最大値は以下のようになりますね。
パターン最小最大試行回数
2回21210,000
5回53010,000
10回106010,000
このとき、合計値の出方は大数の法則のような分布になるでしょうか。以下のコードで確認してみましょう。
r
clt = function (num1, num2) {
    list = c()
    #num1回分繰り返す
    for (i in 1:num1) {
        #num2回分サイコロを振る
        result = sample(6, num2, replace = TRUE)
        #出た目の総和を求める
        total = rowSums(matrix(result, nrow = 1))
        #求めた総和をベクトルに格納していく
        list  = c(list, total)
    }
    table = table(list)
    return(table)
}

par(mfrow = c(3, 1))

barplot(clt(10000, 2), col = "#993435", main = "n=2")
barplot(clt(10000, 5), col = "#993435", main = "n=5")
barplot(clt(10000, 10), col = "#993435", main = "n=10")
2、5、10回の合計値を求める操作を1万回試行した時の出方は以下のようになりました。
棒グラフから読み取れるように、変数の数を増やすごとに合計値の出る回数の分布は正規分布にかなり近い形となっていることが分かります。
要点は、確率変数の分布は正規分布に従わなくても、確率変数の和は変数の数が十分に多い場合、正規分布に従うという事ですね。それは、上記の実験の結果から明らかですね。

終わりに

以上の内容を整理します。
■大数の法則
試行回数を増やすと、理論的な確率と経験的な確率が次第に近づく
■中心極限定理
母集団の確率変数(今回であればサイコロを振って出る目)が正規分布に従う場合も、従わない場合も、確率変数の総和項数が増えるにつれて、確率変数の総和は正規分布に従う。これは、確率変数の平均、分散でも同様である(平均も分散も確率変数の和の形で表現できるため)
ここまでお読みいただきありがとうございました。 本記事が皆さまの理解の一助となれば幸いです。

参考文献・記事

[1]やさしい統計入門、田栗正章 他、講談社、2007

Discussion

コメントにはログインが必要です。