最近在看《深入浅出统计学》,里面提到中心极限定理,意思是:

给定一个任意分布(不管是二项分布还是其他分布)的总体,每次从这个总体里面抽一个样本,样本空间是n,一共抽m组,把这m组样本的均值求出来,如果n比较大,那么这m组样本的均值近似服从正态分布。

现在生成10000个0~10的随机数,看一下中心极限定理是不是真的这么神奇。

import numpy as np

randoms = np.random.randint(0, 10, 10000)
print(randoms.mean())
print(np.var(randoms))
4.5218
8.17272476

可以看到,均值为4.5218,方差是8.17。现在画一个图看一下生成的数据分布情况:

%matplotlib notebook
from matplotlib import pyplot as plt

result = plt.hist(randoms, edgecolor='black', linewidth=1.2)
<IPython.core.display.Javascript object>

现在,抽1000组,每组10个,然后计算每组的均值:

means = []
for i in range(1000):
    selects = np.random.choice(randoms, 100)
    means.append(selects.mean())
    
mean_result = plt.hist(means, edgecolor='black', linewidth=1.2)
<IPython.core.display.Javascript object>

果然是个正态分布!但是为什么可以这样呢?这个证明后面再研究。