Як обчислити кореляцію рангів спірмена в python
У статистиці кореляція означає силу та напрямок зв’язку між двома змінними. Значення коефіцієнта кореляції може варіюватися від -1 до 1 з такими інтерпретаціями:
- -1: ідеальне негативне співвідношення між двома змінними
- 0: немає зв’язку між двома змінними
- 1: ідеальний позитивний зв’язок між двома змінними
Особливий тип кореляції називається ранговою кореляцією Спірмена , яка використовується для вимірювання кореляції між двома ранжованими змінними. (наприклад, рейтинг іспиту з математики студента відносно рангу його балу з іспиту з природничих наук у класі).
Цей посібник пояснює, як обчислити кореляцію рангу Спірмена між двома змінними в Python
Приклад: кореляція рангів Спірмена в Python
Припустімо, що ми маємо такий фрейм даних pandas, який містить результати іспиту з математики та іспиту з природничих наук 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]})
Щоб обчислити кореляцію рейтингу Спірмена між балами з математики та природничих наук, ми можемо використати функцію spearmanr() у scipy.stats :
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
З результату ми бачимо, що рангова кореляція Спірмена становить -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