大数の法則と中心極限定理

大数の法則と中心極限定理
2004/10/20
古田真実
1.はじめに
本レポートは大数の法則と中心極限定理を Microsoft 社の Excel を用いたシミュレーショ
ンから体験的に理解することを目標とする。シミュレーション実験の過程の記述である。
大数の法則と中心極限定理は確率論の重要な定理であり、確率変数の和や平均の分布に
ついて、もとの確率変数の分布によらず、多くの予想ができる。
2.大数の法則とは
大数の法則は独立な確立に従う事象の結果を X1,X2,X3…Xn とする時その成功率
ΣXi/n=r/n が試行回数 n が大きくなるにつれて真の確立 p に近づくことを保証している。
ここで r/n は期待値なので、この場合確率変数の平均は試行回数 n が大きくなるに従って期
待値に近づくと言える。
概収束を大数の強法則、確立収束の場合を大数の弱法則と言う。
ここで X が同一分布に従い期待値μが存在するとき、確率変数の平均 r/n はμに概収束
する。
X が独立で同一分布に従わない場合期待値μi,有限の分散を持つとする。この時
X − E ( X ) = X − mn → 0 となる。
大数の法則は、参加費の方が賞金の期待値より高い賭けを続ければ長期簡易は必ず負け
ることを保証している。
3.中心極限定理とは
中心極限定理とは確率変数の平均の収束の仕方を示している。
ⅰ)X が独立で同一分布に従い、期待値μ、分散σ である確率変数とする。
2
Z n = n ( X −μ) /σとしたとき Zn の分布関数は n→∞の時標準正規分布の累積分布関数に
収束し、 Z n 
→ N (0,1) となる。
D
ⅱ)同一分布でない場合 X が独立で、 E ( X i ) = μi , V ( X i ) =σ とする。ここで、
2
1
lim
S
n
∑
∫ ( x −μ )
2
n i = 1 | x − μi | >εCn
i
2
dF i ( x) = 0 、(Sn は分散の合計)
である場合、Zn は標準正規分布の累積分布関数に収束する。
D
Z n →
N (0,1)
4.Excel によるシミュレーション
N 個の(0,1)の一様乱数の平均を計算し、n が増加するに従ってその値の分散が期待値の
0.5 へ近づくことを確かめる。まずツール→マクロ→visual basic editor より下記のマクロ
を用いて乱数を作る。
Sub LLN()
Dim NumRnd As Integer, n As Integer, i As Integer, a As Single
NumRnd = 200
n=5
For i = 1 To NumRnd
a = mean1(n)
ActiveCell = a
ActiveCell.Offset(1, 0).Range("A1").Select
Next i
End Sub
Function mean1(n As Integer) As Single
Dim a As Single, i As Integer
a=0
For i = 1 To n
a = a + Rnd
Next i
mean1 = a / n
End Function
ここで n を 5,50,500,5000 の 4 種類計算し、平均,標準偏差,最大値,最小値,中央値,分位点を
求めた結果は次のようになた。
n=5
n=50
n=500
n=5000
平均
0.491037
0.499254
0.500674
0.500078
標準偏差
0.134935
0.041866
0.013555
0.003928
最大値
0.828125
0.65807
0.54103
0.509797
最小値
0.127918
0.403318
0.452421
0.490294
中央地
0.491259
0.494627
0.499898
0.499952
25%分位点
0.386483
0.472984
0.490777
0.497192
75%分位点
0.58596
0.526757
0.509378
0.502475
nによる乱数の平均の収束
0.9
0.8
0.7
平均
標準偏差
最大値
最小値
中央地
25%分位点
75%分位点
確率
0.6
0.5
0.4
0.3
0.2
0.1
0
n=5
n=50
n=500
試行回数
n=5000
次に中心極限定理のシミュレーションを行う。VBA のモジュールに次のプロシージャを用
いた。
Sub CLT()
Dim NumRnd As Integer, n As Integer, i As Integer, a As Single
NumRnd = 2000
n=2
For i = 1 To NumRnd
a = mean2(n)
ActiveCell = a
ActiveCell.Offset(1, 0).Range("A1").Select
Next i
End Sub
Function mean1(n As Integer) As Single
Dim a As Single, i As Integer
a=0
For i = 1 To n
a = a + Rnd
Next i
mean1 = a / n
End Function
Function mean2(n As Integer) As Single
Dim a As Single
a = mean1(n)
mean2 = Sqr(12 * n) * (a - 0.5)
End Function
5.結果
結果は見ての通り、2、3 で示したことが体験できた。残念ながら分析ツールがインスト
ールされていないので分析まではできなかった。