Расчет условной / апостериорной вероятности по фрейму данных - PullRequest
0 голосов
/ 16 октября 2018

У меня есть фрейм данных, который содержит два столбца: идентификатор потребителя и имя процедуры.

У потребителя может быть несколько имен процедур.

Мне нужно понять вероятность кого-либовыполнить определенную процедуру, если он выполнял другую процедуру.

Пример,

Consumer ID, Procedure Name
01, Procedure 01
01, Procedure 02
02, Procedure 01

Таким образом, вероятность того, что кто-то выполнит процедуру 02, учитывая, что он выполнил процедуру 01, составляет 50%.

Кто-нибудь знает пакет, чтобы сделать это?Или мне нужно будет запустить функцию Count If?

Спасибо!

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете выбрать те Consumer_ID s, которые имели процедуру 1, создать переменную индикатора для того, была ли у них также процедура 2, и ваша вероятность - среднее значение этого нового индикатора.

library(dplyr)

df %>% 
  group_by(Consumer_ID) %>% 
  filter('Procedure 01' %in% Procedure_Name) %>% 
  summarise(had_p2 = 'Procedure 02' %in% Procedure_Name) %>% 
  summarise(p_2_given_1 = mean(had_p2))

# # A tibble: 1 x 1
#   p_2_given_1
#         <dbl>
# 1       0.500

Используемые данные:

df <- data.table::fread("
Consumer_ID, Procedure_Name
01, Procedure 01
01, Procedure 02
02, Procedure 01
")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...