Как использовать cor() для расчета коэффициентов корреляции в r
Вы можете использовать функцию cor() в R для расчета коэффициентов корреляции между переменными.
Вот наиболее распространенные способы использования этой функции:
Метод 1: рассчитать коэффициент корреляции Пирсона между двумя переменными.
cor(df$x, df$y)
Используйте коэффициент корреляции Пирсона при расчете корреляции между двумя непрерывными переменными. (например, рост и вес)
Метод 2. Рассчитайте коэффициент корреляции Пирсона между всеми числовыми переменными в кадре данных.
cor(df)
Этот метод вернет матрицу корреляции , содержащую коэффициент корреляции Пирсона между каждой парной комбинацией числовых переменных в кадре данных.
Способ 3: рассчитать коэффициент корреляции Спирмена между двумя переменными
cor(df$x, df$y, method=' spearman ')
Используйте коэффициент корреляции Спирмена при расчете корреляции между двумя ранжированными переменными. (например, рейтинг учащегося на экзамене по математике по сравнению с рейтингом его балла на экзамене по естественным наукам в классе)
Способ 4: рассчитать коэффициент корреляции Кендалла между двумя переменными
cor(df$x, df$y, method=' kendall ')
Используйте коэффициент корреляции Кендалла, если вы хотите использовать корреляцию Спирмена, но размер выборки невелик и существует много связей.
В следующих примерах показано, как использовать каждый метод на практике со следующим фреймом данных в R, который показывает количество часов, потраченных на обучение, количество сданных практических экзаменов и итоговую оценку за экзамен для восьми разных студентов:
#create data frame
df <- data. frame (hours=c(1, 1, 3, 2, 4, 3, 5, 6),
prac_exams=c(4, 3, 3, 2, 3, 2, 1, 4),
score=c(69, 74, 74, 70, 89, 85, 99, 90))
#view data frame
df
hours prac_exams score
1 1 4 69
2 1 3 74
3 3 3 74
4 2 2 70
5 4 3 89
6 3 2 85
7 5 1 99
8 6 4 90
Пример 1. Вычисление коэффициента корреляции Пирсона между двумя переменными.
Следующий код показывает, как использовать функцию cor() для расчета коэффициента корреляции Пирсона между переменными часов и оценки :
#calculate Pearson correlation coefficient between hours and score
cor(df$hours, df$score)
[1] 0.8600528
Коэффициент корреляции Пирсона между часами и баллами составил 0,86.
Обратите внимание: если в вашем фрейме данных есть значения NA, вы можете использовать аргумент use=’complete.obs’ , чтобы использовать только те строки, в которых нет значений NA:
#calculate Pearson correlation coefficient and ignore any rows with NA cor(df$hours, df$score, use=' complete.obs ')
Пример 2. Вычисление коэффициента корреляции Пирсона между всеми числовыми переменными.
В следующем коде показано, как использовать функцию cor() для создания матрицы корреляции, содержащей коэффициент корреляции Пирсона между всеми числовыми переменными в кадре данных:
#calculate Pearson correlation coefficient between all numeric variables
cor(df)
hours prac_exams score
hours 1.0000000 -0.1336063 0.8600528
prac_exams -0.1336063 1.0000000 -0.3951028
score 0.8600528 -0.3951028 1.0000000
Вот как интерпретировать результат:
- Коэффициент корреляции Пирсона между часами и prac_exams составляет -0,13 .
- Коэффициент корреляции Пирсона между часами и баллами составляет 0,86 .
- Коэффициент корреляции Пирсона между prac_exams и оценкой составляет -0,39 .
Примечание . Коэффициент корреляции Пирсона между каждой отдельной переменной и самой собой всегда равен 1, поэтому каждое значение по диагонали корреляционной матрицы равно 1.
Пример 3. Вычисление коэффициента корреляции Спирмена между двумя переменными.
Следующий код показывает, как использовать функцию cor() для расчета коэффициента корреляции Спирмена между часами и переменными prac_exams :
#calculate Spearman correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' spearman ') [1] -0.1250391
Коэффициент корреляции Спирмена между часами и практическими экзаменами составляет -0,125.
Пример 4. Вычисление коэффициента корреляции Кендалла между двумя переменными.
Следующий код показывает, как использовать функцию cor() для расчета коэффициента корреляции Кендалла между часами и переменными prac_exams :
#calculate Kendall's correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' kendall ') [1] -0.1226791
Коэффициент корреляции Кендалла между часами и практическими экзаменами составляет -0,123.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как рассчитать скользящую корреляцию в R
Как рассчитать автокорреляцию в R
Как рассчитать частичную корреляцию в R