概率论13 中心极限定律
在整个概率论中,核心的问题是随机变量的分布。正如我们在离散分布和连续分布中看到的,分布有许多种类。更夸张的是,在满足概率公理的前提下,我们完全可以自行设计分布。想像一下,如果有一天数学书上印一个Vamei分布,这是多么美好的事情啊!然而,这一愿望并不那么容易实现。那些“名流”分布,比如“泊松”,“高斯”,“伯努利”分布,往往在理论上很重要,所以得到了数学家的深入研究。“知名”分布的特性(比如它们的期望、方差、累计概率函数)可以很容易在数学手册中找到,这些研究成果也成为概率论“军火库”的重要部分。
另一方面,概率分布是否存在什么共性呢?我们的许多结论都是依赖于分布的具体类型。对于一个分布成立的结论,对于另一种分布可能并不成立。一个对任意分布都成立的结论可以大大简化我们的研究。这在自然科学和社会科学的研究中异常重要。在这些学科的研究中有许多随机变量。比如说,为了研究金矿,往往需要知道石头中含金量X的概率分布。然而,这些随机变量的分布类型不可能提前获知 (甚至于永远不能准确的知道)。这样的话,整个研究就被停在了第一步。如果我们可以得出一个对任意分布都成立的结论,那么我们就可以沿着这个结论继续进行下去。
自然有时候比我们想像的慷慨,它给出了一个概率论中相当核心的一组定律:中心极限定律(central limit theorem)。这组定律不但对于任意分布都成立,还特别提示我们:要特别注意正态分布。我们下面看看,中心极限定律是如何说的。
中心极限定律
演示中心极限定律
我们下面取n个IID随机变量,让它们都符合[$lambda = 1$]的指数分布,并观察它们均值的分布状况。为了观察它们的分布,我们使用随机数生成器,来进行10000次采样。即进行100000次实验,每次实验获得一组随机变量的取值,得到一个均值。总共获得10000个均值。绘制均值分布的直方图。
分三种情况,分别让n等于1,20, 100:
在第一种情况下,
,即
本身是指数分布。
在第二、三种情况下,均值的分布越来越偏离一个指数分布,分布的形状不断趋近于一个正态分布。
代码如下:
# By Vamei
# Central Limit Theory
# X is exponential distribution with lambda = 1
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import expon
# Get one sample of (X1 + X2 + ... + XN)/N
def sample_mean(N):
# exponential distribution, with lambda = 1
one_sample = expon.rvs(scale = 1, size = N)
return one_sample.mean()
# Increase N: 1, 20 , 1000.
# Demo of Central Limit Theory in histogram
plt.figure(figsize=(12, 4))
for N, subp in zip([1, 20, 1000], [131, 132, 133]):
# generate samples
all_means = np.array([sample_mean(N) for i in range(10000)])
# plot figure
plt.subplot(subp)
plt.hist(all_means,bins=100,color="blue")
plt.title('Central Limit Theory n=%i' % N)
plt.xlabel('sample means')
plt.ylabel('Frequency')
plt.tight_layout()
plt.savefig('./central_limit.png', dpi=None, facecolor='w')
练习:这段代码检验的是指数分布的均值。可以改写成检验其它分布是否符合中心极限定律,比如均匀分布的均值。
证明
花边
中心极限定律的原型可以追溯到18世纪de Moivre的研究。他经过实验发现,大量正面抛硬币的话,结果(1:正面,0:反面)的均值是一个正态分布。这里,de Moivre研究的分布是多个伯努利分布的随机变量的均值。
硬币投掷:均值的分布
(想像一下,当时没有计算机,更别说随机数生成器了。为了检验结果,de Moivre真的投了几千次硬币…… 数学家是很神奇的动物)
为了更加直观的理解中心极限定律的结果。我们来设想一下,如果一个大米缸中混装了黑白两种米,各占一半。从中随便抓一把,这一把中有n个米粒。如果n比较小的话,那么很有可能出现一些极端值,比如n = 3,出现三个纯白的米粒。但是,如果“一把”很大,比如1000颗米粒,那么出现1000个米都是白色的概率很小,而白米和黑米一半一半的概率很大,也就是一个类似于正态分布的分布方式。
我们可以将中心极限定律方便的用于许多统计问题。需要注意的是,中心极限定律要求n趋近无穷。在实际应用中,我们往往让n等于一个“足够”大的数,比如上面的1000。这个数字是否足够大呢?这取决于X是什么样的分布。对于某些分布来说,均值分布趋近于正态分布的速度很慢,这要求我们采用更大的n值。
总结
中心极限定律(均值趋近正态分布)
- 【开源】QuickPager ASP.NET2.0分页控件——使用示例、基本应用和查询功能
- 移花接木:当泛型方法遇上抽象类----我的“内存数据库”诞生记
- Android扫描多媒体文件剖析
- Android的进程与线程使用总结
- Android在WebView中加载HTML并实现交互
- 使用ASP.NET MVC2+PDF.NET 构建一个简单的新闻管理程序 示例过程
- 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】
- Android中Java和JavaScript交互
- Android UI控件系列:TabWidget(切换卡)
- 在Linux系统运行WinForm程序
- 将ZIP文件添加到程序集资源文件然后在运行时解压文件
- Android中App安装位置详解
- Java面试题系列之基础部分(二)——每天学5个问题
- Java面试题系列之基础部分(四)——每天学5个问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法