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

Опубликовано: 19 Июля, 2021

Корреляция - это статистическая мера, показывающая, насколько сильно связаны две переменные. Он также включает взаимосвязь между несколькими переменными. Например, если кто-то интересуется, существует ли связь между ростом отцов и сыновей, для ответа на этот вопрос можно рассчитать коэффициент корреляции. Обычно он находится в диапазоне от -1 до +1. Это масштабная версия ковариации, обеспечивающая направление и силу отношений. В основном есть два типа корреляции:

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

Формула коэффициента корреляции рангов Пирсона

Ранговая корреляция Пирсона - это параметрическая корреляция. Коэффициент корреляции Пирсона, вероятно, является наиболее широко используемой мерой линейных отношений между двумя нормально распределенными переменными и поэтому часто называется просто «коэффициентом корреляции». Формула для расчета ранговой корреляции Пирсона выглядит следующим образом:

where,
r: pearson correlation coefficient
x and y: two vectors of length n
mx and my: corresponds to the means of x and y, respectively.

Примечание:

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

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

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

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

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

Пример 1:

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




# R program to illustrate
# pearson Correlation Testing
# Using cor()
# Taking two numeric
# Vectors with same length
x = c( 1 , 2 , 3 , 4 , 5 , 6 , 7 )
y = c( 1 , 3 , 6 , 2 , 7 , 4 , 5 )
# Calculating
# Correlation coefficient
# Using cor() method
result = cor(x, y, method = "pearson" )
# Print the result
cat( "Pearson correlation coefficient is:" , result)

Выход:

Коэффициент корреляции Пирсона: 0,5357143

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




# R program to illustrate
# pearson Correlation Testing
# Using cor.test()
# Taking two numeric
# Vectors with same length
x = c( 1 , 2 , 3 , 4 , 5 , 6 , 7 )
y = c( 1 , 3 , 6 , 2 , 7 , 4 , 5 )
# Calculating
# Correlation coefficient
# Using cor.test() method
result = cor.test(x, y, method = "pearson" )
# Print the result
print (result)

Выход:

Корреляция продукта и момента Пирсона

данные: x и y
t = 1,4186, df = 5, значение p = 0,2152
альтернативная гипотеза: истинная корреляция не равна 0
95-процентный доверительный интервал:
 -0,3643187 0,9183058
примерные оценки:
      кор 
0,5357143 

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

  • T - значение тестовой статистики (T = 1,4186)
  • p-значение - это уровень значимости тестовой статистики (p-значение = 0,2152).
  • Альтернативная гипотеза - это строка символов, описывающая альтернативную гипотезу (истинная корреляция не равна 0).
  • выборочные оценки - коэффициент корреляции. Для коэффициента корреляции Пирсона он называется cor (Cor.coeff = 0,5357).

Пример 2:

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




# R program to illustrate
# Pearson 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 = "pearson" )
# Print the result
cat( "Person correlation coefficient is:" , result)
# Using cor.test() method
res = cor.test(x, y, method = "pearson" )
print (res)

Выход:

Коэффициент корреляции личности: -0,8782815
    Корреляция продукта и момента Пирсона

данные: x и y
t = -31,709, df = 298, значение p <2,2e-16
альтернативная гипотеза: истинная корреляция не равна 0
95-процентный доверительный интервал:
 -0,9018288 -0,8495329
примерные оценки:
       кор 
-0,8782815