协方差的意义和计算公式

学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。

均值:


标准差:


方差:


很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,

而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。

而方差则仅仅是标准差的平方。

为什么需要协方差?

上面几个统计量看似已经描述的差不多了,但我们应该注意到,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,嘿嘿~协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿照方差的定义:

来度量各个维度偏离其均值的程度,标准差可以这么来定义:

协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),也就是说一个人越猥琐就越受女孩子欢迎,嘿嘿,那必须的~结果为负值就说明负相关的,越猥琐女孩子越讨厌,可能吗?如果为0,也是就是统计上说的“相互独立”。

从协方差的定义上我们也可以看出一些显而易见的性质,如:

协方差多了就是协方差矩阵

上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算

个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:

这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有三个维度,则协方差矩阵为

可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

Matlab协方差实战

上面涉及的内容都比较容易,协方差矩阵似乎也很简单,但实战起来就很容易让人迷茫了。必须要明确一点,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。这个我将结合下面的例子说明,以下的演示将使用Matlab,为了说明计算原理,不直接调用Matlab的cov函数(蓝色部分为Matlab代码)。

首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。

1

MySample = fix(rand(10,3)*50)

根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值:

23

dim1 = MySample(:,1);dim2 = MySample(:,2);dim3 = MySample(:,3);

计算dim1与dim2,dim1与dim3,dim2与dim3的协方差:

123

sum( (dim1-mean(dim1)) .* (dim2-mean(dim2)) ) / ( size(MySample,1)-1 ) % 得到  74.5333sum( (dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -10.0889sum( (dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) % 得到  -106.4000

搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算:

123

std(dim1)^2 % 得到   108.3222std(dim2)^2 % 得到   260.6222std(dim3)^2 % 得到   94.1778

这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证:

1

cov(MySample)

把我们计算的数据对号入座,是不是一摸一样?

Update:今天突然发现,原来协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘上它的转置,然后除以(N-1)即可。其实这种方法也是由前面的公式通道而来,只不过理解起来不是很直观,但在抽象的公式推导时还是很常用的!同样给出Matlab代码实现:

12

X = MySample - repmat(mean(MySample),10,1);    % 中心化样本矩阵,使各维度均值为0C = (X'*X)./(size(X,1)-1);

总结

理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了~

协方差、协方差矩阵定义与计算相关推荐

  1. 协方差与协方差矩阵的定义及计算

    这篇博客主要介绍协方差与协方差矩阵的定义及其计算 首先给出常用的一些数理统计的计算公式: 均值: 标准差: 方差: 这几个公式大家肯定都是比较熟悉的,这里需要注意的地方是标准差以及方差计算时:分母是n ...

  2. 22协方差矩阵 matlab,协方差协方差矩阵【matlab实例】

    [今天看论文的时候又看到了协方差矩阵这个破东西,以前看模式分类的时候就特困扰,没想到现在还是搞不清楚,索性开始查协方差矩阵的资料,恶补之后决定马上记录下来,嘿嘿~ 协方差矩阵 协方差也只能处理二维问题 ...

  3. 协方差矩阵概念及计算

    原文来自:http://blog.sina.com.cn/s/blog_4aa4593d01012am3.html 今天看论文的时候又看到了协方差矩阵这个破东西,以前看模式分类的时候就特困扰,没想到现 ...

  4. lda 协方差矩阵_协方差矩阵概念及计算

    理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会 ...

  5. 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( 线性卷积计算方法列举 | 线性卷积计算案例一 | 根据 线性卷积 定义直接计算 卷积 )

    文章目录 一.线性卷积计算方法 二.线性卷积计算示例一 ( 直接法 ) 一.线性卷积计算方法 线性卷积计算方法 : 直接法 : 根据 线性卷积 定义 直接计算 ; 图解法 : 不进位乘法 : 编程计算 ...

  6. DNA序列编码中Hairpin的定义和计算

    DNA序列编码中Hairpin的定义和计算 觉得有用的话,欢迎一起讨论相互学习~ 参考文献 [1] 张凯. DNA计算核酸编码优化及算法设计[D]. 2008. [2] Shin, Soo Yong ...

  7. NumPy transpose 的定义与计算过程

    NumPy transpose 的定义与计算过程 NumPy documentation https://numpy.org/doc/stable/index.html numpy.transpose ...

  8. #十二、编写三角形类Triangle,初始化三个属性,分别是三条边的长度,定义一个计算并打印周长的函数 #十三、编写等腰三角形类EWtriangle,继承于三角形类,初始化只用传一个腰长和一个底长,定

    #十二.编写三角形类Triangle,初始化三个属性,分别是三条边的长度,定义一个计算并打印周长的函数 #十三.编写等腰三角形类EWtriangle,继承于三角形类,初始化只用传一个腰长和一个底长,定 ...

  9. 键盘录入长方形的长和宽,定义方法计算该长方形的周长,并在main方法中打印周长

    键盘录入长方形的长和宽,定义方法计算该长方形的周长,并在main方法中打印周长 package com;import java.util.Scanner;public class Demo02 {pu ...

最新文章

  1. 2021年大数据Spark(四十五):Structured Streaming Sources 输入源
  2. keras 的 example 文件 deep_dream.py 解析
  3. 思科OSPF辅助地址
  4. 【多标签文本分类】HFT-CNN: Learning Hierarchical Category Structure for Multi-label Short Text Categorization
  5. 五分钟看懂XLNet基本思想以及为什么它优于BERT
  6. android 语音自动播报,Android 语音播报实现
  7. CSU OJ1960
  8. 数据切分——Mysql分区表的管理与维护
  9. netstat命令总结
  10. 陷阱:C++模块之间的”直接依赖“和”间接依赖“与Makefile的撰写
  11. jzoj4209-已经没有什么好害怕的了【差分】
  12. Google认证的SketchUp模型网站
  13. sql高级语法之case语句
  14. Spring EL中的类操作符
  15. php pdo查询sqlserver,php pdo sqlserver分页sql的处理
  16. 图像处理——SIFT算法
  17. 打散线条lisp_《湘源修建性详细规划CAD系统》用户使用手册.doc
  18. .NET基础-18-html中各种常用标签
  19. 【PC工具】chrome谷歌浏览器最新离线安装版各种版本,最好用的浏览器没有之一...
  20. TopBase_Knowledge_Graph

热门文章

  1. 【深度强化学习】(6) PPO 模型解析,附Pytorch完整代码
  2. 看过千万的风景 比不上故乡的美丽
  3. 西安电子科大版《计算机操作系统》第四版共读——第十一章 多媒体操作系统
  4. 上拉电阻 下拉电阻 拉电流 灌电流
  5. 运用审查元素下载网页视频
  6. offsetof宏的模拟实现
  7. python将图片拼接为视频
  8. USACO 2008 Jan Gold 3.Cell Phone Network 树形dp
  9. 张凌杰 html5,武汉理工大学第四届学位评定委员会第三次会议授予博士、硕士学位名单...
  10. linux一级目录全解