power-bi 构建RFM模型

419 阅读3分钟

R:最近消费时间间隔(Recency) F:消费频率(Frequency) M:消费金额(Monetary)

思路同上篇python构建RFM模型,这里是在熟悉power-bi的过程中用同样的数据进行练习!

数据清洗

付款时间空的与买家实际支付金额为0的都需要删除,

项目开始

1. 首先是需要依旧最近消费日期、消费次数、消费金额分别计算R、F、M值:

R值: 使用最大日期减去当前日期,再将其转化为整数;

R2 = MAX('Sheet1'[订单付款时间])-'Sheet1'[订单付款时间]

sheet1是我的数据表。表中内容如图:

image.png

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","重要价值会员")

image.png

正常情况下,RFM值应该有8种类型,具体分组还根据实际需要分几类,分类依据来;

image.png

image.png

4. 最后根据需求使用合适低图标建立报告

image.png

  • 这里可以看到流失会员占比还是挺大的,而且其给我们带来的消费金额也是占比不错的,我们需要思考一下,如何挽留这一部分用户;
  • 同时新会员占比也是非常大,我们能不能利用新会员进行一些促进带新的活动!
  • 还有重要挽留会员,其带给我们的价值是最大的,我们需要更加关注!以保证这部分会员不会流失!这应该是我们的当务之急!