Как рассчитать корреляцию рангов спирмена в python


В статистике корреляция означает силу и направление связи между двумя переменными. Значение коэффициента корреляции может находиться в диапазоне от -1 до 1 со следующими интерпретациями:

  • -1: идеальная отрицательная связь между двумя переменными.
  • 0: нет связи между двумя переменными
  • 1: идеальная положительная связь между двумя переменными.

Особый тип корреляции называется ранговой корреляцией Спирмена и используется для измерения корреляции между двумя ранжированными переменными. (например, рейтинг, полученный учащимся на экзамене по математике, относительно рейтинга, полученного им на экзамене по естественным наукам в классе).

В этом руководстве объясняется, как рассчитать ранговую корреляцию Спирмена между двумя переменными в Python.

Пример: ранговая корреляция Спирмена в Python

Предположим, у нас есть следующий DataFrame 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *