详解协方差与协方差矩阵



原文地址:http://blog.csdn.net/ybdesire/article/details/6270328



协方差的定义

 

对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。

记住,XY是一个列向量,它表示了每种情况下每个样本可能出现的数。比如给定

X表示x轴可能出现的数,Y表示y轴可能出现的。注意这里是关键,给定了4个样本,每个样本都是二维的,所以只可能有XY两种维度。所以

 

 

用中文来描述,就是:

协方差(i,j)=(第i列的所有元素-i列的均值)*(第j列的所有元素-j列的均值)

这里只有X,Y两列,所以得到的协方差矩阵是2x2的矩阵,下面分别求出每一个元素:

      所以,按照定义,给定的4个二维样本的协方差矩阵为:

 

    

matlab计算这个例子

z=[1,2;3,6;4,2;5,2]

cov(z)

ans =

   2.9167  -0.3333

  -0.3333   4.0000

可以看出,matlab计算协方差过程中还将元素统一缩小了3倍。所以,协方差的matlab计算公式为:

    协方差(i,j)=(第i列所有元素-i列均值)*(第j列所有元素-j列均值)/(样本数-1

      下面在给出一个43样本的实例,注意4维样本与符号X,Y就没有关系了,X,Y表示两维的,4维就直接套用计算公式,不用X,Y那么具有迷惑性的表达了。

 

 

 

   

                

        (3)与matlab计算验证

                     Z=[1 2 3 4;3 4 1 2;2 3 1 4]

                     cov(Z)

                     ans =

                         1.0000   1.0000   -1.0000  -1.0000

                          1.0000   1.0000  -1.0000   -1.0000

                        -1.0000  -1.0000    1.3333   0.6667

                          -1.0000  -1.0000   0.6667    1.3333

      可知该计算方法是正确的。我们还可以看出,协方差矩阵都是方阵,它的维度与样本维度有关(相等)。参考2中还给出了计算协方差矩阵的源代码,非常简洁易懂,在此感谢一下!

 

参考:

[1] http://en.wikipedia.org/wiki/Covariance_matrix

[2]http://www.cnblogs.com/cvlabs/archive/2010/05/08/1730319.html




第i个样品与第j个样品的马氏距离dij用下式计算:
    dij=(xi一xj)'S-1(xi一xj)
其中,xi和xj分别为第i个和第j个样品的m个指标所组成的向量,S为样本协方差矩阵。
  马氏距离有很多优点。它不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关;由标准化数据和中
心化数据(即原始数据与均值之差)计算出的二点之间的马氏距离相同。马氏距离还可以排除变量之间的相关性的
干扰。它的缺点是夸大了变化微小的变量的作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值