统计学三大相关系数之斯皮尔曼(spearman)相关系数

本文详细介绍了斯皮尔曼相关性系数的概念及计算方法,对比了其与皮尔森相关系数的区别,强调了在非连续数据、非正态分布或非线性关系情况下斯皮尔曼相关性系数的优势,并提供了Python代码实现。
该文章已生成可运行项目,

斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,这种表征形式就没有了求皮尔森相关性系数时那些限制。下面来看一下它的计算公式:

 

统计学之三大相关性系数(pearson、spearman、kendall)
计算过程就是:首先对两个变量(X, Y)的数据进行排序,然后记下排序以后的位置(X’, Y’),(X’, Y’)的值就称为秩次,秩次的差值就是上面公式中的di,n就是变量中数据的个数,最后带入公式就可求解结果。举个例子吧,假设我们实验的数据如下:

 

统计学之三大相关性系数(pearson、spearman、kendall)
带入公式,求得斯皮尔曼相关性系数:ρs= 1-6*(1+1+1+9)/6*35=0.657

而且,即便在变量值没有变化的情况下,也不会出现像皮尔森系数那样分母为0而无法计算的情况。另外,即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小!

python代码实现:

import pandas as pd
df = pd.DataFrame({'A':[5,91,3],'B':[90,15,66],'C':[93,27,3]})
print(df.corr())
print(df.corr('spearman'))
print(df.corr('kendall'))
df2 = pd.DataFrame({'A':[7,93,5],'B':[88,13,64],'C':[93,27,3]})
print(df2.corr())
print(df2.corr('spearman'))
print(df2.corr('kendall'))

spearman相关系数和pearson相关系数选择:

1.连续数据,正态分布,线性关系,用pearson相关系数是最恰当,当然用spearman相关系数也可以,
  就是效率没有pearson相关系数高。
2.上述任一条件不满足,就用spearman相关系数,不能用pearson相关系数。
3.两个定序测量数据之间也用spearman相关系数,不能用pearson相关系数。

参考:https://blog.csdn.net/qq_30138291/article/details/79801777

http://blog.sina.com.cn/s/blog_69e75efd0102wmd2.html

本文章已经生成可运行项目
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值