概率论10 方差与标准差
除了期望,方差(variance)是另一个常见的分布描述量。如果说期望表示的是分布的中心位置,那么方差就是分布的离散程度。方差越大,说明随机变量取值越离散。
比如射箭时,一个优秀的选手能保持自己的弓箭集中于目标点附近,而一个经验不足的选手,他弓箭的落点会更容易散落许多地方。
上面的靶上有两套落点。尽管两套落点的平均中心位置都在原点 (即期望相同),但两套落点的离散程度明显有区别。蓝色的点离散程度更小。
数学上,我们用方差来代表一组数据或者某个概率分布的离散程度。可见,方差是独立于期望的另一个对分布的度量。两个分布,完全可能有相同的期望,而方差不同,正如我们上面的箭靶。
方差
对于一个随机变量[$X$]来说,它的方差为:
正态分布的标准差正等于正态分布中的参数σσ。这正是我们使用字母σσ来表示标准差的原因!
可以预期到,正态分布的σσ越大,分布离散越大,正如我们从下面的分布曲线中看到的:
当方差小时,曲线下的面积更加集中于期望值0附近。当方差大时,随机变量更加离散。此时分布曲线的“尾部”很厚,即使在取值很偏离0时,比如[$x=4$]时,依然有很大的概率可以取到。
代码如下:
# By Vamei
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
# Note the difference in "scale", which is std
rv1 = norm(loc=0, scale = 1)
rv2 = norm(loc=0, scale = 2)
x = np.linspace(-5, 5, 200)
plt.fill_between(x, rv1.pdf(x), y2=0.0, color="coral")
plt.fill_between(x, rv2.pdf(x), y2=0.0, color="green", alpha = 0.5)
plt.plot(x, rv1.pdf(x), color="red", label="N(0,1)")
plt.plot(x, rv2.pdf(x), color="blue", label="N(0,2)")
plt.legend()
plt.grid(True)
plt.xlim([-5, 5])
plt.ylim([-0.0, 0.5])
plt.title("normal distribution")
plt.xlabel("RV")
plt.ylabel("f(x)")
plt.show()
指数分布的方差
指数分布的表达式为
它的方差为
如下图所示:
Chebyshev不等式
我们一直在强调,标准差(和方差)表示分布的离散程度。标准差越大,随机变量取值偏离平均值的可能性越大。如何定量的说明这一点呢?我们可以计算一个随机变量与期望偏离超过某个量的可能性。比如偏离超过2个标准差的可能性。即
这个概率依赖于分布本身的类型。比如正态分布[$N(0, 1)$],这一概率即为x大于2,或者x小于-2的部分对应的曲线下面积:
实际上,无论[$mu$]和[$sigma$]如何取值,对于正态分布来说,偏离期望超过两个标准差的概率都相同,约等于0.0455 (可以根据正态分布的表达式计算)。随机变量的取值有约95.545%的可能性落在正负两个标准差的区间内,即从-2到2。如果我们放大区间,比如正负三个标准差,这一概率超过99%。我们可以相当有把握的说,随机变量会落正负三个标准差之内。上面的论述并不依赖于标准差的具体值。这里可以看到标准差所衡量的“离散”的真正含义:如果取相同概率的极端值区间,比如上面的0.0455,标准差越大,该极端值区间距离中心值越远。
然而,上面的计算和表述依赖于分布的类型(正态分布)。如何将相似的方差含义套用在其它随机变量身上呢?
绘图代码如下
from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt
# Note the difference in "scale", which is std
rv1 = norm(loc=0, scale = 1)
x1 = np.linspace(-5, -1, 100)
x2 = np.linspace(1, 5, 100)
x = np.linspace(-5, 5, 200)
plt.fill_between(x1, rv1.pdf(x1), y2=0.0, color="coral")
plt.fill_between(x2, rv1.pdf(x2), y2=0.0, color="coral")
plt.plot(x, rv1.pdf(x), color="black", linewidth=2.0, label="N(0,1)")
plt.legend()
plt.grid(True)
plt.xlim([-5, 5])
plt.ylim([-0.0, 0.5])
plt.title("normal distribution")
plt.xlabel("RV")
plt.ylabel("f(x)")
plt.show()
总结
我们引入了一个新的分布描述量:方差。它用于表示分布的离散程度。
标准差为方差的平方根。
方差越大,“极端区间”偏离中心越远。
- MyBatis源码解析(二)——动态代理实现函数调用
- Git命令速记
- linux设备驱动第三篇:如何写一个简单的字符设备驱动
- Tensorflow高级API的进阶--利用tf.contrib.learn建立输入函数
- Spring速查手册(三)——Spring+JDBC
- [WebKit] JavaScriptCore解析--基础篇(一)字节码的生成及抽象语法树的构建详情分析
- Spring速查手册(二)——Bean的作用域
- pyTorch自然语言处理简单例子
- 一文初探Tensorflow高级API使用(初学者篇)
- Spring速查手册——Bean装配
- 回溯法(一)——n皇后问题
- 图的邻接表示法Java版
- 图的遍历(BFS+DFS)
- 工厂模式
- 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 数组属性和方法
- PHP实现对数字分隔加千分号的方法
- PHP验证类的封装与使用方法详解
- Laravel框架实现的rbac权限管理操作示例
- Laravel框架实现的批量删除功能示例
- PyTorch中model.zero_grad()和optimizer.zero_grad()用法
- 利用PyTorch实现VGG16教程
- PHP添加文字水印或图片水印的水印类完整源代码与使用示例
- Python 分布式缓存之Reids数据类型操作详解
- Pycharm打开已有项目配置python环境的方法
- python cv2.resize函数high和width注意事项说明
- pytorch SENet实现案例
- python如何安装下载后的模块
- Python爬虫如何应对Cloudflare邮箱加密
- 如何使用Python处理HDF格式数据及可视化问题
- tp5框架使用composer实现日志记录功能示例