Корреляционное тестирование Спирмена в программировании на R

Опубликовано: 30 Ноября, 2021

Сила связи между двумя переменными известна как тест корреляции. Например, если кто-то интересуется, существует ли связь между весами матери и дочери, для ответа на этот вопрос можно рассчитать коэффициент корреляции. Чтобы узнать больше о корреляции, см. Корреляция.

Методы корреляционного анализа

В основном есть два типа корреляции:

  • Параметрическая корреляция - корреляция Пирсона (r): она измеряет линейную зависимость между двумя переменными (x и y) и известна как тест параметрической корреляции, поскольку зависит от распределения данных.
  • Непараметрическая корреляция - Кендалл (тау) и Спирмен (ро): это коэффициенты корреляции на основе ранга, известные как непараметрическая корреляция.

Формула корреляции Спирмена

Корреляция Спирмена - это непараметрическая корреляция, также известная как коэффициенты корреляции на основе рангов. Формула для расчета корреляции Спирмена выглядит следующим образом:

where,
rs: Spearman Correlation coefficient
di: The difference in the ranks given to the two variables values for each item of the data,
n: Total number of observation

Примечание:

  • r s принимает значение от -1 (отрицательная ассоциация) до 1 (положительная ассоциация).
  • r s = 0 означает, что ассоциации нет.
  • Если ассоциация монотонно возрастает, то r s = 1.
  • Если ассоциация монотонно убывает, то r s = -1.
  • Его можно использовать, когда ассоциация нелинейна.
  • Его можно применять для порядковых переменных.

Реализация в R

В языке R есть два метода расчета коэффициента корреляции. Его можно вычислить с помощью функций cor() или cor.test() Можно отметить, что cor() вычисляет коэффициент корреляции, тогда как cor.test() вычисляет тест для ассоциации или корреляции между парными выборками. Он возвращает как коэффициент корреляции, так и уровень значимости (или p-значение) корреляции.

Syntax:
cor(x, y, method = “spearman”)
cor.test(x, y, method = “spearman”)

Parameters:
x, y: numeric vectors with the same length
method: correlation method

Пример 1:

# Использование метода cor()

# R program to illustrate
# Spearman Correlation Testing
# Using cor()
# Taking two numeric
# Vectors with same length
x = c( 15 , 18 , 21 , 15 , 21 )
y = c( 25 , 25 , 27 , 27 , 27 )
# Calculating
# Correlation coefficient
# Using cor() method
result = cor(x, y, method = "spearman" )
# Print the result
cat( "Spearman correlation coefficient is:" , result)

Выход:

Коэффициент корреляции Спирмена: 0,4564355

# Использование cor.test()

# R program to illustrate
# Spearman Correlation Testing
# Using cor.test()
# Taking two numeric
# Vectors with same length
x = c( 15 , 18 , 21 , 15 , 21 )
y = c( 25 , 25 , 27 , 27 , 27 )
# Calculating
# Correlation coefficient
# Using cor.test() method
result = cor.test(x, y, method = "spearman" )
# Print the result
print (result)

Выход:

Ранговая корреляция Спирмена ро

данные: x и y
S = 10,871, значение p = 0,4397
Альтернативная гипотеза: истинное ро не равно 0
примерные оценки:
      ро 
0,4564355 

В выводе выше:

  • S - значение тестовой статистики (S = 10,871)
  • p-значение - это уровень значимости тестовой статистики (p-значение = 0,4397).
  • Альтернативная гипотеза - это символьная строка, описывающая альтернативную гипотезу (истинное rho не равно 0).
  • выборочные оценки - коэффициент корреляции. Для коэффициента корреляции Спирмана он называется ро (Cor.coeff = 0,4564).

Пример 2:

Данные: загрузите файл CSV здесь.

# R program to illustrate
# Spearman Correlation Testing
# Import data into RStudio
df = read.csv( "Auto.csv" )
# Taking two column
# Vectors with same length
x = df$mpg
y = df$weight
# Calculating
# Correlation coefficient
# Using cor() method
result = cor(x, y, method = "spearman" )
# Print the result
cat( "Spearman correlation coefficient is:" , result)
# Using cor.test() method
res = cor.test(x, y, method = "spearman" )
print (res)

Выход:

Коэффициент корреляции Спирмена: -0,9140708

    Ранговая корреляция Спирмена ро

данные: x и y
S = 8613223, значение p <2,2e-16
Альтернативная гипотеза: истинное ро не равно 0
примерные оценки:
       ро 
-0,9140708