Python で spearman の順位相関を計算する方法
統計学において、相関とは、2 つの変数間の関係の強さと方向を指します。相関係数の値の範囲は -1 から 1 であり、次のように解釈されます。
- -1: 2 つの変数間の完全な負の関係
- 0: 2 つの変数間に関係がない
- 1: 2 つの変数間の完全な正の関係
特別なタイプの相関関係はスピアマンの順位相関と呼ばれ、2 つのランク付けされた変数間の相関を測定するために使用されます。 (たとえば、クラス内での生徒の数学試験の得点の順位と、科学試験の得点の順位との相対的な関係)。
このチュートリアルでは、Python で 2 つの変数間のスピアマン順位相関を計算する方法を説明します。
例: Python での Spearman 順位相関
特定のクラスの 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]})
数学と科学のスコア間のスピアマン ランクの相関関係を計算するには、 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 でスピアマンの順位相関を計算する方法
Excel でスピアマンのランク相関を計算する方法
Stata でスピアマンの順位相関を計算する方法