数据操作案例:RFM 分析

打开官方文档:https://help.fanruan.com/finebi/doc-view-1727.html

在这里搜索"RFM分析",然后点击搜索。

之后就会跳转到这个页面。可以跟着做一做。

介绍

RFM分析是一个比较经典的分析模型,从三个指标来分析数据,通过结果给客户打标签。下面部分,概念、解决的问题,以及预期效果,均从官方文档里的RMF分析引入过来。

概念

RFM 分析是美国数据库营销研究所提出的一种简单实用客户分析方法,发现客户数据中有三个神奇的要素:

  • 最近一次消费时间(R):客户距离最近的一次采购时间的间隔。

  • 最近一段时间内消费频次(F):指客户在限定的期间内所购买的次数。

  • 最近一段时间内消费金额(M):客户的消费能力,通常以客户单次的平均消费金额作为衡量指标。

这三个要素构成了数据分析最好的指标。

解决的问题

RFM 分析就是通过三个关键指标对客户进行观察和分类,判断每类细分用户的价值。针对不同的特征的客户进行相应的营销策略。

预期效果

RFM 分析后,将客户划分为了不同分类,数据分析效果如下图所示:

数据清洗

数据获取

接下来我们来实现上面的效果。首先是数据获取。鼠标往下滚一滚,可以看到这里有一个压缩包,把它下载下来,解压,一会在新建分析主题的时候就可以把里面的数据全部上传上去。

上传数据

新建分析主题,命名为RFM分析,上传刚刚下载的数据,点击确定。

分析过滤

注意,因为我们最重要分析的只有这三个指标,一个是间隔,一个是次数,还有一个是金额。跟这个内容不搭边的就可以给它去掉。

首先看一下数据,这里有个 DATE,根据日期我们可以计算当前的购买时间间隔,这个是很有必要的。第二个 COMPANY,表示的是地区,地区是不需要的,我们要的是给客户打标签,所以这个字段也是不需要的。第三个,CUSTOMERNAME,客户的名字,我们需要保留。第四个,CUSTOMERTYPE,客户类型,这个也不需要,既不是频率,也不是间隔,也不是金额,所以这个字段也不需要。后面 AMOUNT,这个是购买的商品数量,所以这个也不需要。所以最后只保留DATE、CUSTOMERNAME,以及MONEY这三个字段就可以了。

我们找到字段设置,除了那三个字段,其他的全部取消勾选,然后点击确定。

这样就可以了。

计算字段

首先要搞清楚,这三个指标分别计算的是什么。

R:客户距离最近的一次采购时间的间隔

F:客户在限定的期间内所购买的次数

M:客户单次的平均消费金额

目前,有了这个数据之后,可以对它进行分组。现在,我们希望把客户作为维度来分析,比如这个客户最近一次的购买时间是什么时候,以及客户当前的购买次数是多少次。

分组汇总

F:客户在限定的期间内所购买的次数

现在我们有所有的数据,而且每一个客户是有多条记录的。

每一次记录其实就是购买次数。比如这个沈阳泓道食品有限公司广州线的购买次数就是 342。

所以接下来我们要对它进行分组汇总。

我们要看的是每个客户,所以要把客户名称放在分组里,这样同一个客户,它的数据就不会重复了。这是第一个分组的字段。

汇总的字段。首先,要知道当前客户的购买次数,购买次数实际就是用户名称的统计数量,所以在汇总的地方拖入的依然是客户名字。

拖入进去之后默认是去重计数,点击字段右侧倒三角,改为记录个数就可以。

因为这个数据是一整个购买记录,只要有一条数据就表示一次购买。所以这里先对客户姓名记录个数。

客户消费金额

接下来,是要去计算单次的平均消费金额。所以,金额拖入到汇总里面。

先把总金额拿过来,之后就可以计算单次客户平均消费金额。注意,在这里并不是单次平均,而是求和,后面会将单次客户平均消费金额计算出来。

R:客户距离最近的一次采购时间的间隔

我们还要拿到最近一次购买的时间间隔。把 DATE 拖进来,拖进来之后是要它最晚的时间。

除了最晚时间,其他的都不需要,因为分析的就是最近一次购买的时间间隔。

M:客户单次的平均消费金额

现在这是三个指标了,初次之外,再拖入一个MONEY,把这个MONEY改为平均值。

这就是平均单次的消费金额。

现在这些是我们目前处理好的。

更改字段名称

上述处理全部完成之后,可以将字段改个名字,方便后续进行区分。

首先,"CUSTOMERNAME" -> "客户名称"。

"CUSTOMERNAME1" -> "消费次数"。

"MONEY" -> "用户消费总金额"。

"DATE" -> "最近一次消费时间"。

"MONEY1" -> "平均单次消费金额"。

最后,全部字段的整体情况如下。这就是源数据通过处理得到的内容。

判定规则

接下来应该怎么做?我们回到文档里面。文档地址:https://help.fanruan.com/finebi/doc-view-703.html?source=4

用鼠标滚轮滚动,我们去看它最后。它在最后是需要给客户打上标签的。而且它在打标签的时候是根据数字组合来判断的。

它的数字只有 1 和 0。鼠标滚轮继续滚一下,找到它的参考表。在 2.5 划分客户类型这里。我们可以看到这个表格。这是打上标记的规则。

解释一下前两行:意思是,如果是 111,就是重要价值客户,如果是 101,就是重要发展客户。表格的其他行内容以此类推。其中,111、101 等是向量。我们需要根据向量值给客户打上标签。

但是现在有问题。我们现在计算的这些内容,都是数值,后续需要将这些内容转换为向量 0 或 1。接下来需要设定,什么情况下转换为 0,什么情况下转换为 1。这个时候就需要一个参考的依据。思路:转换的时候应该要根据某个规则来确定到底转换后是 1 还是 0。

比如我们计算的消费金额、次数,时间间隔,这些数值肯定都不是 0/1,但是我们最终是要把它转换成 0/1 的。这个时候就需要某一个规则,这个规则如下:

python 复制代码
规则:二分法

就是把我们的内容分为两种情况,要么是 0,要么是 1。这是分的结果。依据是什么?

我们拿单个客户的指标,和所有客户的平均指标来做对比。比如,我们拿到了所有客户的平均购买次数是 100 次,而这个客户总计购买次数是 80 次,该客户的 80 次明显 < 客户的平均购买次数 100 次,此时应该标记 1 还是标记为 0?这个时候就要参考一下表格了。

我们来看这张表,如果三个都是 1,就表示是重要价值客户,而三个都是 0,就表示都是一般挽留客户。说明一个问题,1 就是积极的, 0 就是消极的。正向和负向。

通过观察划分规则,发现 1 表示正向,0 表示负向。所以,当所有客户的平均购买次数是 100 次,但是这个客户只购买了 80 次,这个时候要把该客户的 R 标记为 0。购买次数肯定是越高越好。综上,我们得出以下判定规则。

R 指标判定规则

客户距离最近的一次采购时间的间隔。

间隔肯定是越短越好。作为平台一定是希望客户购买时间间隔短一些,肯定是值越小越好。所以小于总体平均就是 1,大于就是 0。

F 指标判定规则

限定的期间内所购买的次数。

次数是越多越好。大于平均购买次数就是 1,小于平均购买次数就是 0。

M 指标判定规则

客户单次的平均消费金额。

肯定是越大越好,所以跟 F 一样。大于总体平均消费金额就是 1,小于总体平均消费金额就是 0。

指标计算

最近一次消费时间距今天数

之前我们已经处理完成了数据,而且也计算出了一些内容。回到 finebi 当中。有了单次平均的消费金额,还可以计算一下时间间隔。已经知道了最近一次的消费时间,距离当前的时间间隔是多少呢?可以采用获取时间差的方法。

起个名字,叫"最近一次消费时间距今天数",就是最近一次消费距离当前过了多少天。用当前时间减去这一个字段的值就可以了,单位改成天。点击确定。这一列就生成好啦。

现在每个客户的消费时间距离当前的时间就已经计算完毕了。

用户平均消费金额

平均消费金额 = 总金额/总次数

现在,还可以计算一下所有用户他们的消费总金额。因为是拿单个客户的,和所有客户平均的来比,所以要先求出总的消费金额。使用新增汇总列,列名命名为"所有用户消费的总金额"。等于用户的消费金额,求一个和就行。点击确定。

然后得去计算一下所有用户他们的平均消费金额。所以还得知道左右用户他们的总消费次数。再去用金额除以次数就可以得到总体平均的消费金额了。先计算一下消费总次数,点击新增汇总列,列名命名为"消费总次数"。对消费次数进行求和的操作,点击确定。

现在这俩都有了,那么所有用户他们的平均消费金额就可以求出来了。点击新增公式列,列名命名为"用户平均消费金额",​所有用户消费的总金额​/​消费总次数​,点击确定。

这就是用户的平均消费金额了。

用户平均消费次数

接下来我们要去计算用户的平均消费次数,因为现在拿到的是它的总次数,现在计算一下平均消费次数。点击新增汇总列,命名为"平均消费频次"。对这个消费次数求平均值,点击确定。

这样,用户的平均消费次数就有了。

平均间隔天数

之前,我们已经拿到了最近一次购买相隔的天数,还要计算一下平均的天数。点击新增汇总列,列名命名为"最近一次消费距今天平均数",选择最近一次消费时间距今天数,汇总方式选择平均。

点击确定之后,平均间隔天数就生成出来了。

所有用户的这些指标我们都求出来了,求出来之后,要拿单个用户的指标和所有的平均的指标进行比较就可以了。

指标评价

次均消费金额评价(M)

最终是要把它变成 0/1,我们要做一个判断。点击新增公式列,列名命名为"次均消费金额评价"。

公式为:IF(​平均单次消费金额​ > ​用户平均消费金额​, 1, 0),如果平均单次消费金额大于用户平均消费金额,就标记为 1,否则标记为 0。

这里的 0 和 1 可以带引号也可以不带,不带的话就是整数,带就是字符串。本次不带引号了。后面变成 111,000 这些,要用到字符串的拼接。

这是第一个,次均消费金额评价。

消费次数评价(F)

点击新增公式列,列名命名为"消费次数评价"。次数肯定是越多越好,如果当前的消费次数 > 平均消费频次,就标记为 1,否则标记为 0。公式为:IF(​消费次数​>​平均消费频次​, 1, 0),点击确定。

这是消费次数评价。还有一个,间隔天数。

最近一次消费距今天数评价(R)

间隔时间要越短越好。点击新增汇总列,列名命名为:"最近一次消费距今天数评价"。如果最近一次消费距今天数 < 最近一次消费距今天平均数,就是 1 ,否则就是 0,公式为:IF(​最近一次消费时间距今天数​ < ​最近一次消费距今天平均数​, 1, 0)。点击确定。

组合成向量(RFM)

现在,这三个指标都有了对应的评价,现在要把这三列的评价变成向量的形式。现在要把它们仨组合起来。不能直接用加号,加号就直接计算了。要用新增公式列。点击新增公式列。

命名为"RFM",使用 CONCATENATE 函数,按照 RFM 的顺序来。公式为:CONCATENATE(​最近一次消费距今天数评价​, ​消费次数评价​, ​次均消费金额评价​),点击确定。

这个就是组合之后的向量。有了这个向量之后就可以给客户打上标签。

判定客户类型

用新增赋值列,列名命名为"客户类型",按照 RFM 列来赋值。赋值的时候参考这个表。

按照表分组之后点击确定。

之后就成功为客户打上了标签。

前面数据已经处理完毕,最后就是可视化。可视化的过程参照官方文档操作即可。

网址:https://help.fanruan.com/finebi/doc-view-703.html?source=4

相关推荐
cd_949217212 小时前
告别硬床误区,梦百合以AI科技重塑正确睡眠观
大数据·人工智能·科技
DX_水位流量监测2 小时前
德希科技农村供水工程水质在线监测方案
大数据·运维·网络·水质监测·水质传感器·水质厂家·农村供水水质监测方案
AI营销先锋3 小时前
AI营销变革下,原圈科技如何重塑企业增长引擎?
大数据·人工智能
TDengine (老段)3 小时前
TDengine IDMP 组态面板 —— 图元库
大数据·数据库·时序数据库·tdengine·涛思数据
samFuB3 小时前
【数据集】省市数字普惠金融指数数据集(2011-2024年)
大数据
码云数智-园园3 小时前
自助建站哪个好?自助建站平台对比2026
大数据·人工智能
小荟荟3 小时前
全国数据资产新闻和报纸摘要联播 2026年3月13日 第17期[编者按】
大数据·人工智能·数据挖掘
b***25113 小时前
电池组PACK自动化生产线的构建与运行解析
大数据·人工智能