Як обчислити кореляцію в 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *