В статистике корреляция относится к силе и направлению связи между двумя переменными. Значение коэффициента корреляции может варьироваться от -1 до 1 со следующими интерпретациями:
- -1 : идеальная отрицательная связь между двумя переменными
- 0: нет связи между двумя переменными
- 1: идеальная положительная связь между двумя переменными
Один особый тип корреляции называется ранговая корреляция Спирмена, которая используется для измерения корреляции между двумя ранжированными переменными. (например. оценка учащегося на экзамене по математике и оценка его оценки на экзамене по естественным наукам в классе).
Это учебник объясняет, как вычислить ранговую корреляцию Спирмена между двумя переменными в Python
Пример: ранговая корреляция Спирмена в Python
Предположим, у нас есть следующий кадр данных pandas, который содержит стиль оценка экзамена по математике и экзамена по естественным наукам 10 учащихся в определенном классе:
import pandas as pd
#create DataFrame
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'])
#напечатать ранговая корреляция Спирмена и p-значение
print(rho)
# -0.41818181818181815
print(p)
# 0.22911284098281892
Из вывода видно, что ранговая корреляция Спирмена составляет -0,41818, а соответствующее значение p равно 0,22911.
Это указывает на наличие отрицательной корреляции между результатами экзаменов по естественным наукам и математике.
Однако, поскольку p-значение корреляции не меньше 0,05, корреляция не является статистически значимой.
Обратите внимание, что мы также можем использовать следующий синтаксис, чтобы просто извлечь коэффициент корреляции или значение p:
#Коэффициент ранговой корреляции Спирмена
spearmanr(df['math'], df['science'])[0]
# -0.41818181818181815
#извлечь p-значение ранговой корреляции Спирмена
spearmanr(df['math'], df['science'])[1]
# 0.22911284098281892
Дополнительные ресурсы
Как рассчитать ранговую корреляцию Спирмена в R
Как рассчитать ранговую корреляцию Спирмена в Excel
Как рассчитать ранговую корреляцию Спирмена в статистике