根据数据帧进行条件/后验概率计算

时间:2018-10-16 18:29:19

标签: r

我有一个数据框,其中包含两列:使用者ID和过程名称。

一个使用者可以有多个过程名称。

我需要了解某人执行了其他过程后再执行特定过程的可能性。

示例

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

因此,假设某人已经完成了工序01,那么他执行工序02的概率为50%。

有人知道一个包裹吗?还是我需要进行一次计数是否为函数?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以选择具有过程1的Consumer_ID个,为它们是否也具有过程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
")