本文给出两种相关系数,系数越大说明越相关。

皮尔森相关系数

皮尔森相关系数(Pearson correlation coefficient)也叫皮尔森积差相关系数(Pearson product-moment correlation coefficient),是用来反应两个变量相似程度的统计量。或者说可以用来计算两个向量的相似度(在基于向量空间模型的文本分类、用户喜好推荐系统中都有应用)。

皮尔森相关系数计算公式如下:

Python 计算皮尔森相关系数 皮尔森相关系数怎么求_相似度

分子是协方差,分子是两个变量标准差的乘积。显然要求X和Y的标准差都不能为0。

当两个变量的线性关系增强时,相关系数趋于1或-1。正相关时趋于1,负相关时趋于-1。当两个变量独立时相关系统为0,但反之不成立。比如对于y=x2,X服从[-1,1]上的均匀分布,此时E(XY)为0,E(X)也为0,所以ρX,Y=0,但x和y明显不独立。所以“不相关”和“独立”是两回事。当Y 和X服从联合正态分布时,其相互独立和不相关是等价的。

对于居中的数据来说(何谓居中?也就是每个数据减去样本均值,居中后它们的平均值就为0),E(X)=E(Y)=0,此时有:

Python 计算皮尔森相关系数 皮尔森相关系数怎么求_ci_02

即相关系数可以看作是两个随机变量中得到的样本集向量之间夹角的cosine函数。

进一步当X和Y向量归一化后,||X||=||Y||=1,相关系数即为两个向量的乘积ρX,Y=X∙Y。

Spearman秩相关系数

首先说明秩相关系数还有其他类型,比如kendal秩相关系数。

使用Pearson线性相关系数有2个局限:

  1. 必须假设数据是成对地从正态分布中取得的。
  2. 数据至少在逻辑范围内是等距的。

对于更一般的情况有其他的一些解决方案,Spearman秩相关系数就是其中一种。Spearman秩相关系数是一种无参数(与分布无关)检验方法,用于度量变量之间联系的强弱。在没有重复数据的情况下,如果一个变量是另外一个变量的严格单调函数,则Spearman秩相关系数就是+1或-1,称变量完全Spearman秩相关。注意这和Pearson完全相关的区别,只有当两变量存在线性关系时,Pearson相关系数才为+1或-1。

对原始数据xi,yi按从大到小排序,记x’i,y’i为原始xi,yi在排序后列表中的位置,x’i,y’i称为xi,yi的秩次,秩次差di=x’i-y’i。Spearman秩相关系数为:

ρs=1−6∑d2in(n2−1)

位置

原始X

排序后

秩次

原始Y

排序后

秩次

秩次差

1

12

546

5

1

78

6

1

2

546

45

1

78

46

1

0

3

13

32

4

2

45

5

1

4

45

13

2

46

6

2

0

5

32

12

3

6

2

4

1

6

2

2

6

45

1

3

-3

对于上表数据,算出Spearman秩相关系数为:1-6*(1+1+1+9)/(6*35)=0.6571

查阅秩相关系数检验的临界值表

n

显著水平

0.05

0.01

5

0.9

1

6

0.829

0.943

7

0.714

0.893

置信度=1-显著水平。上表显示在n=6的时候,当spearman秩相关系数>=0.829时我们有95%的置信度认为两个随机变量相关,当spearman秩相关系数>=0.943时我们有99%的置信度认为两个随机变量相关。由于0.6571<0.829,即置信度达不到95%,所以我们不能认为X和Y相关。

如果原始数据中有重复值,则在求秩次时要以它们的平均值为准,比如:

原始X

秩次

调整后的秩次

0.8

5

5

1.2

4

(4+3)/2=3.5

1.2

3

(4+3)/2=3.5

2.3

2

2

18

1

1

Spearman秩相关系数应该是从秩和检验延伸过来的,因为它们很像。

相关性和相似度的区别

X=(1,2,3)跟Y=(4,5,6)的皮尔森相关系数等于1,说明X和Y是严格线性相关的(事实上Y=X+3)。

但是X和Y的相似度却不是1,如果用余弦距离来度量,X和Y之间的距离明显大于0。