下面我来为你详细讲解 Python 斯皮尔曼等级顺序相关度使用方法的完整攻略。
概述
斯皮尔曼等级顺序相关度(Spearman’s rank correlation coefficient),也称斯皮尔曼相关系数,是用于统计两个变量之间单调关系强度的非参数检验方法。斯皮尔曼相关系数的取值范围在 [-1, 1] 之间,其中,-1 表示完全反相关,0 表示无相关关系,1 表示完全正相关。
使用方法
在 Python 中,我们可以使用 scipy
库中的 spearmanr
函数进行求解。该函数的调用方式如下:
from scipy.stats import spearmanr
corr, p_value = spearmanr(x, y)
其中,x
和 y
是两个样本变量。
函数的返回值包含两个部分:
corr
: 斯皮尔曼相关系数的值p_value
: 此系数的双侧 p 值
同时,该函数还支持返回相关系数矩阵,以及计算多个变量之间的相关系数等用法,具体可以参考 官方文档。
示例说明
示例一
假设我们有两个变量 x
和 y
,它们之间的关系如下:
x | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
y | 5 | 6 | 4 | 8 | 7 |
现在我们需要计算它们之间的 Spearman 相关系数。
from scipy.stats import spearmanr
x = [1, 2, 3, 4, 5]
y = [5, 6, 4, 8, 7]
corr, p_value = spearmanr(x, y)
print(f"Spearman 相关系数:{corr:.4f}")
print(f"p 值:{p_value:.4f}")
运行结果:
Spearman 相关系数:0.2000
p 值:0.8263
由于此例中相关系数较小,且 p 值较大,因此我们可以认为 x
和 y
之间不存在显著相关关系。
示例二
再假设我们有另外两个变量 a
和 b
,它们之间的关系如下:
a | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
b | 3.2 | 3.9 | 2.0 | 4.1 | 3.7 |
现在我们需要计算它们之间的 Spearman 相关系数。
from scipy.stats import spearmanr
a = [1, 2, 3, 4, 5]
b = [3.2, 3.9, 2.0, 4.1, 3.7]
corr, p_value = spearmanr(a, b)
print(f"Spearman 相关系数:{corr:.4f}")
print(f"p 值:{p_value:.4f}")
运行结果:
Spearman 相关系数:0.2000
p 值:0.8263
由于此例中相关系数较小,且 p 值较大,因此我们可以认为 a
和 b
之间不存在显著相关关系。