(Pearson)皮尔逊相关系数和spearman相关系数(附python实现)

今天在做数据分析的时候,发现了需要计算特征之间的相似度,从而在相似度比较高的特征之间保留一个就行。查了一下,发现可以通过皮尔逊相关系数和spearman相关系数来计算特征之间的相似度,下面将介绍这两个系数和区别。

皮尔逊相关系数

下面是皮尔逊相关系数的计算公式,只需要将(X和Y的协方差)/(X的标准差*Y的标准差)

在这里插入图片描述
可以化简成
在这里插入图片描述

spearman相关系数

在这里插入图片描述

简单的相关系数的分类

那么对于这两个系数,怎样的值才是好的呢,遵循下面的关系

  • 0.8-1.0:极强相关
  • 0.6-0.8:强相关
  • 0.4-0.6:中等强度相关
  • 0.2-0.4:弱相关
  • 0.0-0.2:极弱或者无相关

区别

那么有个问题,是所有的变量都可以用这两个系数吗,这两个变量当然是有区别的,区别如下。

  1. 连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用spearman相关系数也可以,效率没有pearson相关系数高。
  2. 上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
  3. 两个定序测量数据(顺序变量)之间也用spearman相关系数,不能用pearson相关系数。
  4. Pearson相关系数的一个明显缺陷是,作为特征排序机制,他只对线性关系敏感。如果关系是非线性的,即便两个变量具有一一对应的关系,Pearson相关性也可能会接近0。

代码实现

import pandas as pd
data = loans_2007[["funded_amnt", "funded_amnt_inv"]]
#计算皮尔逊系数
print(data.corr())
#计算spearman系数
print(data.corr('spearman'))

这是结果,可以看出这两个变量的相关性还是很高的



                 funded_amnt  funded_amnt_inv
funded_amnt         1.000000         0.947525
funded_amnt_inv     0.947525         1.000000
                 funded_amnt  funded_amnt_inv
funded_amnt          1.00000          0.92876
funded_amnt_inv      0.92876          1.00000

  • 6
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值