协方差的意义和计算公式

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

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

为什么需要协方差?

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

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

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

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

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

上一节提到的猥琐和受欢迎的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算 n! / ((n-2)!*2) 个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义:

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

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

Matlab协方差实战

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

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

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

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

>> dim1 = mysample(:,1);

>> dim2 = mysample(:,2);

>> dim3 = mysample(:,3);

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

>> sum((dim1 - mean(dim1)) .* (dim2 - mean(dim2))) / (size(mysample, 1) - 1) %得到 -147.0667

>> sum((dim1 - mean(dim1)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1) %得到 -82.2667

>> sum((dim2 - mean(dim2)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1) %得到 76.5111

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

>> var(dim1) %得到 227.8778

>> var(dim2) %得到 179.8222

>> var(dim3) %得到 156.7111

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

>> cov(mysample)

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

Update

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

>> temp = mysample - repmat(mean(mysample), 10, 1);

>> result = temp' * temp ./ (size(mysample, 1) - 1)

总结

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

协方差的计算公式例子_协方差的意义和计算公式相关推荐

  1. 协方差的计算公式例子_协方差矩阵计算例子

    协方差矩阵计算例子 [篇一:协方差矩阵计算例子] 浅谈协方差矩阵今天看论文的时候又看到了协方差矩阵这个破东西, 以前看模式分类的时候就特困扰,没想到现在还是搞不清楚,索性 开始查协方差矩阵的资料,恶补 ...

  2. 协方差的计算公式例子_如何通俗易懂地解释「协方差」与「相关系数」的概念?...

    最喜欢通俗易懂地解释一个事情. 一.协方差: 可以通俗的理解为:两个变量在变化过程中是同方向变化?还是反方向变化?同向或反向程度如何? 你变大,同时我也变大,说明两个变量是同向变化的,这时协方差就是正 ...

  3. 协方差的计算公式例子_方差、标准差和协方差三者之间的定义与计算

    理解三者之间的区别与联系,要从定义入手,一步步来计算,同时也要互相比较理解,这样才够深刻. 方差 方差是各个数据与平均数之差的平方的平均数.在概率论和数理统计中,方差(英文Variance)用来度量随 ...

  4. 协方差的计算公式例子_协方差矩阵是什么_协方差矩阵计算公式_如何计算协方差矩阵...

    协方差矩阵是什么 在统计学与概率论中,协方差矩阵的每个元素是各个向量元素之间的协方差,是从标量随机变量到高维度随机向量的自然推广. 矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据 ...

  5. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

  6. 根据录入的计算公式计算_污水处理工程设计入门(10)—堰口计算

    呓语:虽然现在很多人会推送很多的快速计算表格,但是我并不想授人以鱼.我希望每一个想学习想入门做污水处理工程设计的人先看懂如何设计,再去想如何快速计算,再去想怎么改进.再者,想想有一天你当领导审图了,总 ...

  7. 协方差的意义和计算公式

    在概率统计中我们学习的最基本的知识有:均值,方差,标准差. 均值 X¯=1n∑i=1nXi \bar{X}= \frac{1}{n}\sum_{i = 1}^{n}{X_i} 它表示的是一组数据的集中 ...

  8. 协方差的意义和计算公式 .

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

  9. matlab计算斜方差_协方差与Matlab的实现

    (参考文章) 标准差和方差一般是用来描述一维数据的 所谓的维数,拿EEG信号来说,每个通道就是一个维度,而同一个通道的每个一数字是样本. 协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿 ...

最新文章

  1. 计算机组成原理考研重点
  2. 剑指Offer_17_树的子结构
  3. html兄弟选择器怎么用,CSS的相邻兄弟选择器用法示例讲解
  4. dll可以在linux下使用吗_无需虚拟技术,6步直接在Windows下使用Linux
  5. pycharm acejumpchar插件
  6. stand up meeting 12/8/2015
  7. win10家庭版远程桌面连接出现问题
  8. P2756,ssl2601-飞行员配对问题【网络流24题,最大匹配,dinic】
  9. Silverlight - IIS 7.5 部署SilverLight4网站以及问题解决
  10. 做简单的android 软件推荐,Android_适用于Android开发的简单聊天软件,适用于android 开发。是一个简 - phpStudy...
  11. 【Lucy-Richardson去卷积】迭代加速算法
  12. Ubuntu 17.04 壁纸设计大赛 已经开幕
  13. 存储过程,触发器,Mysql权限,备份还原
  14. U盘做启动盘之后容量变小
  15. 我的世界ess服务器信息,我的世界ess指令怎么用 ess指令大全及用法详解
  16. 苹果开发者账号开启双重认证教程
  17. docker安装gitea
  18. 互联网晚报 | 9月10日 星期五 | 美团启动数字人民币低碳出行试点;vivo X70系列正式发布;旷视科技科创板IPO过会...
  19. 数字IC设计入门(3)初识电路图
  20. BJTU1853 gangpener 买零食

热门文章

  1. Mac 安装watchman 常见错误
  2. 内部部署 VS 云端部署?
  3. 95号汽油步入9元时代,买得起车却加不起油
  4. 如何清晰地思考:近一年来业余阅读的关于思维方面的知识结构整理(附大幅思维导图)
  5. sqlserver分页模糊查询sql语句
  6. Java中的锁-浅析
  7. 《塞尔达传说:荒野之息》开发者演讲
  8. 【最新】创维怎么看电视直播
  9. C语言gdb调试详解
  10. Assembly基础知识