Matlab系列教程_数值计算_求协方差和相关系数

首先,什么是协方差和相关系数?

1.协方差

协方差,表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

计算公式:
这里写图片描述

在Matlab的计算方法是:

M=cov(X) % 计算协方差
参数说明:X为n×p的矩阵,返回的是p×p的矩阵。
M=cov(X,Y) % 计算协方差
参数说明:X为n×p1的矩阵,Y为n×p2的矩阵,返回的是p1×p2的矩阵。
……………………………………………………………………………………….
[A,B]=corr(X,Y)
参数说明:A是方差或者协方差,B是非零相关性的相关系数矩阵。

2.简单相关系数

简单相关系数:又叫相关系数或线性相关系数,一般用字母r 表示,用来度量两个变量间的线性关系。

计算公式:
这里写图片描述

在Matlab的计算方法是:

M=corrcoef(X)
参数说明:返回矩阵X形成的相关系数矩阵。此相关系数矩阵的大小和X矩阵一样。它把矩阵的每一行当成一个变量,然后求他们的相关系数。

M=corrcoef(X,Y)
参数说明:将[X,Y]合并成一个矩阵。然后和上面的结果一样。

参考代码如下:

clc;clear;
x=randn(20,4);
y=randn(20,4);
y(:,4)=sum(x,2);           %引入相关
M=cov(x,y);                %计算x,y之间的协方差
[r1,p1]=corr(x,y);         %计算x,y之间的协方差  
[r2,p2]=corrcoef(x,y);     %计算x,y之间的相关系数

你可能感兴趣的:(Matlab系列)