Як обчислити кореляцію рангів спірмена в 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *