Main Content

线性相关性

简介

相关性用于量化两个变量之间的线性关系强度。若两个变量之间并无相关性,则不存在变量值发生关联式增减的趋势。但是,两个不相关的变量不一定彼此独立,因为它们可能具有非线性关系。

您可以使用线性相关研究变量之间是否存在线性关系,而无须对您的数据假设或拟合具体的模型。线性相关较弱或并无线性相关的两个变量可能具有较强的非线性关系。但是,在拟合模型之前计算线性相关是识别具有简单关系的变量的有用方法。研究变量之间相关性的另一种方法是对数据绘制散点图。

协方差用相对于两个变量的方差的单位来量化它们之间的线性关系强度。相关性是归一化的协方差,可提供衡量线性关系程度的无量纲量,且不受任一变量的范围的影响。

以下 MATLAB® 函数可计算样本相关系数和协方差。这些样本系数是从中提取数据样本的总体数据的真实协方差及相关系数的估计值。

函数

描述

corrcoef

相关系数矩阵

cov

协方差矩阵

xcorr

随机过程的互相关性序列(包括自相关性)

协方差

使用 MATLAB cov 函数计算数据矩阵的样本协方差矩阵(每一列代表单独的数量)。

样本协方差矩阵具有以下特征:

  • cov(X) 是对称的。

  • diag(cov(X)) 是每个数据列的方差的向量。方差代表数据在相应列中的分散程度指标。(var 函数计算方差。)

  • sqrt(diag(cov(X))) 是标准差的向量。(std 函数计算标准差。)

  • 协方差矩阵的非对角元素代表各个数据列之间的协方差。

在这里,X 可以是向量或矩阵。对于 m×n 矩阵,协方差矩阵为 n×n

若要查看协方差计算示例,请在包含 24×3 矩阵的 count.dat 中加载样本数据:

load count.dat

为此数据计算协方差矩阵:

cov(count)

MATLAB 得出以下结果:

ans =
    1.0e+003 *
       0.6437  0.9802  1.6567
       0.9802  1.7144  2.6908
       1.6567  2.6908  4.6278

此数据的协方差矩阵具有以下形式:

[s211s212s213s221s222s223s231s232s233]s2ij=s2ji

在这里,s2ij 是数据的 i 列和 j 列之间的样本协方差。由于矩阵 count 含有三列,协方差矩阵为 3×3。

注意

在向量是 cov 的参量的特殊情况下,函数返回方差。

相关系数

函数 corrcoef 为数据矩阵产生样本相关系数矩阵(每一列代表单独的数量)。相关系数范围为 -1 至 1,其中:

  • 接近 1 的值表示数据列之间有正线性关系。

  • 接近 -1 的值表示一个数据列与另一个数据列之间有负线性关系(反相关)。

  • 接近或等于 0 的值表示数据列之间无线性关系。

对于 m×n 矩阵,相关系数矩阵为 n×n。相关系数矩阵中的元素排列对应于协方差矩阵中元素的位置,如协方差中所述。

若要查看相关系数计算示例,请在包含 24×3 矩阵的 count.dat 中加载样本数据:

load count.dat

输入以下语法以计算相关系数:

corrcoef(count)

这样会产生以下 3×3 相关系数矩阵:

ans = 
    1.0000    0.9331    0.9599
    0.9331    1.0000    0.9553
    0.9599    0.9553    1.0000

由于所有相关系数都接近 1,count 矩阵中每一对数据列之间都具有较强的正相关性。