A,B为两个长度相同的向量html
求协方差函数
S=cov(A,B);学习
b和c数值上是相等的。测试
求相关系数spa
R=corrcoef(A,B)3d
数值上,f和g是相同到。code
相关系数存在许多种类,上述corrcoef 指 pearson correlation coefficient。htm
扩展阅读 1blog
协方差
二维随机变量(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
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)= 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:
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
想用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.5000
2.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)这个式子老是成立的,
因此我我的认为是样本数量(向量维数)少或者是这个函数的缺陷。