Як використовувати 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() для обчислення коефіцієнта кореляції Спірмена між змінними hours і prac_exams :
#calculate Spearman correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' spearman ') [1] -0.1250391
Коефіцієнт кореляції Спірмена між годинами та prac_exams виявляється -0,125.
Приклад 4: Обчисліть коефіцієнт кореляції Кендалла між двома змінними
У наступному коді показано, як використовувати функцію cor() для обчислення коефіцієнта кореляції Кендалла між змінними hours і prac_exams :
#calculate Kendall's correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' kendall ') [1] -0.1226791
Коефіцієнт кореляції Kendall між годинами та prac_exams виявляється -0,123.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як розрахувати ковзну кореляцію в R
Як розрахувати автокореляцію в R
Як обчислити часткову кореляцію в R