[秩相关] 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秩相关系数为:

           

位置原始X排序后秩次原始Y排序后秩次秩次差
112546517861
2546451784610
31332424551
44513246620
5321236241
62264513-3

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

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

原始X秩次调整后的秩次
0.855
1.24(4+3)/2=3.5
1.23(4+3)/2=3.5
2.322
1811

假设检验:

Spearman秩相关系数也应该进行假设检验,当n小于等于50时,用查表法,当n大于50时,计算统计量t的值,即用前面皮尔森相关系数假设检验中t值的计算方式。


对于上述数据,查阅秩相关系数检验的临界值表

n显著水平
0.050.01
50.91
60.8290.943
70.7140.893

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


实例:



### 回答1: Spearman相关系数是一种用于衡量两个变量之间的相关性的统计方法,它不要求变量之间的关系是线性的。在Python中,可以使用scipy库中的spearmanr函数来计算Spearman相关系数。该函数的用法如下: ```python from scipy.stats import spearmanr # x和y是两个变量的数据 corr, p_value = spearmanr(x, y) ``` 其中,corr是Spearman相关系数,p_value是对应的p值。需要注意的是,spearmanr函数要求输入的数据是一维数组或者二维数组的列向量。如果输入的是二维数组,需要指定axis参数来指定计算哪个维度的相关系数。 ### 回答2: Spearman相关系数是一种衡量两个变量之间相关性的方法,通常用于衡量非线性关系。该方法的核心思想是将数据转换为次,然后计算次之间的相关系数。与Pearson相关系数不同,Spearman相关系数可以适用于非连续性的数据,例如排名、等级等。 在Python中,计算Spearman相关系数可以使用scipy库中的spearmanr函数。该函数的调用方式为spearmanr(x,y),其中x和y均为需要计算的两个变量。如果数据中存在缺失值,可以使用nanrankdata函数将数据转换为次并忽略缺失值。 Spearman相关系数的输出结果为一个元组,包含两个值:相关系数和p值。相关系数的取值范围为-1到1,其中-1表示完全负相关,1表示完全正相关,0表示不相关。p值表示相关系数的显著性水平,通常p<0.05表示显著相关。 以下是一个例子,演示如何使用Python计算Spearman相关系数: import scipy.stats as stats import numpy as np x = np.array([1,2,3,4,5]) y = np.array([3,1,5,2,4]) corr, p_value = stats.spearmanr(x,y) print("Spearman correlation coefficient:", corr) print("p value:", p_value) 输出结果为: Spearman correlation coefficient: 0.39999999999999997 p value: 0.4000000000000001 可以看到,x和y之间的Spearman相关系数为0.4,p值为0.4,意味着两个变量之间存在一定程度的正相关,但并不显著。 ### 回答3: Spearman相关系数是一种用于衡量两个变量之间关系的统计方法,用于检验变量之间的单调关系(无论是正向还是反向)。它的计算方法是将每个变量的值都转换为次,然后计算次之间的相关性,它与 Pearson 相关系数不同之处在于它不需要假设数据取自正态分布。在 Python 中,我们可以使用 SciPy 包中的 spearmanr 函数来计算 Spearman 相关系数。 spearmanr 函数的语法如下: ``` scipy.stats.spearmanr(a, b=None, axis=0, nan_policy='propagate') ``` 其中,参数 a、b 为待测量的两个变量,它们可以是数组、列表或元组等任何可以进行次转换的数据类型。axis 参数为计算的轴,若 a、b 都为二维数组,则 axis 指定沿哪个轴计算。nan_policy 用于定义当遇到 NaN(空值)时的处理方式,包括 'propagate'(传播 NaN 值)、'raise'(抛出异常)和 'omit'(忽略 NaN 值)三种。 spearmanr 函数的返回值为一个 tuple,其中第一个元素为计算得到的 Spearman 相关系数,第二个元素为 P 值,用于评估得到的相关系数是否显著,越小则说明越显著,通常置信度取 95%。 总之,在 Python 中,使用 spearmanr 函数计算 Spearman 相关系数非常简单。只需将待测量的变量传递给函数作为参数即可计算。但需要注意的是,在使用 Spearman 相关系数之前,我们需要先做好数据的次转换工作,并理清变量之间是否存在单调关系。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值