cov函数 corrcoef函数【Matlab】

12.cov函数

cov函数用于求协方差矩阵,计算协方差的数学公式为:cov(x1,x2)=E[(x1-u1)(x2-u2)]。其中,E是数学期望,u1=Ex1,u2=Ex2。cov函数的调用语法如下。

(1)C=cov(x):若x为一向量,返回的则是向量元素的方差,为一标量;若x为一个矩阵,则返回协方差矩阵。

(2)C=cov(x,y):计算列向量x、y的协方差,要求x、y具有相等的元素个数。如果x、y是矩阵,那么MATLAB会将其转换为列向量,相当于cov([A(:),B(:)])。

【例4-27】  cov函数使用示例。

>> A = [-1 1 2 ; -2 3 1 ; 4 0 3]

A =

    -1     1     2

    -2     3     1

     4     0     3

>> C=cov(A)                       %  协方差矩阵

C =

   10.3333   -4.1667    3.0000

   -4.1667    2.3333   -1.5000

    3.0000   -1.5000    1.0000

>> v = diag(cov(A))'              %  矩阵A每列的方差

v =

   10.3333    2.3333    1.0000

>> V = var(A)                  %  矩阵A每列的方差

V =

   10.3333    2.3333    1.0000

通过比较可以看出,协方差矩阵主对角线上的元素就是每列的方差。

 

13.corrcoef函数

corrcoef函数用来计算矩阵相关系数。相关系数用符号表示,是一个无量纲量,计算公式为:。函数corrcoef的调用语法如下。

(1)corrcoef(x):若x为一个矩阵,返回的则是一个相关系数矩阵,其尺寸与矩阵x一样。

(2)corrcoef(x,y):计算列向量x、y的相关系数,要求x、y具有相等的元素个数。如果x、y是矩阵,那么corrcoef函数会将其转换为列向量,相当于corrcoef([x(:),y(:)])。

【例4-28】  随机生成一组数据,考察第4列和其他列的相关性。

>> x = randn(30,4);     %  无关联的数据

>> x(:,4) = sum(x,2);    %  引入相关性

>> [r,p] = corrcoef(x)  %   计算样本相关性和p值

r =

    1.0000    0.3006   -0.1030    0.6403

    0.3006    1.0000   -0.1786    0.6412

   -0.1030   -0.1786    1.0000    0.2719

    0.6403    0.6412    0.2719    1.0000

p =

    1.0000    0.1065    0.5881    0.0001

    0.1065    1.0000    0.3449    0.0001

    0.5881    0.3449    1.0000    0.1461

    0.0001    0.0001    0.1461    1.0000

>> [i,j] = find(p<0.05);  %  查找显著性相关

>> [i,j]                    %  显示下标索引

ans =

     4     1

     4     2

     1     4

     2     4

你可能感兴趣的:(Matlab)