欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

中心极限定理的理解

程序员文章站 2022-07-11 07:51:23
...

1 背景

统计学上有一个重要的理论,就是中心极限定理,它的定义如下:
中心极限定理的理解
下面我们希望直观上来去理解下中心极限定理,以及看看它的应用场景!

2 Python模拟中心极限定理

假设我们现在观测一个人掷骰子。这个骰子是公平的,也就是说掷出1~6的概率都是相同的:1/6。他掷了一万次。我们用python来模拟投掷的结果:

2.1 生成总体数据

import numpy as np 
random_data = np.random.randint(1, 7, 10000) # 随机生成1~6之间的数 1万次!
print (random_data.mean()) # 打印平均值
print (random_data.std())  # 打印标准差
3.4912
1.713395039096355

实际平均值就是:

(1+2+3+4+5+6) / 6
3.5

2.2 可视化

import matplotlib.pyplot as plt
plt.hist(random_data)
(array([1689.,    0., 1666.,    0., 1696.,    0., 1631.,    0., 1629.,
        1689.]),
 array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. ]),
 <a list of 10 Patch objects>)

中心极限定理的理解

2.3 抽一组看看

我们接下来随便先拿一组抽样,手动算一下。例如我们先从生成的数据中随机抽取10个数字:

sample1 = []
for i in range(0, 10):
    sample1.append(random_data[int(np.random.random() * len(random_data))])

print (sample1) # 打印出来
[5, 1, 6, 6, 4, 4, 1, 1, 4, 6]

计算平均值:

from numpy import *
mean(sample1)
3.8

结果可能和实际的均值3.5会有一些差异!随机的魅力!

2.4 抽很多组看看

看有没有中心极限定理说的那么神奇!

现在我们抽取1000组,每组50个。

我们把每组的平均值都算出来。

samples = []
samples_mean = []
samples_std = []

for i in range(0, 1000):
    sample = []
    for j in range(0, 50):
        sample.append(random_data[int(np.random.random() * len(random_data))])
    sample_np = np.array(sample)
    samples_mean.append(sample_np.mean())
    samples_std.append(sample_np.std())
    samples.append(sample_np)

samples_mean_np = np.array(samples_mean)
samples_std_np = np.array(samples_std)

print (samples_mean_np)
[3.24 3.74 3.88 3.62 3.66 3.56 3.58 3.46 3.54 3.64 3.48 3.24 3.42 3.36
 3.5  3.44 3.12 3.1  3.7  3.38 3.66 3.78 3.38 3.26 3.26 3.1  3.26 3.72
 3.52 3.86 3.52 3.36 3.68 3.8  3.76 3.6  3.84 4.26 3.48 3.38 2.98 3.02
 3.68 3.38 4.14 3.5  3.32 3.48 3.9  3.54 3.38 3.38 3.5  3.42 3.76 3.62
 3.68 3.42 3.68 3.26 3.76 3.38 3.26 3.68 3.56 3.14 3.08 3.6  3.76 3.74
 3.76 3.68 3.42 3.28 3.08 3.58 3.62 3.26 3.54 3.48 3.66 3.48 3.48 4.12
 3.62 3.5  3.36 3.2  3.   3.32 3.14 3.24 3.52 3.62 3.18 3.68 3.24 3.08
 3.46 3.72 3.32 3.26 3.6  3.38 3.62 3.66 3.68 3.44 3.56 3.7  3.56 3.94
 3.82 3.78 3.62 3.64 3.74 3.52 3.46 3.52 3.5  3.3  3.12 3.6  3.44 3.12
 3.46 3.72 3.58 3.02 3.24 3.76 3.24 3.76 3.82 2.88 3.6  3.56 3.2  3.68
 3.26 3.46 3.4  3.18 3.6  3.36 3.18 3.5  3.34 3.68 3.56 3.28 3.96 3.52
 3.46 3.28 3.42 3.68 3.7  3.54 3.48 3.46 3.46 4.2  3.62 3.66 3.28 3.62
 3.46 3.86 3.88 3.06 3.3  3.52 3.22 3.68 3.66 3.52 3.62 3.44 2.88 3.06
 3.6  3.58 3.26 3.7  3.44 3.14 3.42 3.36 3.62 3.38 3.1  3.32 3.38 3.84
 3.46 3.64 3.72 3.58 2.8  3.68 3.38 3.4  3.46 3.38 3.5  3.6  3.48 3.18
 3.64 3.66 3.68 3.88 3.92 3.68 3.56 3.6  3.36 3.66 3.42 3.66 3.64 3.62
 3.26 3.58 3.64 3.34 3.5  3.78 3.38 3.48 3.52 3.96 3.14 3.76 3.4  3.64
 3.58 3.34 3.84 3.94 3.66 3.84 3.64 3.3  3.3  3.7  3.92 3.66 3.92 3.34
 3.72 3.16 3.74 3.7  3.8  3.4  3.64 3.74 3.58 3.46 3.28 3.22 3.44 3.34
 3.9  3.16 3.36 3.98 3.68 3.08 3.44 3.66 4.02 3.44 3.88 3.64 3.4  3.08
 3.46 3.46 3.62 3.44 3.22 3.46 3.22 3.54 3.72 3.2  3.66 3.36 3.44 3.12
 3.16 3.66 3.44 3.42 3.6  3.38 3.66 3.06 3.58 3.64 3.82 3.5  3.08 3.34
 3.32 3.68 3.36 3.5  3.4  3.48 3.72 3.38 3.32 3.5  3.6  3.64 3.44 3.24
 3.52 3.66 3.4  3.66 3.36 3.66 3.58 3.5  3.64 3.54 3.4  3.56 3.72 3.24
 3.4  3.5  3.94 3.12 3.68 4.04 3.52 3.32 3.3  3.56 3.14 3.68 3.14 3.66
 3.76 3.34 3.94 3.42 3.72 3.28 3.4  3.62 3.44 3.58 3.46 3.66 3.6  3.54
 3.38 3.46 3.38 3.86 3.42 3.5  3.6  3.74 3.36 3.4  3.42 3.44 3.56 3.34
 3.34 3.14 3.3  3.56 3.86 3.14 3.8  3.88 3.44 3.48 3.38 3.22 3.4  3.5
 3.68 3.66 3.76 3.36 3.88 3.48 3.76 3.46 3.48 3.54 3.62 3.46 3.5  3.2
 3.68 3.32 3.28 3.32 3.58 3.36 3.64 3.5  3.64 3.5  3.28 3.72 3.22 3.08
 2.84 3.32 3.44 3.68 3.58 3.68 3.36 3.64 3.8  3.24 3.58 3.68 3.4  3.48
 3.54 3.38 3.74 3.44 3.52 3.6  3.78 3.96 3.12 3.5  3.34 3.22 3.76 3.42
 3.4  3.84 3.62 3.38 3.26 3.1  3.32 3.34 3.54 3.9  3.28 3.6  3.66 3.54
 3.02 3.16 3.88 3.66 4.18 3.34 3.48 3.76 3.28 3.52 3.44 3.64 3.32 3.6
 3.34 3.2  3.54 3.92 4.04 3.26 3.26 3.7  3.96 3.42 3.46 3.54 3.68 3.74
 3.66 3.36 3.18 3.18 3.08 3.7  3.42 3.52 3.24 3.   3.68 3.42 3.78 3.88
 3.5  3.7  3.64 3.58 3.4  3.02 3.52 3.86 3.6  3.2  3.36 3.52 3.36 3.62
 3.28 3.24 3.68 3.3  3.28 3.84 3.36 3.38 3.6  3.38 3.54 3.82 3.3  3.74
 3.72 3.5  3.36 3.7  3.82 3.42 3.44 3.52 3.8  3.82 3.66 3.1  3.42 3.62
 3.3  3.36 3.16 3.02 3.4  3.28 3.7  3.8  3.76 3.3  3.32 3.36 3.12 3.38
 3.82 3.42 3.52 3.12 3.3  3.74 3.38 3.82 3.44 3.38 3.12 3.36 3.04 3.32
 3.56 3.5  3.3  3.22 3.22 3.52 3.1  3.64 3.48 3.4  3.44 3.6  3.68 3.2
 3.76 3.22 3.02 3.42 3.82 3.16 3.26 3.52 3.66 3.88 3.32 3.62 3.56 3.36
 3.54 3.5  3.8  3.08 3.5  3.08 3.64 3.38 3.12 3.34 3.94 3.52 3.54 3.5
 3.52 3.44 3.74 3.18 3.16 3.42 3.38 3.88 3.7  3.68 3.8  3.44 3.2  3.6
 3.56 3.8  3.5  3.56 3.6  3.14 3.14 3.7  3.34 3.52 3.32 3.68 3.38 3.72
 3.34 3.4  3.42 3.8  3.76 3.4  3.64 3.56 3.7  3.58 3.74 3.86 3.28 3.62
 3.42 3.5  3.56 3.66 3.54 3.84 3.26 3.4  3.42 3.16 3.44 3.3  3.76 3.42
 3.96 3.34 3.66 3.86 3.32 3.54 3.38 4.06 4.24 3.18 3.34 3.42 3.92 3.2
 3.82 3.72 3.06 3.52 3.62 3.64 3.94 3.52 3.58 3.4  3.4  3.78 3.26 3.78
 3.24 3.76 3.2  3.66 3.9  3.36 3.5  3.22 3.42 3.56 3.68 3.44 3.28 3.9
 3.24 3.7  3.88 3.98 3.6  3.96 3.2  3.7  3.3  3.2  3.26 4.08 3.3  3.88
 3.86 3.52 3.66 3.62 3.06 3.34 3.38 3.8  3.98 3.38 3.42 3.88 3.78 3.2
 3.38 3.12 3.24 3.12 3.82 3.48 3.62 3.36 3.56 3.1  3.5  3.2  3.74 3.74
 2.96 3.24 2.94 3.42 3.7  3.42 3.62 3.5  3.06 3.06 3.6  3.   3.26 3.46
 3.68 2.88 3.18 3.2  3.42 3.46 3.5  3.78 2.94 3.8  3.48 3.6  3.42 3.48
 3.24 3.58 4.34 3.42 3.24 3.56 3.6  3.78 3.04 3.72 3.22 3.64 3.26 3.6
 3.54 3.4  3.56 3.18 3.92 3.56 3.8  3.24 3.74 3.56 3.38 3.92 3.52 3.92
 3.42 3.28 3.56 3.62 3.7  3.4  3.38 3.54 3.2  3.26 3.78 3.82 3.44 3.46
 3.08 3.52 3.98 3.62 3.8  3.16 3.52 3.38 3.54 3.88 3.56 3.4  3.34 3.14
 3.56 3.3  3.96 3.66 3.18 3.02 3.52 3.56 3.1  3.34 3.48 3.44 3.64 4.06
 3.98 3.56 3.22 3.6  3.52 3.6  3.92 3.06 3.32 3.64 3.68 3.48 3.48 3.46
 3.7  2.98 3.46 3.32 3.44 3.58 3.52 3.54 3.48 3.48 3.34 3.5  3.4  3.26
 3.42 3.78 2.88 3.52 3.96 3.54 3.58 2.88 3.6  3.98 3.76 3.58 3.26 3.5
 3.32 3.14 3.62 3.98 3.42 4.4  3.44 2.86 3.86 3.62 3.22 3.38 3.38 3.32
 3.22 3.3  3.54 3.02 3.62 3.08 3.42 3.46 3.62 3.36 3.92 3.8  3.6  3.64
 3.48 3.7  3.78 3.3  3.48 3.56 2.96 3.62 3.28 3.4  3.16 3.7  3.82 3.66
 3.36 3.94 3.54 3.78 3.76 3.86 3.22 3.5  3.3  3.26 3.44 3.82 3.52 3.4
 3.38 3.48 3.94 4.2  3.58 3.44 3.66 3.3  3.28 3.22 3.3  3.8  3.52 3.16
 3.24 3.46 3.62 3.74 3.66 3.18 3.04 3.52 3.46 3.26 3.   3.72 3.78 3.58
 3.72 3.82 3.64 3.52 3.4  3.38 3.46 3.52 3.46 3.64 3.6  3.4  3.62 3.54
 3.48 3.68 3.72 3.84 3.44 3.52]

可视化这1000组各自的均值:

plt.hist(samples_mean_np)
(array([ 10.,  47., 141., 196., 241., 234.,  83.,  38.,   6.,   4.]),
 array([2.8 , 2.96, 3.12, 3.28, 3.44, 3.6 , 3.76, 3.92, 4.08, 4.24, 4.4 ]),
 <a list of 10 Patch objects>)

中心极限定理的理解

加上拟合曲线,很接近正态分布!

import seaborn as sns
sns.distplot(samples_mean_np, bins=10)
plt.show()

中心极限定理的理解

3 应用

在实际生活当中,我们不能知道我们想要研究的对象的平均值,标准差之类的统计参数。中心极限定理在理论上保证了我们可以用只抽样一部分的方法,达到推测研究对象统计参数的目的

3.1 应用1:对于总体的估计

根据这个定理,不管实验关注的结果指标自身分布如何,比如点赞次数、评论次数、分享次数,这些肯定不是呈正态分布。但是只要实验随机地选取用户且用户量足够大,那么每次抽样的均值作为一个样本点形成的分布会呈现正态分布。且抽样分布的均值近似为总体均值,抽样分布的标准差为总体方差的1/sqrt(n)。

实际的社会生活中,要统计总体的一些数值的成本可能非常高,基本不可行,比如统计特朗普在美国民众中的支持率,但可以通过随机抽样得到的数据来进行估计。随着抽样选取的样本数量越大,抽样得到的数值跟真实值就越接近。

3.2 应用2:多场景下统计量的近似使用

A/B 测试:一般是比较实验组和对照组在某些指标上是否存在差异,当然更多时候是看实验组相比对照组某个指标表现是否更好。

AB测试本质上是检验两总体均值是否相等!假设检验的内容!实验样本量远远大于统计学上所说的大样本量(样本量n>30),这就满足了中心极限定理。可以使用Z统计量!

4 中心极限定理可视化

  • http://mfviz.com/central-limit/

5 参考

  • http://sofasofa.io/forum_main_post.php?postid=1001395
  • https://zhuanlan.zhihu.com/p/25241653
  • https://zhuanlan.zhihu.com/p/46963974
相关标签: 机器学习 Python