相似度计算之皮尔逊相关系数

1 min read

在统计学中,皮尔逊相关系数相关系数(英语:Pearson product-moment correlation coefficient,又称作 PPMCC或PCCs, 用r表示)用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。通常情况下通过以下相关系数取值范围判断变量的相关强度:

  • 8-1.0 极强相关
  • 6-0.8 强相关
  • 4-0.6 中等程度相关
  • 2-0.4 弱相关
  • 0-0.2 极弱相关或无相关

该相关系数是判断两组数据与某一直线拟合程度的一种度量,对应的公式比欧几里得距离计算公式要复杂,但是他在数据不是很规范(normalized)的时候,会倾向于给出更好的结果。

皮尔逊相关系数的定义

两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商:

    \[\rho_{X,Y}=\frac{cov(X,Y)}{\sigma _X \sigma _Y} = \frac{E[(X-\mu _X)(Y-\mu _Y)]}{\sigma _X \sigma _Y}\]

协方差是一个反映两个随机变量相关程度的指标,如果一个变量跟随着另一个变量同时变大或者变小,那么这两个变量的协方差就是正值,反之相反。虽然协方差能反映两个随机变量的相关程度(协方差大于0的时候表示两者正相关,小于0的时候表示两者负相关),但是协方差值的大小并不能很好地度量两个随机变量的关联程度,其值大小与两个变量的量纲有关,不适于比较。为了更好的度量两个随机变量的相关程度, Pearson相关系数其在协方差的基础上除以了两个随机变量的标准差。相关系数ρ相当于协方差的“标准化”,消除了量纲的影响。

上式定义了总体相关系数,常用希腊小写字母 ρ (rho) 作为代表符号。估算样本的协方差和标准差,可得到样本相关系数(样本皮尔逊系数),常用英文小写字母 r 代表:

    \[r = \frac{\sum_{i=1}^{n}{(X_i-\overline X)(Y_i-\overline Y)}}{\sqrt{\sum_{i=1}^{n}{(X_i-\overline X)^2}}\sqrt{\sum_{i=1}^{n}{(Y_i-\overline Y)^2}}}\]

r 亦可由(Xi,Yi)样本点的标准分数均值估计,得到与上式等价的表达式:

    \[r = \frac{1}{n-1}\sum_{i=1}^{n}(\frac{X_i-\overline X}{\sigma _X})(\frac{Y_i-\overline Y}{\sigma _Y})\]

其中 frac {X_{i}-{\overline {X}}}{\sigma _{X}}\overline {X}\sigma _{X}分别是对X_{i}样本的标准分数、样本平均值和样本标准差。

皮尔逊相关系数的数学特性

皮尔逊相关系数有一个重要的数学特性是,因两个变量的位置和尺度的变化并不会引起该系数的改变,即它该变化的不变量 (由符号确定)。也就是说,我们如果把X移动到a + bX和把Y移动到c + dY,其中a、b、c和d是常数,并不会改变两个变量的相关系数(该结论在总体和样本皮尔逊相关系数中都成立)。

由于μX = E(X), σX2 = E[(X − E(X))2] = E(X2) − E2(X),Y也类似, 并且

    \[E[(X-E(X))(Y-E(Y))]=E(XY)-E(X)E(Y)\]

故相关系数也可以表示成:

    \[\rho _{X,Y}={\frac {E(XY)-E(X)E(Y)}{{\sqrt {E(X^{2})-(E(X))^{2}}}~{\sqrt {E(Y^{2})-(E(Y))^{2}}}}}\]

对于样本皮尔逊相关系数:

    \[r_{xy}={\frac {\sum x_{i}y_{i}-n{\bar {x}}{\bar {y}}}{(n-1)s_{x}s_{y}}}={\frac {n\sum x_{i}y_{i}-\sum x_{i}\sum y_{i}}{{\sqrt {n\sum x_{i}^{2}-(\sum x_{i})^{2}}}~{\sqrt {n\sum y_{i}^{2}-(\sum y_{i})^{2}}}}} = \frac{\sum x_iy_i-\frac{\sum x_i\sum y_i}{n}}{\sqrt{(\sum x_i^2-\frac{(\sum x_i)^2}{n})(\sum y_i^2-\frac{(\sum y_i)^2}{n})}}\]

皮尔逊相关系数的适用范围

当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:

  • 两个变量之间是线性关系,都是连续数据。
  • 两个变量的总体是正态分布,或接近正态的单峰分布。
  • 两个变量的观测值是成对的,每对观测值之间相互独立。

皮尔逊相关系数的Python实现

皮尔逊距离

皮尔逊距离度量的是两个变量X和Y,它可以根据皮尔逊系数定义成

    \[d_{X,Y}=1-\rho _{X,Y}.} d_{X,Y}=1-\rho _{X,Y}\]

我们可以发现,皮尔逊系数落在  [-1, 1],而皮尔逊距离落在 [0,2]。

皮尔逊相关系数与余弦相似度和欧氏距离的关系

在数据标准化(μ= 0, σ=1)后,Pearson相关性系数、Cosine相似度欧氏距离的平方可认为是等价的。换句话说,如果你的数据符合正态分布或者经过了标准化处理,那么这三种度量方法输出等价,不必纠结使用哪一种。

标准化(Standardization)是一种常见的数据缩放手段,标准化后的数据均值为0,标准差为1。公式:

    \[z(X)=\frac{X_i-\mu _X}{\sigma _X}\]

代码演示:

我们一般用欧氏距离(向量间的距离)来衡量向量的相似度,但欧氏距离无法考虑不同变量间取值的差异。举个例子,变量a取值范围是0至1,而变量b的取值范围是0至10000,计算欧式距离时变量b上微小的差异就会决定运算结果。而Pearson相关性系数可以看出是升级版的欧氏距离平方,因为它提供了对于变量取值范围不同的处理步骤。因此对不同变量间的取值范围没有要求(unit free),最后得到的相关性所衡量的是趋势,而不同变量量纲上差别在计算过程中去掉了,等价于z-score标准化。而未经升级的欧氏距离以及cosine相似度,对变量的取值范围是敏感的,在使用前需要进行适当的处理。例如,在低维度可以优先使用标准化后的欧式距离或者其他距离度量,在高维度时Pearson相关系数更加适合。不过说到底,这几个衡量标准差别不大,很多时候的输出结果是非常相似的。

参考链接:

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

K-近邻算法KNN学习笔记

什么是K-近邻算法? K近邻法(k-nearest neighbor, k-NN)是1967年由Cover T
2 min read

使用Prophet进行时间序列预测

Prophet是Facebook开源的预测工具,相比ARIMA模型,Prophet真的是非常的简单。只要读入两
1 min read

采用时间序列预测股价变化

时间序列简介 在数学上,随机过程被定义为一族时间随机变量,即{x(t),t∈T},其中T表示时间t的变动范围。
5 min read

发表评论

电子邮件地址不会被公开。 必填项已用*标注