深入解读RFM模型-实战应用干货

article/2025/10/2 15:58:40

 

 

 

 

今天想先谈谈传统企业和电商谈的较多的RFM模型,在众多的客户细分模型中,RFM模型是被广泛提到和使用的。

一、RFM模型概述

RFM模型是网点衡量当前用户价值和客户潜在价值的重要工具和手段。RFM是Rencency(最近一次消费),Frequency(消费频率)、Monetary(消费金额),三个指标首字母组合,如图所示:

RFM模型

R值:最近一次消费(Recency)

消费指的是客户在店铺消费最近一次和上一次的时间间隔,理论上R值越小的客户是价值越高的客户,即对店铺的回购几次最有可能产生回应。目前网购便利,顾客已经有了更多的购买选择和更低的购买成本,去除地域的限制因素,客户非常容易流失,因此CRM操盘手想要提高回购率和留存率,需要时刻警惕R值。

如下图,某零食网店用户最近一次消费R值分布图(时间截至2016年12月31日):

1、客户R值呈规律性的“波浪形”分布,时间越长,波浪越小;

2、最近一年内用户占比50%(真的很巧);

数据分析:这个数据根据向行业内专业人员请教,已经是比较理想了的。说明每引入2个客户,就有一位用户在持续购买。说明店铺复购做的比较好,R值在不断的变为0。

F值:消费频率(Frequency)

消费频率是客户在固定时间内的购买次数(一般是1年)。但是如果实操中实际店铺由于受品类宽度的原因,比如卖3C产品,耐用品等即使是忠实粉丝用户也很难在1年内购买多次。所以,一般店铺在运营RFM模型时,会把F值的时间范围去掉,替换成累计购买次数

如下图,某零食网店用户购买频次图(如1个客户在1天内购买多笔订单,则自动合并为1笔订单):

1、购买1次(新客户)占比为65.5%,产生重复购买(老客户)的占比为34.4%;

2、购买3次及以上(成熟客户)的占比为17%,购买5次及以上(忠实客户)的占比为6%。

数据分析:影响复购的核心因素是商品,因此复购不适合做跨类目比较。比如食品类目和美妆类目:食品是属于“半标品”,产品的标品化程度越高,客户背叛的难度就越小,越难形成忠实用户;但是相对美妆,食品又属于易耗品,消耗周期短,购买频率高,相对容易产生重复购买,因此跨类目复购并不具有可比性。

M值:消费金额(Monetary)

M值是RFM模型中相对于R值和F值最难使用,但最具有价值的指标。大家熟知的“二八定律”(又名“帕雷托法则”)曾作出过这样的解释:公司80%的收入来自于20%的用户。

这个数据我在自己所从事的公司总都得到过验证!可能有些店铺不会那么精确,一般也很会控制在30%客户贡献70%收入,或者40%贡献60%收入。

理论上M值和F值是一样的,都带有时间范围,指的是一段时间(通常是1年)内的消费金额,在工作中我认为对于一般店铺的类目而言,产品的价格带都是比较单一的,比如:同一品牌美妆类,价格浮动范围基本在某个特定消费群的可接受范围内,加上单一品类购买频次不高,所以对于一般店铺而言,M值对客户细分的作用相对较弱。

所以我认为用店铺的累计购买金额和平均客单价替代传统的M值能更好的体现客户消费金额的差异。

教大家一个特别简单的累积金额划分方法:将1/2的客单价作为累积消费金额的分段,比如客单价是300元,则按照150元进行累计消费金额分段,得出十个分段。

现以国内某知名化妆品店铺举例,店铺平均客单为160元,因此以80元作为间隔将累积消费金额分段,从表中可以很明显发现,累计消费160元以下用户占比为65.5%(近2/3),贡献的店铺收入比例只占31.6%(近1/3),具体如下:

二、基于RFM模型的实践应用

作为CRM操盘手,主要有两种方法来分析RFM模型的结果:用基于RFM模型的划分标准来进行客户细分,用基于RFM模型的客户评分来进行客户细分。

1、基于RFM模型进行客户细分

CRM实操时可以选择RFM模型中的1-3个指标进行客户细分,如下表所示。切记细分指标需要在自己可操控的合理范围内,并非越多越好,一旦用户细分群组过多,一来会给自己的营销方案执行带来较大的难度,而来可能会遗漏用户群或者对同个用户造成多次打扰。

最终选择多少个指标有两个参考标准:店铺的客户基数,店铺的商品和客户结构。

店铺的客户基数:在店铺客户一定的情况下选择的维度越多,细分出来每一组的用户越少。对于店铺基数不大(5万以下客户数)的店铺而言,选择1-2个维度进行细分即可。对于客户超过50万的大卖家而言可以选择2-3个指标。

店铺的商品和客户结构:如果在店铺的商品层次比较单一,客单价差异幅度不大的情况下,购买频次(F值)和消费金额(M值)高度相关的情况下,可以只选择比较容易操作的购买频次(F值)代替消费金额(M值)。对于刚刚开店还没形成客户粘性的店铺,则可以放弃购买频次(F值),直接用最后一次消费(R值)或者消费金额(M值)。

通过RFM模型评分后输出目标用户

除了直接用RFM模型对用户进行分组之外,还有一种常见的方法是利用RFM模型的三个属性对客户进行打分,通过打分确定每个用户的质量,最终筛选出自己的目标用户。

RFM模型评分主要有三个部分:

1、确定RFM三个指标的分段和每个分段的分值;

2、计算每个客户RFM三个指标的得分;

3、计算每个客户的总得分,并且根据总得分筛选出优质的客户

比如,实操的过程中一般每个指标分为3-5段,其中R值可以根据开店以来的时间和产品的回购周期来判定,F值根据现有店铺的平均购买频次,M值可参考上文客单价的分段指标。

举个例子:

确认RFM的分段和对应分段的分值之后,就可以按照用户情况对应进行打分。

这个时候可能有人会对此产生质疑,我如何验证这个给予的分值就是合理的呢?确实我也暂时没有办法给予和科学研究的回复,如果需要验证的话,每次对用户数据进行导入之后,需要用算法模型进行回归验证。

但是这样太复杂也太麻烦,如果有朋友感兴趣的话可以进行验证,能够根据不同店铺的情况,对于每个指标的赋值进行一个更加科学合理的定值。

以上仅为个人工作的总结,如有疑问欢迎交流。感谢~


http://chatgpt.dhexx.cn/article/gjrH4FUg.shtml

相关文章

如何进行有效的RFM模型搭建和分析?

“ RFM分析,是用户精细化运营中比较常见的分析方法了。” 今天和大家分享一篇历史文章,内容做了微调。是数据分析中比较常用的一个分析框架:RFM分析。该模型用的很多,说明有模型自身的优势;但同时也存在很多的问题。今…

概念+实战讲解,一文带你了解RFM模型【kaggle项目实战分享】数据分析

大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师。欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我或者我的数据分析专栏,里面有许多优质的文章跟大家分享哦。 (有需…

三线性插值(三维线性插值)

三线性插值(trilinear interpolation)主要是用于在一个3D的立方体中,通过给定顶点的数值然后计算立方体中其他点的数值的线性插值方法。 具体推导过程见参考资料1,这里直接给出最终公式: 其中,坐标(x,y,z…

快速三线性插值

转载自https://lianera.github.io/post/2018/fast-trilinear-interpolation/ 快速三线性插值 最近需要对一个体素进行插值,并且应用到一张大图像上。这个本来用三线性插值很容易就实现了,但是体素的尺寸很小,长宽高大概20x15x10的大小&#x…

线性插值、双线性插值、双三次插值学习笔记-图像处理

缺失值之线性插值 interpolate用法 在series中有两个空值 用图的方式表示出四个点 使用线性插值后的结果如下 使用代码演示 线性插值后的结果 再加入一条数据 结果如下 使用pandas中的DataFrame 运行结果,默认在垂直方向上使用线性插值 设置水平方向上的线性插值 …

插值(Interpolation)

前言 插值计算普遍存在于图像处理中,最近在做畸变优化时,看了一些资料中提到了插值&双线性插值,开始没明白,觉得一定很难,直接跳过,到最终写代码时,又不得不使用.于是就这里对这个功能进行学习,记录,并使用vs2017进行实际验证,验证后发现这个原理其实并不复杂. 插值 插值…

三点线性插值

问题: 在三角形的三个顶点具有3个不同颜色,如何通过插值计算出三角形中每个点的颜色? 应用实例:高洛德着色使用3个顶点的颜色进行线性插值,结果如下图: 解决方案: 显然,无论是线性…

线性插值和双线性插值

最近在学数字图像处理中旋转变换的问题,发现旋转以后图片有一些不连续点,于是试着用双线性插值法进行解决。下面就介绍下插值的原理: 线性插值 如果你只处理分离的数据、想知道分离点之间的某些值,需要用到某种类型的插值。这种情况如图5-17坐标所示。对某些分离的(整数)…

没想到会用到:线性插值(Linear Interpolation)原理及使用

各位博友们大家好,小弟遇到一些问题经常会去看大家的博客,所以也想加入大伙的阵营,每每看到一些好的东西,有些心得体会什么的也想与大伙分享。 1.关于插值 插值,它根据已知的数据序列(也可以理解为坐标中一…

线性插值 多项式插值 样条插值 牛顿插值总结

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步 1.什么是插值 在数值分析中,插值(interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程…

常用线性插值的介绍和应用(双线性插值,三线性插值,平滑曲线插值)

常用线性插值的介绍和应用 线性插值 插值是计算机图形学中非常常用的技术。通常,数据是在常规网格上指定的(值写在2D或3D网格的顶点位置)或在线上(在一维的情况下),但是程序需要在该网格上的随机位置求值。…

线性插值 np.interp()

线性插值是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为零。线性插值相比其他插值方式,如抛物线插值,具有简单、方便的特点。线性插值的几何意义即为概述图中利用过A点和B点的直线来近似表示原函数。 线性插值法是认为现象…

我与插值萍水相逢:线性插值(Linear Interpolation)原理及使用

各位博友们大家好,小弟遇到一些问题经常会去看大家的博客,所以也想加入大伙的阵营,每每看到一些好的东西,有些心得体会什么的也想与大伙分享。 1.关于插值 插值,它根据已知的数据序列(也可以理解为坐标中一…

对线性插值的理解

【插值】 插值是用已知点求未知点的一种方法,而且通常是用两个已知点求一个未知点。(如果是用很多已知点求未知点一般用曲线拟合) 既然是用两个已知点求一个未知点,那么两个已知点之间的距离要尽可能的小,这样求出来…

python判断是否为数字类型_python判断字符串是否为数字

以下实例通过创建自定义函数 is_number() 方法来判断字符串是否为数字:# -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.…

使用正则表达式判断字符串是否为数字类型

java 判断字符串是否是数字 1.用JAVA自带的函数 publicstaticbooleanisNumeric(Stringstr){ for(inti0;i System.out.println(str.charAt(i)); if(!Character.isDigit(str.charAt(i))){ returnfalse; returntrue; 2.用正则表达式 首先要importjava.util.regex.Pattern和java.ut…

java判断字符串是否为数字

一:判断java中的字符串是否为数字,可以通过正则表达式来判断;其判断逻辑如下: 1、根据阿里巴巴代码规范,将Pattern设置为全局常量,通过 -?[0-9](\\\\.[0-9])? 进行匹配是否为数字 private static final P…

二次型化为标准型

将二次型化为标准形有利于我们了解二次型的简单形式、二次型的各种参数如正负惯性指数、得到二次型的规范形、对称矩阵合同的简单形等等。另外,化标准形也是解析几何化简二次曲线和二次曲面的需要。 下面,我们以两道题目为例说明计算二次型的标准形的2种…

二次型的标准型、规范型

若二次型只有平方项,则称二次型为标准型 如果标准型中,系数只有1,-1和0,那么称为二次型的规范型,因为标准型中,1,-1,0的个数是由正负惯性指数决定的,而合同的矩阵正负惯…