投資のためのデータサイエンス

個人の投資活動に役立つデータ分析にまつわる話題を綴ります。

Pythonで学ぶ統計学 (8): 中心極限定理

今回は「中心極限定理」を見ていきます。中心極限定理は以下の内容の定理です。

 

 X_1,X_2,\cdots,X_n を平均 \mu , 分散 \sigma ^2 をもつ任意の分布から取られた大きさ n の無作為標本とし、その標本平均を \bar{X} とする。 n が大きくなると、 \bar{X} の分布は平均 \mu 、分散 \sigma ^2 /n 正規分布に近づく。

 

これを直感的に述べると、「元の分布はどのような散らばり方をしていても、その算術平均の値は真ん中の方へ寄ってくる。そしてその分布の広がり方はどんどん狭くなる」ということになります。

 

以下のPythonコードは、(0,1)一様分布からn個の乱数を発生させ、その算術平均をとるという作業を5000回繰り返します。ここではn=1,2,5,10と変化させています。n=5ですでに見た目では正規分布の釣鐘型になっていることがわかります。

import numpy as np
import numpy.random as rd
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family']='MS Gothic'
ctitle='一様分布の平均の分布(N=1)','一様分布の平均の分布(N=2)','一様分布の平均の分布(N=5)','一様分布の平均の分布(N=10)'
N = [1,2,5,10]
X = np.zeros((4,5000))
for j in range(5000):
for i in range(4):
for _ in range(N[i]):
X[i,j] += rd.uniform(0,1,1)
X[i,j] /= N[i]
fig, ax = plt.subplots(2,2)
for k in range(4):
i=k//2; j=k%2
ax[i,j].hist(X[k,:],bins=20)
ax[i,j].set_title(ctitle[k])
plt.tight_layout()

central_limit_theorem.png