博客 一文详解数据分析方法--RFM模型

一文详解数据分析方法--RFM模型

   数栈君   发表于 2023-05-30 15:50  358  0
这里的模型是指对于某个实际问题或客观事物、规律进行抽象后的一种形式化表达方式,可以是公式、图表、文字,或者程序等等。



1. RFM 模型的概念


RFM 模型是一个传统的数据分析模型,有三个重要指标:

1)R(Recency):最近一次消费时间间隔,指用户最近一次消费时间距离现在的时间间隔。间隔越小,再次消费的几率越大。即R值越小,用户的活跃度越大,用户的价值就越高;

2)F(Frequency):消费频率,指用户一段时间内消费了多少次。购买频率越高,即F值越大,用户的忠诚度就越大,用户的价值就越高;

3)M(Monetary):消费金额,指用户一段时间内的消费金额。消费金额越高,说明用户对产品的购买力越大。即M值越大,用户的价值就越高。


这三项数据成为了衡量客户价值和客户创利能力的重要工具和手段。

每个指标数据的价值都有高低两种情况,因此,把3个指标的价值组合起来看,会有 2 x 2 x 2 = 8 种组合。

如果把 R、F、M 的价值高低作为坐标轴,可以将用户划分为下图的 8 个类型:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/a3a048649037d1228797f63d4d8e2f0c..jpg

再将上图中的用户分类进行总结,可以得到下图的用户分类规则表。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/bfe67b7d3e3febdc2d8fe2ec90c0fab5..jpg



2. RFM 模型的作用


RFM 模型多用于精细化运营服务。单看 R、F、M 三个指标,其本身已经具备了一定的参考性:

针对消费时间间隔短的客户,他们再次购买的几率较高。可以采取唤醒或者刺激消费,如赠送打折券等。

消费频率高的客户,其忠诚度相对较高,可以规律性地提醒这类客户关于产品的一些优惠信息。

消费金额高的客户,客户价值也越高,可以提供专属该类客户的优惠价格。

对于8类用户分类,还能进一步针对性的使用不同的运营策略,获取并保留关键性用户,针对价值高的客户制定促销策略。



3. RFM 模型的构建流程


下面我们具体看看 RFM 模型是如何根据用户分类规则表将用户分为 8 类。

3.1 计算 R、F、M 的值

得到 R、F、M 这 3 个指标,一般需要的信息有:用户名称/用户 ID、消费记录(如消费时间、消费金额)。

假设现在是 2020 年 12 月 30 日,分析最近 30 天有进行消费的用户。其中:

用户小许最近一次消费间隔为 18 天。在该月总共消费了 2 次,总共消费金额是 2021 元。用户小王最近一次消费间隔为 2 天。在该月总共消费了 5 次,总共消费金额是 10000 元。

我们可以得到两个用户的 R、F、M 值,如下表所示:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/303962ced9846dfd35693b383958a998..jpg


3.2 根据 RFM 的阈值,对用户进行分类

什么叫阈值?阈值,又叫临界值,是指一个效应能够产生的最低值或最高值。

而在案例中,对 RFM 各值的高低值进行标记前,需要我们获得 RFM 各值的阈值。获得阈值,可以对 RFM 各值采取分区域评分,再计算各值平均数的方式,该方式会分为三个步骤:


a)给 R、F、M 各值按价值划分打分区间

注意,我们不是按指标的数值大小打分,而是对指标的价值打分。

如何定义打分的范围,需要结合具体的业务来调整。由于这里是举例子来说明,所以我假设 R、F、M 各值按价值从小到大分为 1~5 分,其打分规则如下表:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/5ca87dba9bae57267bf94bec947b52e8..jpg

根据打分规则表,给两个用户的 RFM 值进行打分。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/ab68beebb19c4dcd27f8b4ea1d746dd3..jpg


b)计算价值的平均值

打完分数后,分别计算 R、F、M 各打分值的平均值,结果如下:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/6edf96eacd69c4cc84dea2cf0986c8ee..jpg


c)用户分类

最后,我们将两个用户的 RFM 值与各值的平均值进行对比。

如果一行里的 R 值打分大于平均值,就标记该行的 R 值打分为“高”,反之标记为“低”。F、M 值亦是同理。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/946a9b4e21887cc207eed69bcc0f2f6b..jpg

再将标记好的 RFM 高低值与用户分类规则表进行对比,可以得出用户属于哪种类别。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/01a74bcdd9796560e26875ed31dcfecc..jpg

以上就是RFM模型将用户进行分类的操作。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/5be01263d014d428d93294a4c1cfe853..jpg


在构建 RFM 模型的过程中,有几个注意点:

1)现实业务,不一定有完整的 RFM 数据,需要通过计算或变换。比如上方的 R 值,我们需要确定一个时间点,并计算该时间点与用户最近一次消费时间才能得到最小时间间隔。

2)划分 RFM 的“高低”值,关键是找到划分的阈值。分析目标的不同,所选择的分析方法也可能不同。

上面的例子中,我们为 RFM 各值进行分区域评分,再计算各评分值的平均值来得到阈值。

而在数据量大的情况下,其实我们也可以通过 R、F、M 各值的原始数据,直接计算平均数中位数的方式来获得阈值,计算起来也相对简单。只是选择计算平均数来获得阈值的方式,它有个缺点就是:容易受到极值的影响,无法根据业务需求人为控制。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/1f9d42a006b78e0713ae0dcfc92a4234..jpg

这样得到的阈值对 RFM 值进行高低档的标记,会给后面分析得到的用户分类带来误差。

为了不受到极值的影响,可以选择计算中位数来获得阈值。但中位数也有一个缺点就是:容易受到数据分布的密集程度所影响,无法对分布密集的数据进行深入分析。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/51b56dcb7027d92ccf4066236e967d8f..jpg


由此得出来的结果,可能也会影响到用户的分类。

如果想根据业务需求和资源进行调整,且不受数据分布密度的影响,可以选择分区域评分,再计算平均值的分析方法;

如果只需要简单计算得到阈值,可以采取平均数或者中位数等方法,具体根据业务需求进行选择。

RFM模型的相关内容就到这里,欢迎关注python小助手,分享更多编程知识!

免责申明:

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群