协方差矩阵
协方差(covariance
)可以用来观测变量之间是否存在线性相关性。然而,协方差本身有一些局限性,因此在实际应用中,我们通常还会使用相关系数来进一步评估变量之间的相关性。
协方差的局限性
-
尺度依赖性:
- 协方差的值受变量尺度的影响。如果一个变量的值范围很大,而另一个变量的值范围很小,即使它们之间有很强的线性关系,协方差的绝对值也可能很大或很小,这使得直接比较不同变量之间的协方差变得困难。
-
单位依赖性:
- 协方差的单位是两个变量单位的乘积。例如,如果一个变量的单位是米,另一个变量的单位是秒,那么协方差的单位将是米·秒。这使得协方差的解释更加复杂。
相关系数
为了克服协方差的这些局限性,我们通常使用 皮尔逊相关系数(Pearson correlation coefficient),它是一个标准化的协方差,范围在 -1 到 1 之间。
皮尔逊相关系数的定义
皮尔逊相关系数 ( r ) 定义为: $$ r_{XY} = \frac{\text{Cov}(X, Y)}{\sigma_X \sigma_Y} $$
其中:
- $\sigma_X $ 是 X 的标准差。
- $\sigma_Y$ 是 Y 的标准差。
解释
- ( r = 1 ):完全正相关,即两个变量完全同向变化。
- ( r = -1 ):完全负相关,即两个变量完全反向变化。
- ( r = 0 ):没有线性相关性。
- ( |r| ) 接近 1:表示强相关性。
- ( |r| ) 接近 0:表示弱相关性或没有相关性。
Python 示例
可以使用 numpy
或 pandas
库来计算皮尔逊相关系数。
使用 numpy
|
|
这里的np.cov()
和np.corrcoef()
,如果不指定第二个参数,那么第二个参数默认rowvar = True
,意思就是这组数据是按照横向放置的,意思就是每一行是一个属性
而在有时候需要从文件里面读取一些属性,例如
|
|
那么这个时候,就可以把默认值设置为False
,代表每一列是一个属性
使用 pandas
|
|
结论
协方差提供关于变量之间线性关系的一些信息,但建议使用皮尔逊相关系数。
相关系数不仅标准化了协方差,还提供了一个易于解释的度量,范围在 -1 到 1 之间。1代表存在正相关关系,-1代表负相关关系。