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


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

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

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

Чтобы вычислить ранговую корреляцию Спирмена между двумя переменными в R, мы можем использовать следующий базовый синтаксис:

corr <- cor. test (x, y, method = 'spearman')

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Ранговая корреляция Спирмена между векторами

Следующий код показывает, как вычислить ранговую корреляцию Спирмена между двумя векторами в R:

#define data
x <- c(70, 78, 90, 87, 84, 86, 91, 74, 83, 85)
y <- c(90, 94, 79, 86, 84, 83, 88, 92, 76, 75)

#calculate Spearman rank correlation between x and y
cor. test (x, y, method = 'spearman')

 Spearman's rank correlation rho

data: x and y
S = 234, p-value = 0.2324
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
-0.4181818 

Из вывода мы видим, что ранговая корреляция Спирмена составляет -0,41818 , а соответствующее значение p равно 0,2324 .

Это указывает на то, что существует отрицательная корреляция между двумя векторами.

Однако, поскольку р-значение корреляции не менее 0,05, корреляция не является статистически значимой.

Пример 2. Ранговая корреляция Спирмена между столбцами во фрейме данных

В следующем коде показано, как вычислить ранговую корреляцию Спирмена между двумя столбцами во фрейме данных:

#define data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'),
 points=c(67, 70, 75, 78, 73, 89, 84, 99, 90, 91),
 assists=c(22, 27, 30, 23, 25, 31, 38, 35, 34, 32))

#calculate Spearman rank correlation between x and y
cor. test (df$points, df$assists, method = 'spearman')

 Spearman's rank correlation rho

data: df$points and df$assists
S = 36, p-value = 0.01165
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
0.7818182

Из вывода мы видим, что ранговая корреляция Спирмена составляет 0,7818 , а соответствующее значение p равно 0,01165 .

Это указывает на то, что существует сильная положительная корреляция между двумя векторами.

Поскольку p-значение корреляции меньше 0,05, корреляция является статистически значимой.

Дополнительные ресурсы

Как рассчитать частичную корреляцию в R
Как рассчитать автокорреляцию в R
Как рассчитать скользящую корреляцию в R
Как сообщить о корреляции Спирмена в формате APA