Math-02.相关性检验-03.Spearman相关

Spearman 秩相关系数(Spearman’s rank correlation coefficient)$\rho_s$ 基于变量的(rank)而非原始值,度量单调关系,对离群点更稳健,不要求双变量正态。

段末注释(rank)为将样本按大小排序后的名次;Spearman 即对秩做 Pearson。

系列01 总论 | 对比:02 Pearson


1. 定义与直观(D1)

图 1 Spearman 直观

$X$ 增大时 $Y$ 单调增(或减)→ $\rho_s > 0$(或 $<0$),即使关系是指数/对数等非线性。


2. 数据前提(D2)

条件 说明
单调 $X$ 与 $Y$ 单调相关
有序/连续 可排序即可
不要求正态 非参数
对离群稳健 基于秩

3. 公式与显著性(D3–D4)

图 2 Spearman vs Pearson

对秩 $R(x_i), R(y_i)$ 计算 Pearson 即得 $\rho_s$。无并列秩时:

$$
\rho_s = 1 - \frac{6\sum d_i^2}{n(n^2-1)}
$$

$d_i = R(x_i) - R(y_i)$。

$H_0: \rho_s = 0$:大样本下可用与 Pearson 类似的 $t$ 近似;scipy.stats.spearmanr 给出 p 值。


4. 适用场景(D5–D7)

图 3 适用场景

场景 说明
表达量偏态 log 前先用 Spearman 探单调
有序评分 等级与连续指标
含离群点 比 Pearson 稳健
非线性单调 $Y=X^2$ 型(需 $X$ 范围适当)

5. 局限与误用(D8)

图 4 局限

问题 说明
非单调关系 U 形仍可能 $\rho_s \approx 0$
大量并列秩 用 scipy 精确算法
样本极小 p 值不稳定
忽略非单调 仍须散点图
与 Kendall 重复 小样本 Kendall 更稳

6. 示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import numpy as np
from scipy import stats

rng = np.random.default_rng(0)
x = rng.uniform(1, 10, 40)
y = np.exp(0.3 * x) + rng.normal(0, 2, 40) # 单调非线性

r_p, p_p = stats.pearsonr(x, y)
rho, p_s = stats.spearmanr(x, y)
print(f"Pearson r={r_p:.3f}, p={p_p:.4e}")
print(f"Spearman rho={rho:.3f}, p={p_s:.4e}")

# 离群点影响
x2 = np.append(x, [50])
y2 = np.append(y, [5])
print("with outlier:")
print(f" Pearson r={stats.pearsonr(x2,y2)[0]:.3f}")
print(f" Spearman rho={stats.spearmanr(x2,y2)[0]:.3f}")

7. 小结

  • Spearman $\rho_s$:秩相关,测单调;非参数、抗离群。
  • Pearson 不满足或关心单调非线性时首选。

系列导航04 Kendall | 02 Pearson


参考文献

  1. scipy.stats.spearmanr
-------------本文结束感谢您的阅读-------------