Як обчислити кореляцію в r з відсутніми значеннями
Ви можете використовувати такі методи для обчислення коефіцієнтів кореляції в R, якщо одна або кілька змінних мають відсутні значення:
Спосіб 1: обчисліть коефіцієнт кореляції з відсутніми значеннями
cor(x, y, use=' complete.obs ')
Спосіб 2: обчисліть кореляційну матрицю з відсутніми значеннями
cor(df, use=' pairwise.complete.obs ')
Наступні приклади показують, як використовувати кожен метод на практиці.
Приклад 1: обчисліть коефіцієнт кореляції з відсутніми значеннями
Припустимо, ми намагаємося використовувати функцію cor() для обчислення коефіцієнта кореляції Пірсона між двома змінними, коли відсутні значення:
#create two variables
x <- c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85)
y <- c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75)
#attempt to calculate correlation coefficient between x and y
cor(x, y)
[1] NA
Функція cor() повертає NA , оскільки ми не вказали, як обробляти відсутні значення.
Щоб уникнути цієї проблеми, ми можемо використати аргумент use=’complete.obs’ , щоб R знав, що потрібно використовувати лише попарні спостереження, де присутні обидва значення:
#create two variables
x <- c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85)
y <- c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75)
#calculate correlation coefficient between x and y
cor(x, y, use=' complete.obs ')
[1] -0.4888749
Коефіцієнт кореляції між двома змінними виявляється -0,488749 .
Зверніть увагу, що функція cor() використовувала лише обидві попарні комбінації, де були присутні значення, під час розрахунку коефіцієнта кореляції.
Приклад 2: обчисліть кореляційну матрицю з відсутніми значеннями
Припустимо, ми намагаємося використовувати функцію cor() для створення кореляційної матриці для фрейму даних із трьома змінними, коли відсутні значення:
#create data frame with some missing values
df <- data. frame (x=c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85),
y=c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75),
z=c(57, 57, 58, 59, 60, 78, 81, 83, NA, 90))
#attempt to create correlation matrix for variables in data frame
cor(df)
X Y Z
x 1 NA NA
y NA 1 NA
z NA NA 1
Функція cor() повертає NA в кількох місцях, оскільки ми не вказали, як обробляти відсутні значення.
Щоб уникнути цієї проблеми, ми можемо використати аргумент use=’pairwise.complete.obs’ , щоб R знав, що потрібно використовувати лише попарні спостереження, коли присутні обидва значення:
#create data frame with some missing values
df <- data. frame (x=c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85),
y=c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75),
z=c(57, 57, 58, 59, 60, 78, 81, 83, NA, 90))
#create correlation matrix for variables using only pairwise complete observations
cor(df, use=' pairwise.complete.obs ')
X Y Z
x 1.0000000 -0.4888749 0.1311651
y -0.4888749 1.0000000 -0.1562371
z 0.1311651 -0.1562371 1.0000000
Тепер відображаються коефіцієнти кореляції для кожної попарної комбінації змінних у базі даних.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як знайти P значення коефіцієнта кореляції в R
Як розрахувати кореляцію Спірмена в R
Як розрахувати ковзну кореляцію в R