sperman(斯皮尔曼)相关系数
时间: 2025-01-09 12:39:14 浏览: 82
### 斯皮尔曼相关系数的概念
斯皮尔曼等级相关系数(Spearman’s rank correlation coefficient),通常用希腊字母 ρ 表示,是一个衡量两个变量之间单调相关性的统计量[^3]。该系数通过评估两组数据的排序位置之间的线性关系来反映它们的相关程度。
具体来说,斯皮尔曼相关系数被定义为基于秩次的数据间的皮尔逊相关系数[^1]。这意味着原始数值会被转换为其所在样本中的相对位次或排名,之后再计算这些排名值之间的皮尔逊相关系数作为最终的结果[^2]。
对于给定的一对观测值 \((X_i, Y_i)\),其中 \(i=1,...,n\) ,首先分别求得各变量对应的秩次 \(R(X_i), R(Y_i)\),接着按照下述公式计算:
\[
\rho_{s} = 1-\frac{6}{n(n^2-1)}\sum d_i^2
\]
这里 \(d_i=R(X_i)-R(Y_i)\) 是每一对观察值对应于不同序列上的差分;\(n\) 则代表总的配对数量。
当所有数据点都严格遵循相同的增减趋势时,则认为存在完全正向或负向的关系,此时ρ取±1;如果没有任何规律可循则接近0。
### Python 实现例子
下面展示如何使用Python库`scipy.stats.spearmanr()`函数快速实现这一过程:
```python
from scipy import stats
import numpy as np
np.random.seed(0)
# 创建随机数组
x = np.random.rand(10)
y = np.random.rand(10)
# 计算斯皮尔曼相关系数及其p-value
correlation, p_value = stats.spearmanr(x, y)
print(f"Spearman Correlation Coefficient: {correlation}")
print(f"P Value: {p_value}")
```
此代码片段展示了创建一组随机数并调用`spearmanr()`方法得到两者间斯皮尔曼相关性和显著水平P值的方法。
阅读全文
相关推荐














