MATLAB 协方差 [cov] 和相关系数 [corrcoef] 说明

article/2025/4/24 12:50:26

A,B为两个长度相同的向量

求协方差

S=cov(A,B);

b和c数值上是相等的。

求相关系数

R=corrcoef(A,B)

数值上,f和g是相同到。

相关系数存在许多种类,上述corrcoef 指 pearson correlation coefficient。

性质:向量乘常数,不改变Pearson 相关系数的大小,如 corrcoef(55*A, B) 和 corrcoef(A,B) 的相关系数大小一致。


扩展阅读 1

【copy from:  协方差与相关系数 - 三山音 - 博客园】

协方差

二维随机变量(X,Y),X与Y之间的协方差定义为:

Cov(X,Y)=E{[X-E(X)][Y-E(Y)]}

其中:E(X)为分量X的期望,E(Y)为分量Y的期望

协方差Cov(X,Y)是描述随机变量相互关联程度的一个特征数。从协方差的定义可以看出,它是X的偏差【X-E(X)】与Y的偏差【Y-E(Y)】的乘积的数学期望。由于偏差可正可负,因此协方差也可正可负。

l  当协方差Cov(X,Y)>0时,称X与Y正相关

l  当协方差Cov(X,Y)<0时,称X与Y负相关

l  当协方差Cov(X,Y)=0时,称X与Y不相关

举个例子

二维随机变量(身高X,体重Y)(数据是自己编的)

身高X(cm)

体重Y(500g)

X-E(X)

Y-E(Y)

[X-E(X)][Y-E(Y)]

1

152

92

-19.4

-39.7

770.18

2

185

162

13.6

30.3

412.08

3

169

125

-2.4

-6.7

16.08

4

172

118

0.6

-13.7

-8.22

5

174

122

2.6

-9.7

-25.22

6

168

135

-3.4

3.3

-11.22

7

180

168

8.6

36.3

312.18

E(X) =171.4

E(Y) =131.7

E{[X-E(X)][Y-E(Y)]}=209.4

根据直觉我们也会想到,身高和体重是有正相关性的,身高较高的体重一般会比较大,同样体重大的身高一般也比较高。计算出来的结果也非常符合我们的直觉。

 

再来举一个反例

二维随机变量(玩游戏的时间X,学习成绩Y)(数据是自己编的)

游戏时间X(h/天)

学习成绩Y

X-E(X)

Y-E(Y)

[X-E(X)][Y-E(Y)]

1

0

95

-1.36

20.7

-28.152

2

1

65

-0.36

-9.3

3.348

3

3

70

1.64

-4.3

-7.052

4

2

55

0.64

-19.3

-12.352

5

2.5

65

1.14

-9.3

-10.602

6

0.5

80

-0.86

5.7

-4.902

7

0.5

90

-0.86

15.7

-13.502

E(X) =1.36

E(Y) =74.3

E{[X-E(X)][Y-E(Y)]}= -10.5

同样根据直觉我们也会觉得,小朋友玩游戏的时间越长,学习成绩越差的可能性就越大,计算结果也很好的符合我们的直觉。

 

从上面两幅散点图上大约可以看出体重随身高的变化趋势,以及学习成绩随玩游戏时间长短的变化趋势。因此,可以说协方差是两个随机变量具有相同变化趋势的度量。

但是,协方差仅能进行定性的分析,并不能进行定量的分析,比如身高体重之间的协方差为209.1,它们之间的相关性具体有多大呢,协方差并没有给出定量的判断标准。因此我们引出相关系数的概念。

相关系数

相关系数的定义

 

其中:Var(X)为X的方差,Var(Y)为Y的方差。

根据施瓦茨不等式可以得到-1<Corr(X,Y)<1,这样就可以定量的分析两个随机变量的相关性了。

l  Corr(X,Y)=1的时候,说明两个随机变量完全正相关,即满足Y=aX+b,a>0

考虑Corr(X,X),两个随机变量相同,肯定满足线性关系,此时,Cov(X,X)=Var(X),容易得到Corr(X,Y)=1

l  Corr(X,Y)=-1的时候,说明两个随机变量完全负相关,即满足Y=-aX+b,a>0

l  0<| Corr(X,Y)|<1的时候,说明两个随机变量具有一定程度的线性关系。

还是以前面的两个例子为例,

身高体重:Corr(X,Y)= 209.4/(10.2*24.4)=0.84

游戏时间与学习成绩:Corr(X,Y)= -10.5/(1.1*13.4)= -0.71

有了相关系数,我们可以说,身高与体重之间的线性相关性比游戏时间与学习成绩之间的线性相关性更大。

补充说明:

Corr(X,Y)为0,表示X与Y不相关,这里的不相关指的是X与Y没有线性关系,但不是没有关系。因此将“相关”理解为“线性相关”也许更恰当一些。


扩展阅读2:

【copy from :新浪博客】

1。向量的方差与协方差矩阵

cov(x) 

求向量x的方差。

cov(x)为一个数值,数值大小计算公式为S(x)。

cov(x,y) 

求向量x与y的协方差矩阵。

cov(x,y)为2*2矩阵,

[S(x) C(x,y);

 C(y,x) S(y);]

2。矩阵协方差矩阵

cov(X) 

求矩阵X的协方差矩阵。diag(cov(X))得到每一个列向量的方差。sqrt(diag(cov(X)))得到每一个列的标准差。

若X大小为M*N,则cov(X) 大小为N*N的矩阵。cov(X) 的第(i,j)个元素等于X的第i列向量与第j列向量的方差,即C(Xi,Xj)。

cov(X,Y) 

求矩阵X与Y的协方差矩阵。

若X大小为M*N,Y为K*P,则X,Y的大小必须满足M*N=K*P,即X,Y的元素个数相同。

此时,cov(X,Y) 等于cov([X(:) Y(:)])和cov(X(:),Y(:)),即计算两个向量的协方差矩阵,得到的结果为2*2矩阵。

[S(X(:)) C(X(:),Y(:)); 

C(Y(:),X(:)) S(Y(:));]

可知,S(X) =C(X,X).

3。关于归一化的问题

 在上述的S(X),C(X,Y)计算中,采用的归一化参数是1/(N-1) ,其中N是向量中元素的个数。而下面的调用形式采用的归一化参数是1/N。对应的公式如下图所示。

cov(x,1)

求向量x的方差。计算方法如cov(x),但归一化参数为1/N。

cov(x,y,1)

求向量x与y的协方差矩阵。计算方法如cov(x,y),但归一化参数为1/N。

 4。PS:

为区别对待,

cov(x)又记作cov(x,0)

cov(x,y)又记作cov(x,y,0)

cov(X) 又记作cov(X,0)

cov(X,Y) 记作cov(x,y,0)

对于归一化参数为1/(N-1)的情况,当N=1时,自动将参数调整为1/N。


扩展阅读3

【copy from 想用MATLAB中的corrcoef函数求两个向量的相关系数。_百度知道】

想用MATLAB中的corrcoef函数求两个向量的相关系数。

比如A=[1 2 3];B=[5 3 7]; r= corrcoef(A,B)可以求出相关系数是0.5.为什么两个向量的元素都要是3个以上才行?而只有两个元素的向量如A=[1 2];B=[5 3];不管怎么随机的取,相关系数都是1或-1啊?只含两个元素的向量,都一定相关吗?

这是求相关度的结果,对于一般的矩阵X,执行A=corrcoef(X)后,A中每个值的所在行a和列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的相似程度(即相关系数)。计算公式是:C(1,2)/SQRT(C(1,1)*C(2,2)),其中C表示矩阵[f,g]的协方差矩阵,假设f和g都是列向量(这两个序列的长度必须一样才能参与运算),则得到的(我们感兴趣的部分)是一个数。以默认的A=corrcoef(f,g)为例,输出A是一个二维矩阵(对角元恒为1),我们感兴趣的f和g的相关系数就存放在A(1,2)=A(2,1)上,其值在[-1,1]之间,1表示最大的正相关,-1表示绝对值最大的负相关

>> A=[1 2 3];B=[5 3 7]; r= corrcoef(A,B)

r =

    1.0000    0.5000

    0.5000    1.0000

>> A=[1 2];B=[5 3];

   r= corrcoef(A,B)

r =

    1.0000   -1.0000

   -1.0000    1.0000%%-1是算出来的,不是说二维向量就一定相关,根据图中r和协方差矩阵的关系

cov(A,B)

ans =

    0.5000   -1.0000

   -1.0000    2.0000%%%A和B的协方差矩阵,

那么R(1,2)=C(1,2)/(sqrt(C(1,1)*C(2,2)))=-1,sqrt为开方的意思。

向左转|向右转

追问

非常感谢你的回答,真的是太详细了,我都抄在本子上了呵呵。但还是有一点不明白,
“-1是算出来的,不是说二维向量就一定相关,”什么意思?为什么任何两个二维向量计算出来的相关系数都是1或者-1?
你不是说“1表示最大的正相关,-1表示绝对值最大的负相关”吗?那么任何两个二维的向量都具有最大的正(负)相关性吗?相关系数为1,
也就是相关的。我不是学数学的,是做课题的时候发现这个问题不明白。

追答

>> A=[1 0];B=[0 1];%%二维向量,不相关cov(A,B)
ans =0.5000   -0.5000-0.5000    0.5000
A=[1 2];B=[5 10];%%二维向量,相关cov(A,B)
ans =0.5000    2.50002.5000   12.5000正相关是指两列变量变动方向相同,一列变量由大到小或由小到大变化时,另一列变量亦由大到小或由小到大变化。负相关是指两列变量变动方向相反,一列变量由大到小或由小到大变化时,另一列变量反而由小到大或由大到小变化。matlab 函数corrcoef也是根据上面的概念计算的,关于二维向量计算总得到-1或者1的问题,我仔细看了下,上面的测试两组数据,
可以看出协方差矩阵中sqrt(C(1,1)*C(2,2))=C(1,2)or-C(1,2)。
也就是说不管你怎么换数据sqrt(C(1,1)*C(2,2))=C(1,2)or-C(1,2)这个式子总是成立的,
所以我个人认为是样本数量(向量维数)少或者是这个函数的缺陷。

http://chatgpt.dhexx.cn/article/CD4sCry6.shtml

相关文章

皮尔逊相关分析的MATLAB实现,corr(),corrcoef()函数使用

皮尔逊相关系数可以用来表述两个序列的相关性。 常常用来做数据分析、数据挖掘等工作。 如何简单快捷的实现皮尔逊相关&#xff0c;并得到结果&#xff1f; 需要应用MATLAB中的corr(X, Y)或者 corrcoef(X,Y)函数。 其中corr(X, Y)既可以计算矩阵相关也可以计算序列相关&…

用C语言实现简单的计算器

功能介绍 用C语言实现整形简单的加减乘除操作&#xff08;通常方法与使用函数指针数组的方法&#xff09; 代码实现 方法一 #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> #include<stdlib.h>int main() {while (1){double x 0, y 0, ret 0;//定义运…

C语言编写一个计算器(附全源代码)

这个计算器其实是我老师布置的一个c语言大作业,捉摸着搞了那么久的东西不能浪费了吧,于是我分享下我的代码和大概思路 给个关注点个赞,后续我会分享更多我们学生党的作业问题 白嫖党们先看代码,我就先上上全代码,干! 前言: 为了达到目的,首先自学了栈:按照先进后出的…

抗量子加密:为什么你迫切需要它

作者 | John 翻译| Katie&#xff0c;责编 | 晋兆雨 出品 | AI科技大本营 头图 | 付费下载于视觉中国 第二次世界大战把间谍活动带到了最前线&#xff0c;这是网络安全的先兆&#xff0c;正如现代世界所看到的那样。诸如量子计算机之类的技术进步使我们必须将这场打击网络犯罪的…

量子计算机的加密安全性,公钥加密机制被量子计算机攻破,传统加密方式不再安全...

如今市场上不乏各种加密和解密方案,然而,根据研究人员表示,针对那些仅取决于质因子分解难度的方案已经逐渐不适用了。 根据美国麻省理工学院(MIT)研究学者与奥地利因斯布鲁克大学(University of Innsbruck)原型专家表示,目前所使用的“公钥” (public-key)加密方式最终将被…

10年老台式机4分钟攻破量子加密算法,此前12年无人破解,核心原理来自25年前...

明敏 发自 凹非寺量子位 | 公众号 QbitAI 只花4分钟&#xff0c;就破解了量子加密算法的密钥。 用的还是一台有10年“高龄”的台式机。 完全破解也只需62分钟&#xff0c;CPU单核即可搞定。 两位鲁汶大学学者基于数学理论破解量子加密算法的消息&#xff0c;最近轰动了密码学界…

应用量子数据加密的一些问题

前言 最近有看到一本关于量子科技的书籍&#xff0c;里面对量子计算在信息安全领域的应用提出了以下几个问题&#xff0c;我把它们搬运到CSDN&#xff0c;欢迎大家前来讨论&#xff01; 应用量子数据加密的一些问题 1、人类可以利用量子物理学来创造出绝对安全的通信网络吗&…

量子计算会摧毁区块链和加密货币吗?

2019年&#xff0c;谷歌高调宣布了成功演示“量子霸权”&#xff0c;一个包含53个有效量子比特的处理器“西克莫”&#xff0c;用200秒完成传统超级计算机Summit需1万年解决的问题&#xff0c;着实让人惊叹。可是&#xff0c;“量子霸权”还没有捂热&#xff0c;竞争对手IBM就出…

安全加密 - 加密算法 - 摘要算法 - 秘钥交换协议 - 量子加密

摘要算法&#xff08;单向加密算法&#xff09; 单向加密算法 : 用于提取数据特征码。又称数据摘要算法。 数据摘要算法,比较常见的有: md5, sha256&#xff0c;CRC-32 秘钥交换协议 由Diffie-Hellman算法实现,它其实是两个牛人的名字组合. 叫做Diffie-Hellman协议(或叫算法…

如何保护今日加密数据以抵抗量子攻击?

1. 引言 随着量子计算机的发展&#xff0c;需增强当前加密系统抵抗量子攻击的能力&#xff0c;避免未来的量子计算机解密当今的密文数据。在大量新闻中提及Lattice-based cryptography&#xff08;基于格的密码学&#xff09;。 2. 密码学及数学难题 加密机制的安全在于破解…

谷歌在Chrome浏览器中推进抗量子加密技术

近日&#xff0c;Chromium博客上发表的一篇博文称&#xff0c;为了加强网络安全&#xff0c;应对迫在眉睫的量子计算机威胁&#xff0c;谷歌各个团队密切合作&#xff0c;为网络向抗量子密码学的过渡做好准备。 谷歌的Chrome团队在博客中写道&#xff0c;该项目涉及修订技术标准…

基于量子同态加密的安全多方凸包协议

摘要安全多方计算几何(SMCG)是安全多方计算的一个分支。该协议是为SMCG中安全的多方凸包计算而设计的。首先&#xff0c;提出了一种基于量子同态加密的安全双方值比较协议。由于量子同态加密的性质&#xff0c;该协议可以很好地保护量子电路执行过程中数据的安全性和各方之间的…

基于光子实验的指数级加速的量子同态加密理论

前言 量子计算机不仅有望在某些重要任务上超越经典计算机&#xff0c;而且还能保护计算的隐私。例如&#xff0c;盲量子计算协议支持安全委托量子计算&#xff0c;其中客户端可以保护其数据和算法的隐私&#xff0c;不受分配来运行计算的量子服务器的影响。然而&#xff0c;这…

NIST宣布推出前4种抗量子加密算法

近日&#xff0c;美商务部技术研究院&#xff08;NIST&#xff09;选择了第一套抗量子加密算法&#xff0c;旨在“抵御未来量子计算机的攻击”。 后量子密码学&#xff08;PQC&#xff09;技术包括用于通用加密的CRYSTALS-Kyber算法&#xff0c;以及用于数字签名的CRYSTALS-Di…

量子图像加密解密

量子图像加密解密 量子灰度图像表示DRPE和量子加密与解密双随机相位编码技术(DRPE)量子图像加密量子图像解密 在老师的建议下补充一点有关量子图像加密和解密的内容。 我是一只正在不断学习、希望早日成为小白的小小白&#xff0c;有什么错误欢迎大家批评指正&#xff0c;喜欢…

基于量子同态加密的改进多方量子私有比较

摘要量子同态加密在隐私保护方面具有明显的优势。本文提出了一种改进的基于量子同态加密的多方量子私钥比较协议。首先&#xff0c;引入可信密钥中心&#xff0c;安全辅助加密密钥的分发和解密密钥的更新&#xff0c;同时防止恶意服务器发布虚假结果的攻击;在保证所有参与者得到…

抗量子加密:为什么迫切需要它

作者 | John 翻译| Katie&#xff0c;责编 | 晋兆雨 来源 | AI科技大本营 头图 | 付费下载于视觉中国 第二次世界大战把间谍活动带到了最前线&#xff0c;这是网络安全的先兆&#xff0c;正如现代世界所看到的那样。诸如量子计算机之类的技术进步&#xff0c;使我们必须将这场打…

基于量子同态的安全多方量子求和加密

摘要安全多方计算在经典密码学中一直扮演着重要的角色。量子同态加密(QHE)可以在不解密的情况下对加密数据进行计算。目前&#xff0c;大多数协议使用半诚实的第三方(TP)来保护参与者的秘密。我们使用量子同态加密方案代替TP来保护各方的隐私。在量子同态加密的基础上&#xff…

初步认识量子加密

据说&#xff1b; 未来加密技术如量子密码、DNA密码、混沌密码等密码新技术目前正处于探索与研究之中。 来看一下 量子加密&#xff1b; 看到 量子加密 这词&#xff0c;作为一名程序员&#xff0c;我们首先会疑惑&#xff1b; 这东西究竟是一种算法&#xff0c;还是一种物理…

中国电信推出量子加密通话;中国建成世界最大量子通信网络|全球量子科技与工业快讯第四期

图片来源&#xff1a;AP 中国电信推出量子加密电话服务 |来源&#xff1a;South China Morning Post 中国电信近日在中国安徽省推出了受量子加密保护的通信服务。为了开通这项服务&#xff0c;用户必须前往中国电信的实体店面更换SIM卡。这项服务也需要一个“量子安全通话”…