R:最近消费时间间隔(Recency) F:消费频率(Frequency) M:消费金额(Monetary)
思路同上篇python构建RFM模型,这里是在熟悉power-bi的过程中用同样的数据进行练习!
数据清洗
付款时间空的与买家实际支付金额为0的都需要删除,
项目开始
1. 首先是需要依旧最近消费日期、消费次数、消费金额分别计算R、F、M值:
R值: 使用最大日期减去当前日期,再将其转化为整数;
R2 = MAX('Sheet1'[订单付款时间])-'Sheet1'[订单付款时间]
sheet1是我的数据表。表中内容如图:
F值: 这里我们需要统计购买次数,因为会员名是唯一的,我们只需要对会员名进行计数就好,所以这里直接使用度量值;
F = COUNT(Sheet1[买家会员名] )
M值: 消费金额这里我采用的是总消费金额,方便我后面统计各会员类型的消费金额,也可以用平均值计算平均消费水平,建议根据实际需求来!(这里依旧用的度量值)
M = SUM(Sheet1[买家实际支付金额])
2. 其次是使用SUMMARIZECOLUMNS新建表,以买家会员编号为基础对数据进行汇总
RFM表 = SUMMARIZECOLUMNS('Sheet1'[买家会员名],"R",MIN('Sheet1'[R]),"F",[F],"M",[M])
这里注意,执行这部操作后,会员名这一列不应该再有重复值!(R取最小值,因为前面计算R值的时候,有部分重复值,R值计算的是间隔时间,故取最小)
3. 再次,将R、F、M值分别与平均值做对比,根据对比的结果进行分组,分组可以IF或者SWITCH,分组较多的时候推荐使用SWITCH
- 对比:
`R得分 = IF('RFM表'[R]<=AVERAGE('RFM表'[R]),1,0)`
`F得分 = IF('RFM表'[F]>=AVERAGE('RFM表'[F]),1,0)`
`M得分 = IF('RFM表'[M]>=AVERAGE('RFM表'[M]),1,0)`
注意R值时间间隔越小,得分越高
- 合并:
RFM = 'RFM表'[R得分]&'RFM表'[F得分]&'RFM表'[M得分]
- 进行分组:
会员分组 = SWITCH('RFM表'[RFM],"000","流失会员","001","重要挽留会员","010","一般保持会员","011","重要保持会员","100","新会员","101","重要发展会员","110","一般价值会员","111","重要价值会员")
正常情况下,RFM值应该有8种类型,具体分组还根据实际需要分几类,分类依据来;
4. 最后根据需求使用合适低图标建立报告
- 这里可以看到流失会员占比还是挺大的,而且其给我们带来的消费金额也是占比不错的,我们需要思考一下,如何挽留这一部分用户;
- 同时新会员占比也是非常大,我们能不能利用新会员进行一些促进带新的活动!
- 还有重要挽留会员,其带给我们的价值是最大的,我们需要更加关注!以保证这部分会员不会流失!这应该是我们的当务之急!