中心极限定理定义:
假设从均值为,方差为的有限的任意一个总体中抽取样本量为n的样本,当n充分大时,样本的均值的抽样分布近似服从均值为,方差为的正态分布。
下面我们用简单的python代码来客观展现中心极限定理 :
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
# 防止中文乱码
mpl.rcParams['font.sans-serif']=[u'simHei']
mpl.rcParams['axes.unicode_minus']=False
# 设置参数
size = 50
mu = 0.0
sigma = 10
# 生成正态分布数据函数并返回每增加一个数据后的均值列表
def makeData_average(size, average=mu ,sigma=sigma):
# 生成服从正态分布的随机数据,其均值为0
# randData = np.random.normal(loc=average, scale=sigma, size=size)
randData = average + sigma * np.random.randn(size)
# 保存随机每增加一个数据后算出来的均值
randData_average = []
# 保存每增加一个数据后的数据和
randData_sum = 0
# 通过循环计算每增加一个数据后的均值
for index in range(len(randData)):
randData_average.append((randData[index] + randData_sum) / (index + 1.0))
return randData_average
# 逐步增加数据量
step = 20
# 作图设置
for i in range(4):
plt.subplot(2,2,i+1)
averageList = makeData_average(size+step*i)
plt.xlim(min(averageList)*1.1, max(averageList)*1.1)
# plt.ylim(0, sigma)
# 作图并展示
plt.hist(averageList, size+step*i, histtype='bar', normed=True)
plt.show()
由上图看出随着数据量n的不断增加其分布越来越接近一个正态分布
但也随着n的增大,其方差越来越小,所以正态分布也就越来越尖锐。