如何在 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 等级相关

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注