方差与z-score标准化

方差公式

,也表示为

方差描述的是分布的离散程度,方差为0时则

,即分布不含有任何随机的成分。

由于数据加常量后其方差

不变,乘以
后则变为
,所以对任何分布的数据都可以做一个标准化(z-score),使得方差
,期望
。具体做法为:
import numpy as np
import matplotlib.pyplot as pltX = np.random.rand(1000)fig, (axs1, axs2) = plt.subplots(1, 2, figsize=(9, 4))axs1.plot(X, '.')
axs1.set_ylim(-2, 2)axs2.hist(X, edgecolor='k', alpha=0.8)
plt.show()print("mean:", np.round(X.mean(), 2), "std:", np.round(X.std(), 2))

mean: 0.5 std: 0.29

进行z-score标准化

操作(证明过程见下一小节)
W = (X - X.mean())/X.std()mean = W.mean()
std_var = W.std()fig, (axs1, axs2) = plt.subplots(1, 2, figsize=(9, 4))axs1.plot(W, '.')
axs1.set_ylim(-2, 2)axs2.hist(W, edgecolor='k', alpha=0.8)
plt.show()print("mean:", np.round(W.mean(), 2), "std:", np.round(W.std(), 2))

mean: -0.0 std: 1.0

打印的信息显示新的数据均值为0,方差为1,但是histgram显示出每个bin(默认10个)的数据数量没有变化。

z-score证明

假设一组数据

的均值为
,方差为
,经过z-score标准化的数据
的均值
的方差(已经得知

标准正态分布

对于正态分布

,其概率密度函数如下:

如果

,则称为标准正态分布
,概率密度函数简化为:
def NormDist(x, mean=0, sigma=1):assert(sigma != 0)return np.exp(-(x-mean)**2/2)/(np.sqrt(2*np.pi)*sigma)plt.figure(figsize=(8, 6))xs = np.linspace(-5, 5, 100)
X = [NormDist(i) for i in xs]
plt.plot(xs, X, '-', label=r'$frac{1}{sqrt{2pi}sigma}exp(frac{-x^2}{2})$')X = [np.exp(-i**2/2) for i in xs]
plt.plot(xs, X, '--', label=r'$exp(frac{-x^2}{2})$')X = [np.exp(-i**2) for i in xs]
plt.plot(xs, X, '--', label=r'$exp(-x^2)$')plt.legend(fontsize=14)
plt.show()

从上图可以看出:1. 由于

的存在使得在0点处左右对称,并且
越接近于0越大;2. 而
的指数除以
使得其面积(在x轴上积分)为1,满足了概率密度函数积分为1的性质。

z-score变换为标准正态分布

正态分布

经过z-score标准化后会变成标准正态分布。证明过程如下

正态分布概率密度函数

其精髓和意义就是通过对

积分,可以得到
在任意区间的概率,例如
的概率:

经过z-score标准化的新数据为

,那么
的概率:

代入积分公式,替换上限

可是我们要求的是

的概率
,由于
,只需要将
只要代入积分公式替换掉
即可:

注意两点:
1. 积分

的上限为
,新变量
的上限为

2. 对

两边求导,得到

至此,证明得到z-score变化后的数据服从标准正态分布

中心极限定理

The central limit theorem in statistics states that, given a sufficiently large sample size, the sampling distribution of the mean for a variable will approximate a normal distribution regardless of that variable’s distribution in the population.

名词解释

在统计学中,有一些专用名词不能弄混淆,特别是我们平时说的“样本”在这里并不是指单个数据,参见Central Limit Theorem Explained

  • 总体(population):研究对象的整个群体(the complete set of all objects or people of interest)
  • 样本(sample):从总体中选取的一部分数据(a subset of the entire population)
  • 样本数量(the number of samples):有多少个样本。
  • 样本大小/样本容量(sample size):每个样本里包含多少个数据。
  • 抽样分布(sampling distribution):将样本平均值的分布可视化。

定义

对于独立同分布的变量

,其中
,这组样本的均值表示为:

中心极限定理研究的就是这个

的分布情况,而不是
的分布情况,因为现实中很多数据我们是无法获得其总体(population)分布情况的,而中心极限定理可以帮助我们分析其均值位置。

不同的

或者不同的样本都会影响
,直觉上
是和
有关的,而且是围绕着
的。如果对这组数据做z-score标准化得到
,标准化后的样本均值

由大数定律(大数定律、中心极限定理与格里文科定理)可知,当

时,
以概率1收敛于期望
,因此得到

现在给出中心极限定理的定义:

公式左边相当于对

做了类似z-score的处理,减去总体均值
,并除以
,右边就是

标准正态分布

的概率密度函数的积分,也就是说当样本容量极大时,样本均值的抽样分布趋近于期望为
,标准差为
的正态分布

。如果将分子分母同乘以

,那么可以得到
和的表示形式

证明过程将

特征函数在0点泰勒展开,得到了和标准正态分布

一样的特征函函数

单次采样

均匀分布

以均匀分布np.random.rand()为例,一次采样1000个值,可以看到样本均值接近0.5,并且histgram(默认10个bin)中每个bin的值都接近1000/10=100

sample_size = 1000 # 采样个数
number_of_sample = 1 # 采样次数np.random.seed(0)
X = np.random.rand(number_of_sample, sample_size)mean = X.mean(axis=1)fig, axs = plt.subplots(1, 2, figsize=(9, 4))# sample values
axs[0].plot(X[0], '.')
axs[0].set_ylim(-1, 2)
axs[0].set_title('sample values')# histgram of X
axs[1].hist(X[0], edgecolor='k', alpha=0.8)
axs[1].set_title('histgram of $X$')plt.show()
print('mean:', mean)

mean: [0.49592153]

偏正态分布

如果用正态分布实验,结果可能不能很好的展示中心极限定理。我们直接用SciPy里的skewnorm偏正态分布,概率密度函数为skewnorm.pdf(x, a) = 2 * norm.pdf(x) * norm.cdf(a*x)

from scipy.stats import skewnorm
import matplotlib.pyplot as plta = 4
fig, ax = plt.subplots(1, 1)
mean, var, skew, kurt = skewnorm.stats(a, moments='mvsk')x = np.linspace(skewnorm.ppf(0.01, a), skewnorm.ppf(0.99, a), 100)
ax.plot(x, skewnorm.pdf(x, a), 'r-', lw=5, alpha=0.6, label='skewnorm pdf')print('E(X) =', mean)E(X) = 0.7740617226446519

打印的结果显示这个分布均值约等于0.774,我们采样1000个值看看其分布情况。

r = skewnorm.rvs(a, size=1000)fig, axs = plt.subplots(1, 2, figsize=(9, 4))# sample values
axs[0].plot(r, '.')
axs[0].set_ylim(-2, 5)
axs[0].set_title('sample values')# histgram of X
axs[1].hist(r, edgecolor='k', alpha=0.8)
axs[1].set_title('histgram of $X$')print('mean:', r.mean())mean: 0.7426786528215207

多次采样

均匀分布

我们分别测试

的情况,每种情况都采集100000次,并画出每种情况下均值的分布图(已归一化)。从图中可以看出,虽然样本容量
很小,但是其均值的分布图已经是正态分布,这和均匀分布本身对称有关系。当
时候已经很好了。
sample_size = [3, 10, 30, 100] # 每次采样个数
number_of_sample = 100000 # 采样次数plt.figure(figsize=(8,6))for i, ss in enumerate(sample_size):Xs = np.random.rand(number_of_sample, ss)    h, b = np.histogram(Xs.mean(axis=1), bins=50, density=True)b = (b[:-1] + b[1:]) / 2.plt.plot(b, h, '-', label=f'sample size = {ss}')plt.legend()

偏正态分布

同均匀分布一样,仍然测试

的情况,但是注意,由于样本容量
太小,其均值分布类似于总体数据的偏正态分布,而
就好了很多。
sample_size = [3, 10, 30, 100] # 每次采样个数
number_of_sample = 100000 # 采样次数plt.figure(figsize=(8,6))for i, ss in enumerate(sample_size):Xs = skewnorm.rvs(4, size=(number_of_sample, ss))h, b = np.histogram(Xs.mean(axis=1), bins=50, density=True)b = (b[:-1] + b[1:]) / 2.plt.plot(b, h, '-', label=f'sample size = {ss}')plt.legend()

练习题

e.g.1 某炮兵阵地对敌人的防御地段进行100次射击,每次射击中炮弹的命中数是一个随机变量,其期望为2,方差为1.69,求在100次射击中有180颗到220颗炮弹命中目标的概率。

解:设

表示第
次设计命中的炮弹数,则
,因为100很大,所以根据中心极限定理可以认为
近似服从
,所以

中心极限定理_中心极限定理和Python图解相关推荐

  1. python验证中心极限定理_中心极限定理和Python图解

    方差与z-score标准化 方差公式 ,也表示为 . 方差描述的是分布的离散程度,方差为0时则 ,即分布不含有任何随机的成分. 由于数据加常量后其方差 不变,乘以 后则变为 ,所以对任何分布的数据都可 ...

  2. 中心极限定理_中心极限定理的的原理与应用

    中心极限定理是在统计学中除了大数定理的另一块基石,有着极为重要的意义和广泛的应用空间,本文就以通俗的案例来讲解什么是中心极限定理,中心极限定理的数据演示以及中心极限定理的应用. 什么是中心极限定理? ...

  3. python验证中心极限定理_我竟然混进了Python高级圈子!

    原标题:我竟然混进了Python高级圈子! 现如今,计算机科学.人工智能.数据科学已成为技术发展的主要推动力. 无论是要翻阅这些领域的文章,还是要参与相关任务,你马上就会遇到一些拦路虎: 想过滤垃圾邮 ...

  4. python验证中心极限定理_中心极限定理的最最通俗解释

    一.什么是中心极限定理 在适当的条件下,大量相互独立随机变量的均值经适当标准化后依分布收敛于正态分布.每次从这些总体中随机抽取 n 个抽样,一共抽 m 次. 然后把这 m 组抽样分别求出平均值, 这些 ...

  5. 用python证明中心极限定理_中心极限定理及Python实验

    独立同分布的中心极限定理 专业版: 百度百科 白话版: 无论总体是什么分布,只要抽样的样本量(依经验大于30)足够大,那么抽样的均值近似服从正态分布. 也就是抽样的均值分布满足下面的情况: image ...

  6. 用python证明不同分布的中心极限定理_常见的中心极限定理

    摘要中心极限定理讨论的是在什么条件下,独立随机变量和的分布会收敛于正态分布,本文介绍常见的集中中心极限定理,并且用Mathematica实现相应的模拟. 1.林德伯格-莱维中心极限定理 设{Xn}是独 ...

  7. donsker定理_中心极限定理和Donsker定理

    为什么要关心中心极限定理和Donsker定理 这可能就是Donsker定理要解决的问题.与Donsker定理相关的,还有Glivenko-Cantelli Theorem,似乎与中心极限定理与大数定律 ...

  8. 大数定理 中心极限定理_中心极限定理:直观的遍历

    大数定理 中心极限定理 One of the most beautiful concepts in statistics and probability is Central Limit Theore ...

  9. 大数据定律与中心极限定理_为什么中心极限定理对数据科学家很重要?

    大数据定律与中心极限定理 数据科学 (Data Science) The Central Limit Theorem is at the center of statistical inference ...

最新文章

  1. android 事件驱动编程,跟我学android之四 事件驱动模型
  2. 集员法对3D激光雷达和相机的外部校准
  3. 在人山人海里,你不必记得我
  4. nacos客户端获取配置
  5. Dapr牵手.NET学习笔记:用docker-compose部署服务
  6. 使用NoSQL实施实体服务–第5部分:使用云提高自治性
  7. java中的public,protected,package-private和private之间有什么区别?
  8. python求n的阶乘并输出身份信息_python编程求n的阶乘_使用Python编程的阶乘
  9. 自动化决策流程实现资产组合利润最大化
  10. PCA(主成分分析)和FA(因子分析)区别
  11. 快速的JavaScript,JS性能优化
  12. 怎么选最快dns服务器,如何选择DNS服务器网速最快?DNS优选win7win10系统设置方法图文教程...
  13. TestStand2014 使用过程中message Popup遗失test and buttons
  14. android 闹钟设置的几种方法
  15. Linux中drwxr-xr-x.的意思和文件权限详解
  16. python自动出题_使用Python编写数独游戏自动出题程序
  17. 废弃的Android手机用起来,就是一台小型服务器!
  18. 交替性注意力_注意力不足的小朋友通常都是持续性专注力
  19. XPO 的三篇介绍文章。
  20. C语言(二十三)auto自动变量

热门文章

  1. koa2 mysql sequelize_使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
  2. 《0元搭建个人博客史上最详细教程》(阿里云学生服务器+宝塔一键部署篇)
  3. 程序设计中的一些感悟
  4. web框架 http协议
  5. HNOI2019爆零记
  6. Linux下virtualenv与virtualenvwrapper详解
  7. C#自定义规则对比两个集合的对象是否相等
  8. CoreJava Reading Note(3:Fundamental structure)
  9. 计算机丨浏览器访问出现DNS_PROBE_POSSIBLE解决方法
  10. CSharpThinking---C# 要点(附加三)