如何在 python 中计算斯皮尔曼等级相关性
在统计学中,相关性是指两个变量之间关系的强度和方向。相关系数的值范围为 -1 到 1,具有以下解释:
- -1:两个变量之间完美的负关系
- 0:两个变量之间没有关系
- 1:两个变量之间完美的正相关关系
一种特殊类型的相关性称为Spearman 等级相关性,用于衡量两个排名变量之间的相关性。 (例如,学生的数学考试成绩相对于其在班级中的科学考试成绩的排名)。
本教程介绍如何在 Python 中计算两个变量之间的斯皮尔曼等级相关性
示例:Python 中的 Spearman 等级相关
假设我们有以下 pandas DataFrame,其中包含特定班级 10 名学生的数学考试成绩和科学考试成绩:
import pandas as pd #createDataFrame df = pd. DataFrame ({'student': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], 'math': [70, 78, 90, 87, 84, 86, 91, 74, 83, 85], 'science': [90, 94, 79, 86, 84, 83, 88, 92, 76, 75]})
要计算数学和科学分数之间的 Spearman Rank 相关性,我们可以使用scipy.stats中的Spearmanr()函数:
from scipy. stats import spearmanr
#calculate Spearman Rank correlation and corresponding p-value
rho, p = spearmanr(df[' math '], df[' science '])
#print Spearman rank correlation and p-value
print (rho)
-0.41818181818181815
print (p)
0.22911284098281892
从结果中,我们可以看到 Spearman 等级相关性为-0.41818 ,相应的 p 值为0.22911 。
这表明科学和数学考试成绩之间存在负相关关系。
然而,由于相关性的 p 值不小于 0.05,因此相关性在统计上不显着。
请注意,我们还可以使用以下语法来简单地提取相关系数或 p 值:
#extract Spearman Rank correlation coefficient
spearmanr(df[' math '], df[' science '])[0]
-0.41818181818181815
#extract p-value of Spearman Rank correlation coefficient
spearmanr(df[' math '], df[' science '])[1]
0.22911284098281892
其他资源
如何在 R 中计算 Spearman 等级相关
如何在 Excel 中计算 Spearman 等级相关性
如何在 Stata 中计算 Spearman 等级相关