RFM模型:如何量化你的用户价值?

31 评论 103787 浏览 440 收藏 15 分钟

上篇文章介绍了用户体系搭建的思路,这里单独开篇给大家介绍如何量化用户价值。

在拓展市场初期没有思路的时候,市场和运营同事绞尽脑汁做活动、上新品、蹭热点、做营销,不断的拓展客户、做回访维系客户感情,除了少数运气好的之外,大部分效果寥寥。真正的用户没有几个,到最后都便宜了羊毛党。不同阶段、不同类型的用户需求点不同,有的客户图便宜,有的客户看新品,有的客户重服务,大包大揽的营销运营,最后的结果就是凉凉。

解决得分方法也很简单,就是用户精细化运营,通过各类运营手段提高不同类型的用户在产品中的活跃度、留存率和付费率。而如何将用户从一个整体拆分成特征明显的群体决定了运营的成败。这里介绍一个最经典的用户分群工具就是RFM模型。RFM模型是衡量用户价值和用户创利能力的经典工具,依托于用户最近一次购买时间、消费频次以及消费金额。

在应用RFM模型时,要有用户最基础的交易数据,至少包含用户ID,交易金额,交易时间三个字段。

RFM的含义:

  • R(Recency)最近一次消费时间:表示用户最近一次消费距离现在的时间。消费时间越近的客户价值越大。1年前消费过的用户肯定没有1周前消费过的用户价值大。
  • F(Frequency)消费频率:消费频率是指用户在统计周期内购买商品的次数,经常购买的用户也就是熟客,价值肯定比偶尔来一次的客户价值大。
  • M(Monetary)消费金额:消费金额是指用户在统计周期内消费的总金额,体现了消费者为企业创利的多少,自然是消费越多的用户价值越大。

基于这三个维度,将每个维度分为高低两种情况,我们构建出了一个三维的坐标系。

(来源自网络)

通过图表很直观的发现,我们把客户分为了2的三次方也就是8个群体。

如果某个用户最近一次消费时间距今比较久远,没有再消费了,但是累计消费金额和消费频次都很高,说明这个用户曾经很有价值也就是RFM模型中的重要保持客户,我们不希望他流失,所以运营人员就会专门针对这类型用户设计召回策略,这也就是RFM模型的核心价值。

当然这里有个默认前提:

  • 最近有过交易行为的客户,二次发生交易的可能性要高于最近没有交易行为的客户;
  • 交易频率较高的客户比交易频率较低的客户,更有可能发生二次交易;
  • 过去所有交易总金额较多的客户,比交易总金额较少的客户,更有可能发生二次交易。

举例来说明:

以下是模拟我近一年的消费行为(脑海中蹦出了一年逛两次海澜之家…):

假设当前统计时间为2019年12月31日,经过简单的统计计算可得:

  • R值 = 12月31日 – 11月11日 = 50;
  • F值 = 计数消费次数 = 4;
  • M值 = 1200+300+900+2000 = 4400;

这里会遇到第一个问题:

R值最近一次消费时间表示用户最近一次消费距离现在的时间,消费时间越近的客户价值越大。以上方式计算出的R值越大说明当前用户最近一次消费时间越远用户价值越小,而F值还有M值越大代表用户价值越大,三组数据不在同一个描述维度,而且R值、F值、M值存在量级之间的差距,无法直观的通过加减来衡量用户价值。

这里有两种处理办法分别是评分方式和算法。

评分方式

评分方式是根据三组数据各个值的特性,采用5分制为各个数据赋予一个评分值,R值的评分机制是R值越大,评分越小。具体评分的规则可以根据经验设定分值的给予区间,或者将数据平均分配成为5组,对应5个分值。

在基于三组数据对应的评分值来计算评分值的平均数,大于等于平均数的数据划到高的维度,低于平均数的数据划到低的维度,自然将三组数据每组分别划分为高低两组,交叉组合后就是我们上面说过的8种情况。然后在将三组数据对应的评分值做累加就是RFM总值了。

评分机制的优势

计算RFM总值时解决了不同量级数据相加时影响权重不均衡的问题。由于用户的交易行为中R值和F值相对较小,如果三个值不处理就累加,M值直接决定了总值的量级,R值、F值对总值的影响很小,无法体现出用户的真实价值。

同样以刚刚的数据为例:RFM总值 = 50+4+4400= 4454

可见M值4400直接决定了最后计算结果的量级,前面R值、F值对结果的影响基本忽略不计。采用评分制的方法后,将R、F、M值都映射到了1至5的区间之内,保证了各数据之间的可比性。

评分制的劣势

赋值指标的设定需要资深的业务经验,什么样的算高频,什么样的算高额都是经验,并且用户的消费数据是不断膨胀的,根据手动设定的划分区间无法随着数据的不断膨胀而自动适配,所以需要根据经验和数据反馈不断修正。

算法方式

算法方式是根据数据特性将数据基于模型处理后量化用户价值,分划分高低维度、量化用户价值两步。

第一步:划分高低维度

根据数据分布情况将数据分为高低两组,这里区分的方式一般采用四分位数(将一组数据由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。处于正中位置的数字就叫做中位数,如果数组个数为奇数个,则中位数为排序后中间的一个数,如果数组个数为偶数个,则中位数为排序后中间两个数的平均数。),而不是评分制的平均数。

分位数相对于平均数应用场景更广,由于大部分数据都呈现长尾分布,80%甚至90%以上都集中在低频低额区间,少数的用户提供了大部分销售,采用平均数无法很好的体现数组的特性,长尾用户很容易被平均,

下面举个例子:土豪身价2个亿,屌丝产品经理身价20万,两人平均后,平均身价1个亿……

例子并不恰当,但是能看出在数据呈现长尾分布的场景中,平均数在很多场景并不合适,而采用四分位数时,可以根据数据分布情况,选择中位数、四分之一位数或者四分之三位数,然后高于则划分为高纬度,低于则划分为低纬度。

这里有一点需要注意!

由于R值的大小和用户价值呈现反比,所以高于分位数的时候算低纬度,低于分位数时算高纬度。

第二步:量化用户价值

首先解决R、F、M三值量级不均衡的问题,然后计算RFM总值量化用户价值。可将三组数据分别无量纲化处理映射至0到1的区间在合理放大然后相加。很多同学一听到算法就晕了,我挑选了这个方法中最简单的一种,只用到了我们初中所学的数学,逻辑非常简单,下面我为大家介绍min-max归一化。

min-max归一化

先贴公式:

上式中,min是数组中的最小值,max是数组中的最大值。只要将数组中的数据依次经过上述公式处理,最后发现原数组收敛到了0至1的区间之内,是不是很简单。

下面是我随机生成的一组数据为大家示例:

第一组源数据经过无量纲化处理后收敛至了0到1区间之内,可将不同量级的数据归一化至同一量级,归一化后的数据是一个位数极多的小数,而一般用户对于极小数和极大数没有直观的感受。

所以这里我把所有的数据同比放大了100倍,将源数据扩大到了0至100的区间,同时做了四舍五入,让数据可读性更强。经过这样的处理就将数据从原来不同量级无法直观对比,归一化到了0至100的区间,方便大家直观计算RFM总值。

最后计算RFM总值的公式如下:RFM总值 = R值*(-1)+F值+M值+100;

公式中同样为了解决R值同F、M值统计维度不一样的问题,这里给R值乘以了负1,同时为了保证数据结果不会出现负数,又在最后加了100。这样处理之后保证最后的RFM总值落在了0至400的区间之内,让大家可以通过分值很直观的量化用户价值。

总之,RFM最终的目的就是帮助业务提高运营效率和产出价值,上述介绍了两种方法,一种通过经验人工划分出用户群体,一种通过数据挖掘,给与业务运营建议。

具体的业务应用场景还是以淘气值为例(均为个人猜想,如果哪里说得不对,还请留言告知,谢谢)。

  • 购物分:是近12个月购买金额的综合分值。每一笔订单、每日、每月、每一类商品、每一个店铺,可获得的最高可得分都不同,另外,购买更多种类的、高信誉商家的商品可以得到更多分;
  • 奖励分:奖励分是近12个月内购买的商品类目数,反映真实消费体验的文字评价、带图评价、追评、分享被点击数、问大家参与次数、购买成交天数、连续购买月数的综合分值。奖励分受购物分正向影响,购物分越高,奖励分越高;
  • 基础分:基础分由当前信誉等级决定。信誉等级越高,基础分越高,并且可得购物分和奖励分的分数越高。

购物分围绕着用户的近12个月消费记录,奖励分则是围绕着用户的实际互动行为,包括评价、分享、参与次数等。这里特别强调一点RFM模型不仅仅针对消费数据,可以试试其他新的花样,比如:

  • 互动行为:最近一次互动时间、互动频次、用户的互动次数;
  • 直播行为:最近一次观看直播时间、直播观看频次、观看直播累计时长;
  • 内容行为:最近一次观看内容时间、观看内容频次、观看内容字数;
  • 评论行为:最近一次评论时间、评论频次、累计评论次数等等等等。

以上这些只是我的简单思考,希望可以给大家更多的启发。

淘宝根据用户的淘气值将用户分成了三种类型:

  • 普通会员:0 ≤ 淘气值 < 1000;
  • 超级会员:1000 ≤ 淘气值 < 2500;
  • APASS会员:2500  ≤ 淘气值。

分别设定了不同的权益针对性运营,在推出88会员的时候淘气值高于1000分的用户可以以88元直接购买会员。同时在淘气值页面看到了88会员中心【敬请期待】的页面,在结合88会员入口处【花小积分 兑大权益】的文案,相信未来淘宝会在88会员上有新的运营动作。

最后关于无量纲化处理的方法还有很多,我这里介绍了最简单的一种,喜欢研究的同学可以自行百度。

会员系列的第二篇,终于在纠结了两周反复难产的过程中完成了。

相关阅读

搭建会员体系时必须要思考的三个问题!

 

本文由 @萌面赵先生 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自 Unsplash,基于 CC0 协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 你咋这么牛?

    来自广东 回复
  2. 膜拜

    来自广东 回复
  3. 你用评分法的时候,提到了用5分制来打分。有讲到了单组数列根据四分法来讲数组分成4段,请问4段区间,怎么用5分制来打分?那岂不是有一个数字用不到吗?

    来自上海 回复
  4. 谢谢分享,很有帮助!
    还想问个问题,如何确定合适的统计周期呢?比如我选取1个月的数据,那么近一个月未消费的用户是不是R为30、F和M都是0?但是他可能1个月之前消费了,这里我还不太清楚是不是理解错了,还是说任何时候都跑全量数据?能否指导一下。

    来自浙江 回复
    1. 我也有同样的问题:
      1. 数据集的时间范围,是不是任何时候都是全量数据;
      2. F与M的统计周期是否一致,这个统计周期是不是就是数据集的时间范围;
      3. 不同时间的RFM对比有无意义;

      来自江苏 回复
  5. 第二种方式说的还是不够清楚,看完还是不懂怎么计算

    来自广东 回复
  6. 这个录音是ai吗

    回复
  7. 作者你好,请问下,在衡量M的平均值的时候是中位数还是四分位数?有没有针对不同的数据分布,用不同的数值来衡量的情况?

    来自四川 回复
  8. 您好,请问下,量化数据的时候,max和min分别取的是个人消费中金额的最大最小值还是所有用户消费中的最大最小值呢?

    来自广东 回复
    1. 所有用户的最大值和最小值

      来自广东 回复
  9. 你好,RFM模型的比例应该怎么算呢

    来自北京 回复
  10. 谢谢,收获很大。
    有几个个拙见
    1)建议RFM值都添加上权重
    2)归一化的过程中建议添加专家接入的接口
    3)增加数据验证和调试的手段

    来自山东 回复
    1. 说的很棒!
      权重根据业务大家可以自行调整,是个不断摸索的过程,初期不建议大家上来就直接上权重,不同的权重能直接导致用户分群质量的不同,错误的业务理解有可能带来灾难性的后果
      归一化的过程看公司的技术实力。。。之前业务部门研发实力有限,所以采用了这种实现简单,但是效率不足的方案。此时有专家介入给出专业方案自然更好

      来自广东 回复
  11. 没看明白计算RFM总值的意义是啥?是为了分组后同组内价值评估吗?

    来自江苏 回复
  12. 你好 ,请问R值为什么要乘以负1呢

    来自浙江 回复
    1. 你好,因为R值表示的是用户距离最近一次消费的时间,距离当前越远值越大。但是真实的用户行为是活跃的用户更容易发生交易,而活跃就意味着距离当前时间越短越好,所以整体将R值乘以-1,将数值的大小转置,从而体现真实的用户行为

      来自山西 回复
    2. 核心理解是时间距离越短越好,所以
      1、如果R的时间距离越远,赋值越大,则需要乘以-1
      2、如果R的时间距离越近,赋值越大,则不需要乘以-1

      来自浙江 回复
  13. 算法方式中,通过四分位点已经可以把用户划分成不同的种类,那后面把它们去量纲化后,计算它们的评分的作用是什么呢?

    来自广东 回复
    1. 同问?

      来自浙江 回复
  14. 有rfm分箱模型分析的介绍吗

    回复
  15. 这个用excel能处理么

    回复
    1. 可以的,文中示例就是用Excel处理的 ,具体还是要看数据量

      来自广东 回复
  16. 处理之后保证最后的RFM总值是不是落在了0至300的区间之内

    回复
    1. 是的,笔误 🙂 处理之后的总值是在0至300之内 ~

      来自广东 回复
  17. 比其他讲rfm的文章更深入… 不错

    回复
    1. 还有,可否细致讲讲建立rfm分层时候的注意点呢

      回复
    2. 在利用中位数区分单个维度的高低时,要根据实际情况以及数据质量决定是否去除异常值。
      例:
      大部分数据是呈现长尾形态的,很多体验型客户可能互动时间在好几年以上,成交金额只有几分,或者累计只成交过一次,如果把这类型数据也考虑进来的话会导致高纬度区间直接包含了所有的活跃用户,导致分群用户特征不明显,所以在处理时,建议根据业务特性,将异常值或者长尾值先处理掉在进行分群。

      来自广东 回复
    3. 直接说是进行数据预处理就好了,讲高低维度什么的,然后也没发现这个高低维度和下文啥关系,看了你评论才知道,原来这个高低维度是用来进行数据预处理的……

      来自重庆 回复
  18. 文章棒棒的,清晰明了,但里面有个逻辑想问下。
    为何要对RFM总值进行量化,而不是根据单独的R,F,M三个值在中位数的高低组合来进行分类。

    来自广东 回复
    1. 何为量化?因为要明确,清楚,具体,而根据单独的R,F,M三个值在中位数的高低组合来进行分类不够具象。

      来自北京 回复
    2. 1.R、F、M三个值的高低组合反馈的是用户的特征,然后针对特征制定运营策略;
      2.如果用户量进一步扩大,而运营资源又有限的情况下,就需要对单一群体内的用户价值在量化,这时就需要用户总值了;
      3.某些场景下可能需要针对总体用户池的用户做价值量化,单纯的高低维分组无法满足,所以同样需要RFM总值。

      来自广东 回复