协方差矩阵的计算及意义「建议收藏」

协方差矩阵的计算及意义「建议收藏」声明:博文转自https://blog.csdn.net/mr_hhh/article/details/78490576一、首先看一个比较简洁明了的协方差计算介绍:1.协方差定义X、Y是两个随机变量,X、Y的协方差cov(X,Y)定义为:其中,2.协方差矩阵定义矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据是按行排列。即每一行是一个obs…

大家好,又见面了,我是你们的朋友全栈君。

声明:博文转自https://blog.csdn.net/mr_hhh/article/details/78490576

一、首先看一个比较简洁明了的协方差计算介绍:

1. 协方差定义
X、Y 是两个随机变量,X、Y 的协方差 cov(X, Y) 定义为:

协方差矩阵的计算及意义「建议收藏」

其中,协方差矩阵的计算及意义「建议收藏」

2. 协方差矩阵定义
矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据是按行排列。即每一行是一个observation(or sample),那么每一列就是一个随机变量。

协方差矩阵的计算及意义「建议收藏」

协方差矩阵:

协方差矩阵的计算及意义「建议收藏」

协方差矩阵的维度等于随机变量的个数,即每一个 observation 的维度。在某些场合前边也会出现 1 / m,而不是 1 / (m – 1).

3. 求解协方差矩阵的步骤
举个例子,矩阵 X 按行排列:

协方差矩阵的计算及意义「建议收藏」
1. 求每个维度的平均值

协方差矩阵的计算及意义「建议收藏」

2. 将 X 的每一列减去平均值

协方差矩阵的计算及意义「建议收藏」

其中:

协方差矩阵的计算及意义「建议收藏」
3. 计算协方差矩阵

协方差矩阵的计算及意义「建议收藏」
——————— 
作者:Rise_1024 
来源:CSDN 
原文:https://blog.csdn.net/mr_hhh/article/details/78490576 
版权声明:本文为博主原创文章,转载请附上博文链接!

二、再来看一下协方差矩阵的意义:

协方差代表的意义是什么? 

在概率论中,两个随机变量 X 与 Y 之间相互关系,大致有下列3种情况:

 

协方差矩阵的计算及意义「建议收藏」

 

情况一,如上, 当 X, Y 的联合分布像上图那样时,我们可以看出,大致上有: X 越大  Y 也越大, X 越小  Y 也越小,这种情况,我们称为“正相关”。

协方差矩阵的计算及意义「建议收藏」

 

情况二, 如上图, 当X, Y 的联合分布像上图那样时,我们可以看出,大致上有:X 越大Y 反而越小,X 越小 Y 反而越大,这种情况,我们称为“负相关”。

协方差矩阵的计算及意义「建议收藏」

情况三,如上图, 当X, Y  的联合分布像上图那样时,我们可以看出:既不是X  越大Y 也越大,也不是 X 越大 Y 反而越小,这种情况我们称为“不相关”。

 

 

怎样将这3种相关情况,用一个简单的数字表达出来呢?

在图中的区域(1)中,有 X>EX ,Y-EY>0 ,所以(X-EX)(Y-EY)>0;

在图中的区域(2)中,有 X<EX ,Y-EY>0 ,所以(X-EX)(Y-EY)<0;

在图中的区域(3)中,有 X<EX ,Y-EY<0 ,所以(X-EX)(Y-EY)>0;

在图中的区域(4)中,有 X>EX ,Y-EY<0 ,所以(X-EX)(Y-EY)<0。

当X 正相关时,它们的分布大部分在区域(1)和(3)中,小部分在区域(2)和(4)中,所以平均来说,有E(X-EX)(Y-EY)>0 

当 X与 Y负相关时,它们的分布大部分在区域(2)和(4)中,小部分在区域(1)和(3)中,所以平均来说,有(X-EX)(Y-EY)<0 

当 X与 Y不相关时,它们在区域(1)和(3)中的分布,与在区域(2)和(4)中的分布几乎一样多,所以平均来说,有(X-EX)(Y-EY)=0 

所以,我们可以定义一个表示X, Y 相互关系的数字特征,也就是协方差

cov(X, Y) = E(X-EX)(Y-EY)

当 cov(X, Y)>0时,表明 X正相关

当 cov(X, Y)<0时,表明XY负相关;

当 cov(X, Y)=0时,表明XY不相关。

这就是协方差的意义。

 

三、此部分进行更系统的说明:

声明:博文转自 https://blog.csdn.net/ybdesire/article/details/6270328

协方差的定义

协方差矩阵的计算及意义「建议收藏」

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

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

协方差矩阵的计算及意义「建议收藏」

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

协方差矩阵的计算及意义「建议收藏」

协方差矩阵的计算及意义「建议收藏」

用中文来描述,就是:

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

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

       协方差矩阵的计算及意义「建议收藏」 

所以,按照定义,给定的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)

       下面在给出一个4维3样本的实例,注意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
——————— 
作者:ybdesire 
来源:CSDN 
原文:https://blog.csdn.net/ybdesire/article/details/6270328 
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153985.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号