Power BI应用:RFM客户价值分类模型
前面几篇文章介绍了如何用PowerBI对客户进行分析,相关的分析维度和方式有很多,实际应用也是千差万别,但谈到客户分析,不得不提及一个经典、通用的分析模型:RFM模型。
RFM模型是衡量客户价值的一个重要的工具和手段,它通过客户的三个行为指标对客户进行分类:
Recency:最近一次消费时间间隔
Frequency:消费频率
Monetary:消费金额
RFM模型的名字也就是这三个指标首字母的组合,一般来说,最近一次消费的间隔越短、消费频率和消费金额越高,客户价值越大。
这三个行为指标可以继续细分,最常用的是二分法,每个指标按照特定的阈值划分为两类,比如按平均值划分,优于指标平均水平的设置为1,否者为0,这样组合成8个客户类别,其特征分别如下:
RFM分析模型的重点就是计算出每个客户的三项指标,然后划分为特定的客户类别,这篇文章就来看看,在PowerBI中如何进行RFM分析。
一、建立模型
模拟数据为一个订单明细表,包含每个客户的下单日期和下单金额等明细数据,以及对应的维度表,数据模型如下图:
然后为了方便分组,建立一个RFM类型表:
二、建立RFM度量值
这是最关键的一步,分别写R、F、M的度量值。
Recency:最近一次消费时间间隔
这里以最新的业务日期为锚点,最新业务日期的度量值为:
业务最新日期 = MAXX( ALL( '订单表' ),'订单表'[订单日期] )
R 最后消费间隔天数 = DATEDIFF( MAX( '订单表'[订单日期] ), [业务最新日期], DAY )
对R指标采用二分法,本案例以常用的平均值为分界点,平均间隔天数的度量值为:
R 平均间隔天数 = AVERAGEX( ALLSELECTED( '客户表' ), [R 最后消费间隔天数] )
R 值= IF( ISBLANK( [R 最后消费间隔天数] ), BLANK(), IF( [R 最后消费间隔天数] <[R 平均间隔天数],1,0) )
这样,R的指标就计算出来了,下面用同样的方式来计算F和M.
Frequency:消费频率
F 消费次数 =
DISTINCTCOUNT( '订单表'[订单号] )
F 平均消费次数= AVERAGEX( ALLSELECTED( '客户表' ), [F 消费次数] )
F 值 = IF( ISBLANK( [F 消费次数] ), BLANK(), IF( [F 消费次数] >[F 平均消费次数],1,0) )
Monetary:消费金额
M 消费金额 = SUM( '订单表'[销售额] )
M 平均消费金额 = AVERAGEX( ALLSELECTED( '客户表' ) , [M 消费金额] )
M 值 =
IF( ISBLANK( [M 消费金额] ), BLANK(), IF( [M 消费金额] >[M 平均消费金额],1,0) )
上面的这些度量值已把R、F、M三个指标计算出来,下面来看看如何展现根据这三个指标来对客户进行分类。
将三个指标组合成一个RFM值:
RFM 值 = [R 值]&[F 值]&[M 值]
计算每个客户所属的RFM类型:
RFM 类型 = VAR RFM_value = [RFM 值] RETURN CALCULATE( VALUES( 'RFM类型表'[类型] ) , 'RFM类型表'[RFM]=RFM_value )
三、建立RFM分类模型
首先,可以从整体上看看这8个分类分别有多少客户,以及占比是多少,用条形图和环形图来展示:
然后可以用表格更明细的显示每个客户的R、F、M值分别是多少,以及所属的RFM类型,
还可以利用散点图来看看每个类别客户的分布情况:
平面二维散点图只能展示两个指标,这里将M、F分别作为X轴和Y轴,而另外一个指标R,作为图例,按不同的颜色来展示。
把这些可视化图表组合到一起,就形成了一个RFM分类模型:
除了上面提到的几个主要图表,这里还加入了RFM三个指标的平均值,以及其他细节的设置,进而构成了一个完整的RFM分析模型。
在这个模型中,可以点击按RFM类别来动态查看具体客户的详情和分布情况,
也可以对特定维度的客户进行分类,比如按城市查看分类情况,
是不是很灵活,它可以根据用户的探索,从多个维度进行RFM分类,并动态快速返回分类结果,这是RFM模型的优势,更是PowerBI的优势。
RFM模型需要写的度量值看起来很多,但其中用到的DAX并不复杂,上手学习一段PowerBI,多练习、先模仿,每个人都可以做出一个这样的模型。