跳到主内容
@wquguru
术语统计基础

斯皮尔曼等级相关 Spearman Rank Correlation

2026-09-05 更新

定义#

斯皮尔曼等级相关用排名衡量两个变量的单调关系强弱。它先把每个变量的原始数值换成名次,再对这两组名次算普通的相关系数,所以只关心「谁排在谁前面」,不关心具体差多少。

这带来两个好处:它不要求两个变量呈线性关系,只要方向一致(单调)就能捕捉到;而且因为极端值被压缩成一个名次,它对异常值远比皮尔逊相关系数稳健。代价是丢掉了数值的幅度信息。在因子研究里,用因子值排名和未来收益排名算出来的等级相关,就是常说的信息系数。

公式#

在没有并列名次的情况下:

ρ=16i=1ndi2n(n21)\rho = 1 - \frac{6\sum_{i=1}^{n} d_i^2}{n(n^2-1)}

其中 did_i 是第 ii 对观测值的两个名次之差,nn 是样本量。出现相同数值时用平均等级法:把这几个位次的名次取平均后共同赋值(例如并列第 3、4 名都记作 3.5)。

算一笔账#

两个变量各 5 个观测:X=10,9,5,7,5X = 10, 9, 5, 7, 5Y=20,17,11,15,13Y = 20, 17, 11, 15, 13

XX 排名(从小到大),两个 5 并列占据第 1、2 位,各记 1.5,于是名次是 5、4、1.5、3、1.5。YY 没有并列,名次是 5、4、1、3、2。

名次差 dd 为 0、0、+0.5、0、−0.5,平方和 di2=0.25+0.25=0.5\sum d_i^2 = 0.25 + 0.25 = 0.5

代入公式:ρ=16×0.55×(251)=13120=0.975\rho = 1 - \dfrac{6 \times 0.5}{5 \times (25-1)} = 1 - \dfrac{3}{120} = 0.975。名次几乎完全一致,只有并列造成的一点点错位。

常见问题#

什么时候该用它而不是普通的相关系数?#

数据不服从正态分布、存在明显异常值,或者你相信两者的关系是单调但不一定是直线时,用等级相关更稳妥。反过来,如果你关心的就是「涨 1% 带动多少」这种幅度关系,皮尔逊相关系数更合适。

需要多少样本才算可靠?#

样本太少时名次相关很容易偶然变得很高。一般建议至少 5 个观测才算得动,20 个以上结果才比较稳定;同时看它给出的 p 值,判断这个数字是不是碰巧。

数据里有相同的值怎么办?#

用平均等级法,把并列的几个位次的名次取平均后一起赋给它们。也有取最小、最大或随机分配的做法,但平均等级最常用,也最不容易引入方向性偏差。

相关术语

出自