斯皮尔曼等级相关系数

斯皮尔曼等级相关系数(Spearman’s rank correlation coefficient)是一种非参数的统计度量,用于评估两个变量之间的单调关系,即它们是否倾向于同时增加或减少,而不考虑它们之间的具体函数形式。它特别适用于以下场景:

  1. 非正态分布或非线性关系:当数据不服从正态分布或变量间存在非线性关系时,斯皮尔曼等级相关系数可以作为一个有效的替代方法。
  2. 序数数据:当数据是序数类型(如排名、等级)而非实际数值时,斯皮尔曼等级相关系数可以用来分析变量之间的关系。
  3. 异常值的影响较小:与皮尔逊相关系数相比,斯皮尔曼等级相关系数对异常值(outliers)的影响较小,因为它基于数据的排名而非实际数值。

斯皮尔曼等级相关系数的值范围在-1到+1之间,其中:

  • +1 表示完全的单调递增关系,即一个变量的增加总是伴随着另一个变量的增加。
  • -1 表示完全的单调递减关系,即一个变量的增加总是伴随着另一个变量的减少。
  • 0 表示没有单调关系,即两个变量的增减没有明显的一致性。

举例说明:

假设我们想要研究教育水平和对环境问题关心程度之间的关系。我们收集了一组数据,包括人们的教育年数(X)和年收入(Y)。由于教育年数可能是整数且不一定呈正态分布,同时年收入也可能是序数数据,因此使用斯皮尔曼等级相关系数来分析这两个变量之间的关系是合适的。

如果我们计算得到的斯皮尔曼等级相关系数为+0.8,这表明教育水平和对年收入之间存在较强的单调递增关系。也就是说,随着教育水平的提高,人们年收入倾向于提高。如果相关系数为-0.7,则表明它们之间存在较强的单调递减关系,即教育水平越高,年收入反而越低。如果相关系数接近0,则表明教育水平和对年收入之间没有明显的单调关系。

假设我们有以下数据集,包含5个人的教育年数(X)和他们的年收入(Y):

教育年数 (X)年收入 (Y)
A1030000
B1550000
C1245000
D825000
E2070000

首先,我们需要将X和Y的值转换为等级(如果存在相同的值,则分配平均等级):

教育年数 (X)教育年数等级 (Rank_X)年收入 (Y)年收入等级 (Rank_Y)
A103300003
B155500005
C124450004
D81250001
E202700002

接下来,我们使用斯皮尔曼等级相关系数的公式计算相关系数:

斯皮尔曼等级相关系数 r s r_s rs 的计算公式为:
r s = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) r_s = 1 - \frac{6 \sum d_i^2}{n(n^2 - 1)} rs=1n(n21)6di2
其中, d i d_i di 是每一对观测值的等级差, n n n 是观测值的总数。

在这个例子中,等级差 d i d_i di 为:

  • A: ( |3 - 3| = 0 )
  • B: ( |5 - 5| = 0 )
  • C: ( |4 - 4| = 0 )
  • D: ( |1 - 1| = 0 )
  • E: ( |2 - 2| = 0 )

∑ d i 2 = 0 + 0 + 0 + 0 + 0 = 0 \sum d_i^2 = 0 + 0 + 0 + 0 + 0 = 0 di2=0+0+0+0+0=0

代入公式中,我们得到:

r s = 1 − 6 × 0 5 ( 5 2 − 1 ) = 1 r_s = 1 - \frac{6 \times 0}{5(5^2 - 1)} = 1 rs=15(521)6×0=1

Python代码示例:

以下是使用Python和SciPy库计算斯皮尔曼等级相关系数的代码:

import numpy as np
from scipy.stats import spearmanr

# 教育年数和年收入数据
education_years = [10, 15, 12, 8, 20]
incomes = [30000, 50000, 45000, 25000, 70000]

# 计算斯皮尔曼等级相关系数
correlation, p_value = spearmanr(education_years, incomes)

print(f"斯皮尔曼等级相关系数: {correlation}")
print(f"P值: {p_value}")

这段代码将输出斯皮尔曼等级相关系数以及对应的P值,P值用于测试非相关性的假设(即相关系数为0的假设)。如果P值很小,它表明观察到的相关性在统计上是显著的,即两个变量之间很可能存在某种关系。

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值