讲讲中心极限定理

2020-03-31 16:37:20 浏览数 (1)

总第202篇/张俊红

今天我们来聊聊统计学里面比较重要的一个定理:中心极限定理,中心极限定理是指:现在有一个总体数据,如果从该总体数据中随机抽取若干样本,重复多次,每次抽样得到的样本量统计值(比如均值)与总体的统计值(比如均值)应该是差不多的,而且重复多次以后会得到多个统计值,这多个统计值会呈正态分布。还是直接来看例子吧。

代码语言:javascript复制
import numpy as np
import pandas as pd
import seaborn as sns
data = np.random.rand(10000)
sns.distplot(data)

上面代码是用来生成10000个随机数的,并绘制分布图。通过分布图可以看出,这10000个随机数基本是均等分布,也就是每个值出现的概率差不多。

现在我们从这10000个样本中随机抽取若干个样本(30、50、100、500),重复抽取100次,会得到100个样本均值,然后绘制样本均值分布图。

代码语言:javascript复制
plt.figure(figsize = (9,9))
plt.subplot(221)
sample_mean = []
for i in range(1,100):
    s = np.random.choice(data,size = 30).mean()
    sample_mean.append(s)
sns.distplot(sample_mean)
plt.title("size = 30")

plt.subplot(222)
sample_mean = []
for i in range(1,100):
    s = np.random.choice(data,size = 50).mean()
    sample_mean.append(s)
sns.distplot(sample_mean)
plt.title("size = 50")

plt.subplot(223)
sample_mean = []
for i in range(1,100):
    s = np.random.choice(data,size = 100).mean()
    sample_mean.append(s)
sns.distplot(sample_mean)
plt.title("size = 100")

plt.subplot(224)
sample_mean = []
for i in range(1,100):
    s = np.random.choice(data,size = 500).mean()
    sample_mean.append(s)
sns.distplot(sample_mean)
plt.title("size = 500")

上面代码是我们每次抽取的样本量为:30、50、100、500,通过运行上面代码可以得到每次抽取不同样本量对应的样本均值的分布结果:

可以看到,不同样本量对应的均值分布均符合正态分布。以上就是关于中心极限定理的思想。这里需要弄清楚的一点是样本均值符合正态分布,而不是样本本身符合正态分布哦。

那这个定理有什么用呢?还记得我们前面一开始说过的结论吗?就是抽样算出来的均值会接近总体的均值,所以基于这个定理的存在,我们可以用抽样结果的均值来估计总体的均值。比如你要统计一下北京市的平均工资,那么你就可以从北京全部人口这个总体中随机抽取部分样本,抽取若干次,把这若干次的均值再求均值以后,就可以作为北京市全部人口的平均工资。

0 人点赞