概述
Pearson相关系数是最常用的相关系数,又称和差相关系数,取值-1到1,绝对值越大,说明相关性越强。该系数的计算和检验为参数方法,适合做连续变量的相关性分析,适用的条件如下:
- 两个变量呈直线相关关系或正态分布,非线性相关可能会不准确
- 极端值会对结果造成比较大的影响
- 两变量符合双变量联合正态分布
- 对于非线性的相关,需先标准化
Pearson相关系数就是我们概率论中所学的那个概率系数,O(∩_∩)O哈哈~
定义
要理解Pearson相关系数,首先要理解协方差(Covariance),协方差是一个反映两个随机变量相关程度的指标,如果一个变量跟随着另一个变量同时变大或者变小,那么这两个变量的协方差就是正值,反之相反,公式如下:
Pearson相关系数公式如下:
在概率论中,我们学过,协方差可以用于描述两个变量之间的相关程度。(协方差大于0表示正相关,协方差小于0表示负相关)
但是协方差大小却并不能很好的表征两个变量之间的相关联程度。在两个变量离散的随机分布中,往往存在着较大的协方差的值,但显而易见,这两个变量并不具备较高的关联程度。
为了更好的用值去度量变量与变量之间的相似程度,我们在协方差的基础上,除去两个变量的标准差,这就是Pearson相关系数,在上例中,离散分布的随机变量值同时具有较高的标准差的值与较高的协方差的值,因此计算所得的皮尔逊相关系数能够较为合理的表现出变量之间的向关联程度。如果相关系数为0,则表明两个变量之间不存在相关性。
《数据挖掘导论》给出了一个很好的图来说明:
在上图中,可以发现,当Pearson系数为1时,两个变量之间呈现正的线性相关,Pearson系数为-1时,呈现出负相关,即一个变量增大,另一个变量随之减小。而当Pearson系数为0时,可以发现,两个数据之间呈离散的分布,表明不具有线性相关性。
补充
对于非线性的数据,常在数据标准化(即让数据满足标准正态分布)后,再进行计算。
在数据标准化后,Pearson相关性系数、Cosine相似度、欧式距离的平方可认为是等价的
代码
1 2 3 4 5 |
import pandas as pd df = pd.DataFrame() df['a'] = [1, 3, 2, 4] df['b'] = [1, 2, 3, 5] df.corr('pearson') |
基于Python的pandas库即可快速的实现求解