RFM分析(Recency,Frequency,Monetary)

article/2025/10/2 15:51:48

通过RFM方法,我们根据用户的属性数据分析,对用户进行了归类。在推送、转化等很多过程中,可以更加精准化,不至于出现用户反感的情景,更重要的是,对产品转化等商业价值也有很大的帮助。

应用背景:

在产品迭代过程中,通常需要根据用户的属性进行归类,也就是通过分析数据,对用户进行归类,以便于在推送及转化过程中获得更大的收益。

分析方法:

RFM分析(Recency,Frequency,Monetary)

分析工具:

SPSS(数据分析的重量级应用,与SAS二选一)

一.RFM基础知识

所谓探索性分析,主要是运用一些分析方法从大量的数据中发现未知且具有价值信息的过程。

常用的探索性分析方法包括:RFM分析、聚类分析、因子分析、对应分析等。

RFM的含义:

  • R(Recency):客户最近一次交易时间的间隔。R值越大,表示客户交易发生的日期越久,反之则表示客户交易发生的日期越近。
  • F(Frequency):客户在最近一段时间内交易的次数。F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。
  • M(Monetary):客户在最近一段时间内交易的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。

RFM分析就是根据客户活跃程度和交易金额的贡献,进行客户价值细分的一种方法。

  • RS:基于最近一次交易日期计算的得分,距离当前日期越近,得分越高。例如5分制。
  • FS:基于交易频率计算的得分,交易频率越高,得分越高。如5分制。
  • MS:基于交易金额计算的得分,交易金额越高,得分越高。如5分制。

RFM总分值:RFM=RS*100+FS*10+MS*1

RFM分析的主要作用:

  1. 识别优质客户。可以指定个性化的沟通和营销服务,为更多的营销决策提供有力支持。
  2. 能够衡量客户价值和客户利润创收能力。

RFM的假设前提:

假设交易的可能性:

  1. 最近交易过的客户 > 最近没有交易过的
  2. 交易频率高的客户 > 交易频率低的
  3. 交易金额大的客户 > 交易金额小的

二.分析实践

RFM接受的数据格式有两种:

  1. 交易数据:每次交易占用一行,关键变量是客户ID、交易时间、交易金额。
  2. 客户数据:每次交易占用一行,关键变量是客户ID、交易总金额、最近交易日期、交易总次数。

我们通常采用交易数据的格式进行分析。因为交易数据可以整理成客户数据,而客户数据无法还原成交易数据。即用交易数据的字段可以得到客户数据的字段,反之不行。

具体是“交易数据”还是“客户数据”根据数据源文件的格式而定。

变量:选择各个变量。

分箱化:评分的总分是多少。

保存:生成哪些新的变量,可以自定义名称。

输出:可以全部勾选,为了能全面的解读RFM分析结果。

确定后,生成了四个新的变量:

  • 崭新-得分:最后一次交易的时间间隔得分;
  • 频率-得分:交易总次数得分;
  • 消费金额-得分:交易总金额得分;
  • RFM得分:RFM得分

三.结果解读(最重要的环节)

该图主要用来查看每个RFM汇总得分的客户数量分布是否均匀。

我们期望均匀的分布,若不均分,则应该重新考虑RFM的适用性或尝试另一种分箱方法(减少分箱数目或随机分配绑定值)。

“RFM热图”是交易金额均值在RS和FS绘制的矩阵图上的图形化表示,用颜色深浅表示交易金额均值的大小,颜色越深,表示相应矩阵块内的客户交易金额均值越高。

如本例随着RS和FS的分值增大,颜色越来越深,说明客户最近一次交易时间越近、交易次数越多,其平均交易金额越高。

该图是最后一次交易时间、交易总次数、交易总金额之间的散点图。

通过散点图可以清晰直观的看到三个分析指标两两之间的关系,便于指标相关性评估。

本例中,交易总次数和交易总金额存在较为明显的线性关系,而最后一次交易时间和另外两个分析指标之间的相关性较弱。

四.RFM分析应用

为客户分组,即将三个指标分别分为“高”和“低”两种,高于均值的为“高”,低于均值的为“低”。

因此有三件事要做:

  1. 计算出各个指标得分的平均值;
  2. 将各个变量高于平均分的定义为“高”,低于平均分的定义为“低”;
  3. 根据三个变量“高”“低”的组合来定义客户类型;如“高”“高”“高”为高价值客户。

第一步,先计算各个指标的平均值。

一定要勾选平均值,否则输出结果中没有“平均值”。

现在我们得到了各个变量的平均分:3.33,2.99,3.01。

第二步,将各个变量高于平均分值的定义为“高”,否则为“低”。

按照1-2-3-4-5的步骤设置高于平均值的为“2”,也可以设置为“高”

同理去设置FS和MS。

设置后结果如下:

可以在变量设置里设置标签,1代表“低”,2代表“高”,也可以在“重新编码到不同变量”里面设置时就直接定义为“高低”,而不是“1和2”。

第三步:通过各个变量的高低组合,确定客户类型。

第三区域:可以是公式,也可以是具体的数字,其实这里就是输出结果。

第四区域:表示满足的条件。

同理在“变量设置”里对标签就行设置就行。

最终分析结果如下:

通过RFM方法,我们根据用户的属性数据分析,对用户进行了归类。在推送、转化等很多过程中,可以更加精准化,不至于出现用户反感的情景,更重要的是,对产品转化等商业价值也有很大的帮助


http://chatgpt.dhexx.cn/article/6fgn7PGR.shtml

相关文章

R语言 RFM分析

目录 一、RFM分析的定义: 二、RFM分析的假设 三、RFM分析的步骤 四、RMF分析实例 4.1 数据准备 4.2 计算R/F/M 4.3 将R、F、M分组打分赋值 4.4 计算RFM综合分值 4.5 客户分类 4.6 完整代码 注:个人学习笔记--谁说菜鸟不会数据分析 R语言篇 一、…

[数据分析] RFM分析方法

美图欣赏2022/06/08 RFM分析方法 作用:对用户分类,识别出有价值的用户,对不同价值的用户使用不同的运营决策,把公司有限的资源发挥到最大的效果(用于用户价值细分,精细化运营) RFM是3个指标的缩写:最近1次消费时间间隔(Recency)…

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

今天想先谈谈传统企业和电商谈的较多的RFM模型,在众多的客户细分模型中,RFM模型是被广泛提到和使用的。 一、RFM模型概述 RFM模型是网点衡量当前用户价值和客户潜在价值的重要工具和手段。RFM是Rencency(最近一次消费)&#xff…

如何进行有效的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…