Как рассчитать корреляцию по группе в R


Вы можете использовать следующий базовый синтаксис для вычисления корреляции между двумя переменными по группам в R:

library(dplyr)

df %>%
 group_by(group_var) %>%
 summarize(cor=cor(var1, var2))

Этот конкретный синтаксис вычисляеткорреляцию между var1 и var2 , сгруппированными по group_var .

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: вычислить корреляцию по группе в R

Предположим, у нас есть следующий фрейм данных, который содержит информацию о баскетболистах в разных командах:

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
 points=c(18, 22, 19, 14, 14, 11, 20, 28),
 assists=c(2, 7, 9, 3, 12, 10, 14, 21))

#view data frame
df

 team points assists
1 A 18 2
2 A 22 7
3 A 19 9
4 A 14 3
5 B 14 12
6 B 11 10
7 B 20 14
8 B 28 21

Мы можем использовать следующий синтаксис из пакета dplyr для расчета корреляции между очками и передачами , сгруппированными по командам :

library(dplyr)

df %>%
 group_by(team) %>%
 summarize(cor=cor(points, assists))

# A tibble: 2 x 2
 team cor

1 A 0.603
2 B 0.982

Из вывода мы видим:

  • Коэффициент корреляции между очками и передачами для команды А равен 0,603 .
  • Коэффициент корреляции между очками и передачами для команды Б равен 0,982 .

Поскольку оба коэффициента корреляции положительны, это говорит нам о том, что связь между очками и передачами для обеих команд положительна.

По теме: Что считается «сильной» корреляцией?

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

Как подсчитать уникальные значения по группе в R
Как рассчитать сумму по группе в R
Как рассчитать среднее значение по группе в R
Как рассчитать сводную статистику по группам в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.