斯皮尔曼等级相关系数衡量变量间的单调关系,是非参数统计方法。
定义
其中 是两变量等级之差。
与Pearson的区别
| 特性 | Pearson | Spearman |
|---|---|---|
| 关系类型 | 线性 | 单调 |
| 分布假设 | 正态分布 | 无 |
| 异常值敏感 | 是 | 否 |
计算步骤
- 将数据转换为等级(排名)
- 计算等级差的平方和
- 代入公式计算
Python 实现
from scipy import stats
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([5, 6, 7, 8, 7])
rho, p_value = stats.spearmanr(x, y)应用场景
- 非线性但单调的关系
- 有异常值的数据
- 有序分类变量相关性
- 特征选择