中心极限定理_中心极限定理和Python图解
方差与z-score标准化
方差公式
方差描述的是分布的离散程度,方差为0时则
由于数据加常量后其方差
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证明
假设一组数据
标准正态分布
对于正态分布
如果
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. 由于
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):将样本平均值的分布可视化。
定义
对于独立同分布的变量
中心极限定理研究的就是这个
不同的
由大数定律(大数定律、中心极限定理与格里文科定理)可知,当
现在给出中心极限定理的定义:
公式左边相当于对
标准正态分布
。如果将分子分母同乘以
证明过程将
特征函数在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
多次采样
均匀分布
我们分别测试
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颗炮弹命中目标的概率。
解:设
中心极限定理_中心极限定理和Python图解相关推荐
- python验证中心极限定理_中心极限定理和Python图解
方差与z-score标准化 方差公式 ,也表示为 . 方差描述的是分布的离散程度,方差为0时则 ,即分布不含有任何随机的成分. 由于数据加常量后其方差 不变,乘以 后则变为 ,所以对任何分布的数据都可 ...
- 中心极限定理_中心极限定理的的原理与应用
中心极限定理是在统计学中除了大数定理的另一块基石,有着极为重要的意义和广泛的应用空间,本文就以通俗的案例来讲解什么是中心极限定理,中心极限定理的数据演示以及中心极限定理的应用. 什么是中心极限定理? ...
- python验证中心极限定理_我竟然混进了Python高级圈子!
原标题:我竟然混进了Python高级圈子! 现如今,计算机科学.人工智能.数据科学已成为技术发展的主要推动力. 无论是要翻阅这些领域的文章,还是要参与相关任务,你马上就会遇到一些拦路虎: 想过滤垃圾邮 ...
- python验证中心极限定理_中心极限定理的最最通俗解释
一.什么是中心极限定理 在适当的条件下,大量相互独立随机变量的均值经适当标准化后依分布收敛于正态分布.每次从这些总体中随机抽取 n 个抽样,一共抽 m 次. 然后把这 m 组抽样分别求出平均值, 这些 ...
- 用python证明中心极限定理_中心极限定理及Python实验
独立同分布的中心极限定理 专业版: 百度百科 白话版: 无论总体是什么分布,只要抽样的样本量(依经验大于30)足够大,那么抽样的均值近似服从正态分布. 也就是抽样的均值分布满足下面的情况: image ...
- 用python证明不同分布的中心极限定理_常见的中心极限定理
摘要中心极限定理讨论的是在什么条件下,独立随机变量和的分布会收敛于正态分布,本文介绍常见的集中中心极限定理,并且用Mathematica实现相应的模拟. 1.林德伯格-莱维中心极限定理 设{Xn}是独 ...
- donsker定理_中心极限定理和Donsker定理
为什么要关心中心极限定理和Donsker定理 这可能就是Donsker定理要解决的问题.与Donsker定理相关的,还有Glivenko-Cantelli Theorem,似乎与中心极限定理与大数定律 ...
- 大数定理 中心极限定理_中心极限定理:直观的遍历
大数定理 中心极限定理 One of the most beautiful concepts in statistics and probability is Central Limit Theore ...
- 大数据定律与中心极限定理_为什么中心极限定理对数据科学家很重要?
大数据定律与中心极限定理 数据科学 (Data Science) The Central Limit Theorem is at the center of statistical inference ...
最新文章
- android 事件驱动编程,跟我学android之四 事件驱动模型
- 集员法对3D激光雷达和相机的外部校准
- 在人山人海里,你不必记得我
- nacos客户端获取配置
- Dapr牵手.NET学习笔记:用docker-compose部署服务
- 使用NoSQL实施实体服务–第5部分:使用云提高自治性
- java中的public,protected,package-private和private之间有什么区别?
- python求n的阶乘并输出身份信息_python编程求n的阶乘_使用Python编程的阶乘
- 自动化决策流程实现资产组合利润最大化
- PCA(主成分分析)和FA(因子分析)区别
- 快速的JavaScript,JS性能优化
- 怎么选最快dns服务器,如何选择DNS服务器网速最快?DNS优选win7win10系统设置方法图文教程...
- TestStand2014 使用过程中message Popup遗失test and buttons
- android 闹钟设置的几种方法
- Linux中drwxr-xr-x.的意思和文件权限详解
- python自动出题_使用Python编写数独游戏自动出题程序
- 废弃的Android手机用起来,就是一台小型服务器!
- 交替性注意力_注意力不足的小朋友通常都是持续性专注力
- XPO 的三篇介绍文章。
- C语言(二十三)auto自动变量
热门文章
- koa2 mysql sequelize_使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
- 《0元搭建个人博客史上最详细教程》(阿里云学生服务器+宝塔一键部署篇)
- 程序设计中的一些感悟
- web框架 http协议
- HNOI2019爆零记
- Linux下virtualenv与virtualenvwrapper详解
- C#自定义规则对比两个集合的对象是否相等
- CoreJava Reading Note(3:Fundamental structure)
- 计算机丨浏览器访问出现DNS_PROBE_POSSIBLE解决方法
- CSharpThinking---C# 要点(附加三)