协方差矩阵

转载 2018年04月15日 17:38:10

原文链接:http://pinkyjie.com/2010/08/31/covariance/

一、统计学的基本概念

统计学里最基本的概念就是样本的均值、方差、标准差。首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述:均值X¯、标准差S=i=1n(XiX¯)2n1、方差S2=i=1n(XiX¯)2n1
均值描述的是样本集合的中间点,它告诉我们的信息是有限的,而标准差给我们描述的是样本集合的各个样本点到均值的距离之平均。

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

二、为什么需要协方差

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

var(X)=i=1n(XiX¯)(XiX¯)n1

来度量各个维度偏离其均值的程度,协方差可以这样来定义:

var(X,Y)=i=1n(XiX¯)(YiY¯)n1

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

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

cov(X,X)=var(X)
cov(X,Y)=cov(Y,X)

三、协方差矩阵

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

Cn×n=(Ci,j,Ci,j=cov(Dimi,Dimj))

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

cov(x,x)cov(x,y)cov(x,z)cov(y,x)cov(y,y)cov(y,z)cov(z,x)cov(z,y)cov(z,z)

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

四、Matlab协方差实战

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

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

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

    32    33    31
    39    26     1
    11    41     6
    42    13    34
    45     8    25
    14    21    27
    36    23    40
    16    39    39
    13     6    25
     8     2    13

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

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 ) 
sum( (dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) 
sum( (dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(MySample,1)-1 ) 

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

std(dim1)^2
std(dim2)^2 
std(dim3)^2 

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

cov(MySample)

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

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

总结

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

关于协方差矩阵的理解

在《主成分分析》中,我们用到了协方差矩阵,但当时并没有对其进行深入的讨论。为此,本文将针对协方差矩阵做一个详细的介绍,其中包括协方差矩阵的定义、数学意义以及计算公式的推导。...
  • peghoty
  • peghoty
  • 2013-09-09 07:45:39
  • 44462

协方差矩阵的实例与意义

在机器学习中经常需要计算协方差矩阵,本科时没学过这个概念,一直对此非常头疼。现在试图通过实例的计算、图形化的表示来梳理一下什么是协方差矩阵。 A numerical example 问题:...
  • u012116229
  • u012116229
  • 2014-04-28 14:06:15
  • 3656

[线性代数] 如何求协方差矩阵

1. 协方差定义 X、Y 是两个随机变量,X、Y 的协方差 cov(X, Y) 定义为: 其中:  、 2. 协方差矩阵定义 矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据是...
  • kuang_liu
  • kuang_liu
  • 2013-11-17 14:52:50
  • 20633

协方差矩阵与PCA深入原理剖析

一、协方差矩阵 一个维度上方差的定义: 协方差的定义: (a) 协方差就是计算了两个维度之间的相关性,即这个样本的这两个维度之间有没有关系。 协方差为0,证明这两个维度之间没有关系,协方差为...
  • u010309553
  • u010309553
  • 2016-09-10 21:29:40
  • 1487

我所理解的协方差矩阵

1.前言 看论文的时候又看到了协方差矩阵这个破东西,以前看图像处理的书籍的时候就特困扰,没想到现在还是搞不清楚,索性开始查协方差矩阵的资料,恶补之后决定马上记录下来。 2.拼出身—统计学的...
  • shenziheng1
  • shenziheng1
  • 2016-10-28 14:37:44
  • 5536

协方差矩阵的几何解释

介绍在本文中,我们通过探索线性变换与所得数据协方差之间的关系提供协方差矩阵一个直观的几何解释。大部分教科书基于协方差矩阵的概念解释数据的形状。相反,我们采取一个反向的方法,根据数据的形状来解释协方差矩...
  • u010182633
  • u010182633
  • 2015-05-23 20:34:54
  • 7403

协方差矩阵 阵列处理基础

在处理阵列信号的时候,为了获得空间信号维度的相关性,以估计目标的信息。故使用协方差矩阵能够获得这些,因为协方差矩阵是每一维度下(也就是阵元)信号的相关性。当两个维度相关时,信号的协方差也是最大的。这只...
  • taiyangshenniao
  • taiyangshenniao
  • 2016-06-21 19:24:57
  • 1577

对协方差矩阵的理解

今天看论文的时候又看到了协方差矩阵这个破东西,以前看模式分类的时候就特困扰,没想到现在还是搞不清楚,索性开始查协方差矩阵的资料,恶补之后决定马上记录下来,嘿嘿~本文我将用自认为循序渐进的方式谈谈协方差...
  • u011484045
  • u011484045
  • 2014-11-11 16:56:05
  • 1683

协方差矩阵的概念,算法以及自己的一些理解

在统计学与概率论中,,协方差矩阵是一个矩阵,其每个元素是各个向量元素之间的协方差。是从标量随机变量到高维度随机向量的自然推广。 方差反映的是一个矩阵中元素的离散程度。如果我有矩阵a[3] = {...
  • ivandark
  • ivandark
  • 2012-10-18 20:44:31
  • 1832

协方差矩阵的定义及其计算公式 (转)

协方差矩阵的定义及其计算公式   (2014-03-20 18:36:56) 转载▼   分类: matlab 协方差矩阵在机器学习中经...
  • duanyule_cqu
  • duanyule_cqu
  • 2017-02-10 00:07:06
  • 11125
收藏助手
不良信息举报
您举报文章:协方差矩阵
举报原因:
原因补充:

(最多只允许输入30个字)