我有一些有关个人购买的数据。
在此数据中,PANID
是在特定一周内购买产品的人。在我提供的示例中,有6个唯一的PANID
。总共有6个人我正在尝试计算PANID
将第二次回购产品的条件概率。
例如:
PANID
3104497在ITEM
于2010年1月11日购买了WEEK
7028,然后同样的PANID
在{{1}中购买了相同的ITEM
} 2010年1月25日。我正在尝试找出如何找到他们再次购买同一物品的概率(在数据中的任何时候)。
WEEK
数据:
PANID WEEK ITEM
1 3104497 2010-01-11 526
2 3104497 2010-01-11 526
3 3104497 2010-01-11 526
4 3104497 2010-01-11 526
5 3104497 2010-01-11 526
6 3104497 2010-01-11 2890
...
705 3146217 2010-04-05 97
706 3146217 2010-04-05 132
707 3146217 2010-04-05 132
708 3146217 2010-04-05 132
709 3146217 2010-04-05 132
710 3146217 2010-04-05 132
答案 0 :(得分:1)
在最一般的情况下,如果过去在可比较的时间范围内发生了X次,那么您希望在给定的时间范围内发生某事X次。
output <- aggregate(df$PANID, by = list(df$ITEM, df$PANID), length)
colnames(output) <- c('ITEM', 'PANID', 'COUNT')
k <- as.integer(max(df$WEEK) - min(df$WEEK)) / 7 # number of weeks in the data
output$EXPECTATION <- output$COUNT / k
head(output)
#ITEM PANID COUNT EXPECTATION
#1 106 3104497 5 0.4166667
#2 240 3104497 5 0.4166667
#3 526 3104497 5 0.4166667
#4 548 3104497 5 0.4166667
#5 900 3104497 5 0.4166667
#6 1251 3104497 5 0.4166667
也就是说,这是一个非常落后的计算。有了更多数据(例如,具有更长的时间范围和更强的时间分辨率),您就可以研究季节性因素(期望销量逐月保持稳定是很不合理的,对吧)。如果您有描述PANID
和ITEM
的实际功能,则可以研究这些功能与购买数量之间的可能关系。确实,通过这种分析可以使技术变得多么复杂没有限制。