常用的相关分析系数

  • 一、Spearman Rank相关系数
  • 1.1 Pearson相关系数的定义
  • 1.2 python实现pearson相关系数
  • 二、Spearman秩相关系数
  • 2.1 Spearman 秩相关系数的定义
  • 2.2 python 实现 Spearman 秩相关系数
  • 三、Kendall(肯德尔)秩相关系数


  相关分析是衡量事物之间或称变量之间线性相关程度的强弱,并用适当的统计指标表示出来的过程。比如,家庭收入和支出、一个人所受教育程度与其收入、子女身高和父母身高等。

  相关分析的计算方式有三种,分别是Pearson相关系数(适用于定量数据,且数据满足正态分布)、Spearman相关系数(数据不满足正态分布时使用)。Kendall’s tau -b相关系数(有序定类变量)。

一、Spearman Rank相关系数

1.1 Pearson相关系数的定义

  • 当两个变量都是正态连续独立变量,而且两者之间呈线性关系,两变量的方差不为0,通常用Pearson相关系数来衡量。

  pearson是一个介于-1和1之间的值,当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关系数等于0,表明它们之间不存在线性相关关系。
机器学习中的spearman相关系数 spearman相关系数意义_数据

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

机器学习中的spearman相关系数 spearman相关系数意义_机器学习中的spearman相关系数_02

显著性检验的统计量为t统计量,其数学定义为:
机器学习中的spearman相关系数 spearman相关系数意义_数据_03

虽然协方差机器学习中的spearman相关系数 spearman相关系数意义_数据_04能反映两个随机变量的相关程度(协方差大于0的时候表示两者正相关,小于0的时候表示两者负相关),但是协方差值的大小并不能很好地度量两个随机变量的关联程度。
在二维空间中分布着一些数据,我们想知道数据点坐标X轴和Y轴的相关程度,如果X与Y的相关程度较小但是数据分布的比较离散,这样会导致求出的协方差值较大,用这个值来度量相关程度是不合理的,为了更好的度量两个随机变量的相关程度,引入了Pearson相关系数,其在协方差的基础上除以了两个随机变量的标准差。

  • Pearson 相关系数对异常值比较敏感,在数据清洗阶段需要将异常值过滤或者平滑处理。

1.2 python实现pearson相关系数

import numpy as np
import scipy.stats as stats  
import scipy
# 某银行25家分行不良贷款(y)与贷款余额(x)如下:
x = [67.3,111.3,173,80.8,199.7,16.2,107.4,185.4,96.1,72.8,64.2,132.2,58.6,174.6,263.5,79.3,14.8,73.5,24.7,139.4,368.2,95.7,109.6,196.2,102.2]
y = [0.9,1.1,4.8,3.2,7.8,2.7,1.6,12.5,1.0,2.6,0.3,4,0.8,3.5,10.2,3,0.2,0.4,1,6.8,11.6,1.6,1.2,7.2,3.2]
correlation,pvalue = stats.stats.pearsonr(x,y) 
print ('correlation',correlation)
print ('pvalue',pvalue)

二、Spearman秩相关系数

2.1 Spearman 秩相关系数的定义

  Spearman Rank相关系数,即斯皮尔曼秩相关系数(Spearman Rank Order Correlation Coefficient,简称SROCC)。

Spearman 秩相关系数是一个非参数性质(与分布无关、与是否线性关系无关)的秩统计参数,是用来度量两个连续型变量之间单调关系强弱的相关系数,取值范围也是 [−1,1],也可检测有序的离散变量间的相关系数.采用秩来计算,避免离群值对相关系数的影响。在没有重复数据的情况下,如果一个变量是另外一个变量的严格单调函数,则 Spearman 秩相关系数就是 1 或 −1,称变量完全 Spearman 秩相关。

等级相关,是将两变量的样本值按数据的大小顺序排列位次,以各要素样本值的位次代替实际数据而求得的一种统计量。排序不论从大到小还是从小到大排都无所谓,只要保证大家排序的标准一致即可。

机器学习中的spearman相关系数 spearman相关系数意义_机器学习中的spearman相关系数_05 来表示 Spearman 相关系数 (用 ρ_p 表示 Pearson 相关系数)。如果每个变量都没有相同的取值 (即没有相同的秩次),则 Spearman 相关系数可由下式计算:
机器学习中的spearman相关系数 spearman相关系数意义_机器学习中的spearman相关系数_06
其中,n 表示数据点的个数;di 表示数据点机器学习中的spearman相关系数 spearman相关系数意义_概率论_07的秩次机器学习中的spearman相关系数 spearman相关系数意义_概率论_08之差:机器学习中的spearman相关系数 spearman相关系数意义_数据_09

如果某个变量有重复数据,则计算变量之间的 Spearman 相关系数就是计算变量数据秩次之间的 Pearson 相关系数:

机器学习中的spearman相关系数 spearman相关系数意义_协方差_10

其中,rx 表示变量 x 转换后的秩次。从这个定义可以看出来,Spearman 相关系数实际上就是对数据做了秩次变换后的 Pearson 相关系数。

此时,显著性检验的统计量为z统计量,其数据定义为:
机器学习中的spearman相关系数 spearman相关系数意义_概率论_11

  • 举例说明,首先将样本进行秩次变换,样本升序排列后的位次如表 所示:

编号

x

y

1

0.1

0.1

1

1.5

-0.5

2

0.2

0.1

2

1.5

0.5

3

0.3

0.2

3

3

0

4

0.4

0.6

4

4

0

5

0.5

0.7

5

5

0

6

0.6

0.8

6

6

0

7

0.7

0.9

7

7

0

8

0.8

1

8

8

0

需要说明的是,这里变量 y 有两个重复数据 0.1,在排序的时候它们的位次相同,此时可以用相同位次的数据所占的位次之和除以数据的数量 (即 (1+2)/2=1.5) 来作为这些重复数据的位次。

根据定义,当存在重复数据的时候,我们计算秩次 (即 rx, ry) 的 Pearson 相关系数

2.2 python 实现 Spearman 秩相关系数

from scipy.stats import spearmanr, pearsonr
x=[0.1, 0.2, 0.3, 0.4, 0.6, 0.7, 0.8, 0.9]
y=[0.1, 0.1, 0.2, 0.6, 0.7, 0.8, 0.9, 1.0]
spearmanr(x,y)
(0.99402979738800479, 5.2961535156451228e-07)
rx=[1, 2, 3, 4, 5, 6, 7, 8]
ry=[1.5, 1.5, 3, 4, 5, 6, 7, 8]
pearsonr(rx,ry)
  • Spearman 相关系数是度量两个连续型变量之间单调关系强弱的相关系数,它对数据的分布不作任何假设,能够容忍异常值,也不需要数据的取值是等距的;
  • Spearman 相关系数实际上就是对数据做了秩次变换后的 Pearson 相关系数,只要能用 Pearson 相关系数的地方就能使用 Spearman 相关系数;
  • Spearman 相关系数还需要对原始数据进行排序,因此计算复杂度高于 Pearson 相关系数,当数据满足 Pearson 相关系数的使用条件时,优先考虑使用 Pearson 相关系数。

https://guyuecanhui.github.io/2019/07/28/feature-selection-spearman/

三、Kendall(肯德尔)秩相关系数

是一个非参数性质(与分布无关)的秩统计参数,是用来度量两个有序变量(如文化程度与消费比率的关系)之间单调关系强弱的相关系数。与Spearman秩相关系数基本类似。

  Kendal秩相关系数公式有三个:

  • τa公式适用于数据集中不存在相同数值的情况(即秩是唯一的)

机器学习中的spearman相关系数 spearman相关系数意义_数据_15

机器学习中的spearman相关系数 spearman相关系数意义_协方差_16表示所有样本两两组合的数量,在变量没有重复值的情况下,m=c+d。同序对c,就是两个变量取值的相对关系一致;异序对d:是指它们的相对关系不一致.

如下所示,假定变量X和变量Y的秩如下,先将X秩按升序排序,然后观察Y秩,变量Y的秩随变量X的秩同步增大的Y的秩对有(2,3),(2,4),(2,5),(3,4),(3,5),(1,4),(1,5),(4,5),即同序对的数目c共有8对;而变量Y的秩未随变量X的秩同步增大的Y的秩对有(2,1),(3,1),即异序对d共有2对。

机器学习中的spearman相关系数 spearman相关系数意义_机器学习中的spearman相关系数_17

  • τb适用于存在相同数值的情况(即秩有重复的)

机器学习中的spearman相关系数 spearman相关系数意义_概率论_18

  其中,c 在计算的时候只能算 ai<aj 且 bi<bj 的对数,d 也只能算 ai<aj 且 bi>bj 的对数 (i<j);tx,ty 分别表示变量 x,y 取值中序号相同的样本对数排除共同平局的部分。

举例说明

  • τc公式没有考虑相同数值带来的影响,适用于用表格表示的两变量间相关系数的计算

机器学习中的spearman相关系数 spearman相关系数意义_概率论_19

机器学习中的spearman相关系数 spearman相关系数意义_概率论_20

  Kendall检验是一个无参数假设检验,使用计算而得的相关系数去检验两个变量的相关显著性,其显著性检验的统计量为Z统计量,其数学定义为

机器学习中的spearman相关系数 spearman相关系数意义_协方差_21

from scipy.stats import kendalltau
kendalltau(x,y)