阅读之前看这里👉:博主是正在学习数据分析的一员,博客记录的是在学习过程中一些总结,也希望和大家一起进步,在记录之时,未免存在很多疏漏和不全,如有问题,还请私聊博主指正。
博客地址:天阑之蓝的博客,学习过程中不免有困难和迷茫,希望大家都能在这学习的过程中肯定自己,超越自己,最终创造自己。
什么是中心极限定理和大数定律
简单而言,大数定律讲的是样本均值收敛到总体均值(就是期望)。
而中心极限定理告诉我们,当样本量足够大时,样本均值的分布慢慢变成正态分布。
我们通过程序去理解一下吧:
第一步, 生成数据
假设我们现在观测一个人掷骰子。这个骰子是公平的,也就是说掷出1~6的概率都是相同的:1/6。他掷了一万次。我们用python来模拟投掷的结果:
import numpy as np
# 随机生成1-6的数字,一共1000次
random_data = np.random.randint(1,7,1000)
random_data
然后我们看一下它的均值
random_data.mean()
# 3.533
# 10000次
random_data = np.random.randint(1,7,10000)
random_data.mean()
# 3.5023
1000次为3.533,10000次为3.5023。因为每次掷出来的结果是1、2、3、4、5、6。 每个结果的概率是1/6,所以加权平均值就是3.5,而且随着次数增多样本均值越接近于总体均值。
是不是满足大数定理呢:样本均值(期望)收敛到总体均值。
那么继续,进行中心极限定理的实验。
现在我们在上述随机生成的数据中抽取1000组,每组取50个。我们把每组的平均值都算出来。
# 分n组,每组m个
samples = []
# 分组的平均值
samples_mean = []
# 分组的标准差
samples_std = []
for i in range(0, 1000):
sample = []
for j in range(0, 500):
sample.append(random_data[int