利用 Power BI 实现 RFM 分析
本节给大家介绍的是RFM模型,RFM模型是衡量客户价值和客户创利能力的重要工具和手段,通过一个客户的近期购买行为、购买的总体频率以及消费额度三个指标来描述该客户的价值状况。其中,用R(Recency)表示交易间隔、F(Frequency)表示交易频度、M(Monetary)表示交易金额组成,具体的含义如下表格所示:
数据获取
本节所使用的数据集
链接:https://pan.baidu.com/s/1EJdJ6wBzXWXD5kASEJHnPA
提取码:xo6x
下面一起来学习
数据预处理
本节所使用到的数据是.CSV数据,打开Power BI软件,点击获取数据,从文本中获取本节所使用的数据。
右键订单日期列,在数据类型中更改数据类型为日期。
数据清洗后,在主页里点击关闭并应用。
计算R、F、M值
右键选择新建列,写入DAX函数,计算最后一个交易日期。
最后一个交易日期=MAXX(FILTER('Orders',EARLIER('Orders'[Uid])='Orders'[Uid]),'Orders'[Order_Date])
将最后一个交易日期的日期格式自定义为(yyyy/mm/dd)的格式。
R = DATE(2018,11,11)-'Orders'[最后一个交易日期].[Date]
点击报表,选择新建度量值,计算每一单的交易频次。
F = DISTINCTCOUNT('Orders'[Order_Id])
同理计算每一单的交易金额。
M = SUM('Orders'[Pay_Amt])
计算R、F、M综合分值
计算完R、F、M的值后,需要将他们各自按照平均值划分为高、低两类,高于平均值的赋值为2,低于平均值的赋值为1,在建模中选择新建表,用函数将用户ID、R、F、M的值组成一张新表。
RFM = SUMMARIZE('Orders','Orders'[Uid],'Orders'[R],"F",[F],"M",[M])
新建列,使用AVERAGE函数,分别计算R、F、M的平均值。
AVG_R = AVERAGE(RFM[R])
AVG_F = AVERAGE(RFM[F])
AVG_M = AVERAGE(RFM[M])
算出R、F、M的得分,其中当R值小于平均值时,赋值为2,大于平均值时,赋值为1;F值大于平均值时,赋值为2,小于平均值时,赋值为1;M值大于平均值时,赋值为2,小于平均值时,赋值为1;
R得分 = IF('RFM'[R]<=RFM[AVG_R],2,1)
F得分 = IF('RFM'[F]>=RFM[AVG_F],2,1)
M得分 = IF('RFM'[M]>=RFM[AVG_M],2,1)
合并RFM值,使用连接符连接起来。
RFM = 'RFM'[R得分]&'RFM'[F得分]&'RFM'[M得分]
RFM会员分组
依据前文提到的分组依据,这里按照RFM的综合分值进行分组,使用SWITCH函数将其分为8类。
会员分组 = SWITCH( 'RFM'[RFM],
"111","流失会员",
"112","重要挽留会员",
"121","一般保持会员",
"122","重要唤回会员",
"211","新会员",
"212","重要深耕会员",
"221","潜力会员",
"222","重要价值会员")
数据可视化
数据建模后,点击模型,将Orders表和RFM表连接起来。
研究不同会员的分布情况,点击簇状条形图,将会员分组拖入到轴,同时拖入到值,设置为计数,可以在格式里面设置标题、数据标签、数据颜色等。
研究不同会员的占比情况,选择圆环图,将会员分组拖入到图例,同时拖入到值,设置为计数,可以在格式里面设置标题、数据标签、数据颜色等。
研究不同会员业绩的贡献度,选择瀑布图,将会员分组拖入到类别,将M值拖入到值,并设置值为占总和的百分比。
要查看具体的分组明细,可以将对应的字段拖入到值,如果要修改某个字段的名称,双击字段值可以对其进行列名的自定义修改。
突出数据标记,可以选择卡片图,拖入对应的字段儿,这里将字段设置为平均值。
除此之外,还可以给这个Dashboard加一个筛选器,并添加标题,图表对齐,设置合适的大小,数据可视化的结果如下所示。
结论建议
通过RFM模型分类后发现,重要价值会员数最多,这部分会员最近一次交易时间近、交易频次高、交易金额大,是优质会员,针对这部分会员,可以加大一些优惠力度,倾斜更多的资源,比如VIP服务、个性化服务、附加销售、享受高折扣优惠服务等。
而流失会员数也较多,这部分会员最近一次交易时间长、交易频次低、交易金额小,有流失风险,鉴于这部分客户数占比较多,优先考虑挽回,可主动增加造访机会,推荐价值更高的产品,或一些优惠措施来挽回客户。