操作教程|基于DataEase用RFM分析法分析零售交易数据

embedded/2024/10/18 1:29:20/

DataEase开源BI工具可以在店铺运营的数据分析及可视化方面提供非常大的帮助。同样,在用于客户评估的RFM(即Recency、Frequency和Monetary的简称)分析中,DataEase也可以发挥出积极的价值,通过数据可视化大屏的方式实时展示分析结果,让业务数据在没有损耗准确性和时效性的前提下,以更加直观易懂的方式呈现。

RFM_2">关于RFM分析法

RFM分析法是一种经典的客户价值评估模型,广泛应用于市场营销和客户关系管理领域。通过分析客户最近一次的消费时间(Recency)、消费频率(Frequency)以及消费金额(Monetary),RFM模型能够精准识别客户的价值和行为特征。这一方法在零售、新消费和电商行业尤为普遍和通用,可以帮助企业识别高价值客户、制定个性化营销策略、提升客户满意度和忠诚度,并且优化资源配置,从而显著提升整体销售业绩和市场竞争力。

RFM分析不仅为企业提供了科学的数据支持,还在客户关系管理中起到了关键的指导作用。其中,针对“R”、“F”和“M”这三个维度,可以根据如下标准来做出评估:

1.R(Recency):表示客户最近一次购买时间距离当前时间的间隔天数。时间越短,客户的活跃度越高,越有可能再次购买;

2.F(Frequency):表示客户在特定时间段内的购买次数。次数越多,说明客户与公司的互动越频繁,忠诚度越高;

3.M(Monetary):表示客户在特定时间段内的总消费金额。金额越高,客户的价值越大,越会成为公司重要的利润来源。

DataEaseRFM_14">通过DataEase对数据进行RFM分析

本文为您介绍通过DataEase对数据开展RFM分析的方法,涵盖了数据收集、处理,到客户分群和策略制定的完整步骤。

一、数据收集

在进行具体的数据分析之前,首先需要采集、整理好待分析的客户交易数据,包括每笔交易的日期、交易金额和客户ID等字段。

以下是模拟的一份零售交易数据示例。
在这里插入图片描述

▲图1 模拟零售交易数据

将获得的数据导入数据库。此处我们将模拟生成的数据加载至Oracle数据库中,具体步骤如下:

1.通过SQL命令语句创建生成数据表。

CREATE TABLE transactions (transaction_id NUMBER PRIMARY KEY,customer_id NUMBER NOT NULL,product_id NUMBER NOT NULL,transaction_time TIMESTAMP NOT NULL,total_amount NUMBER(10, 2) NOT NULL
);

2.将待分析的数据导入至生成好的数据表“TRANSACTIONS”中。
在这里插入图片描述

▲图2 将数据导入数据库的数据表

二、数据处理与计算

本次我们将通过DataEase开源BI工具来进行RFM分析数据的大屏制作,以实现数据的直观展示与分析。

具体步骤如下:

1.在DataEase的“数据源配置”页面,选择连接对应的Oracle数据库。
在这里插入图片描述

▲图3 连接Oracle数据源

2.使用Oracle数据源中预先准备好的数据表“TRANSACTIONS”,创建数据集。
在这里插入图片描述

▲图4 数据集创建操作

3.从数据表“TRANSACTIONS”中拆分出具体的“R”、“F”、“M”三个维度,并根据它们各自的指示特征,对数据进行进一步的筛选和加工处理。

■ R:用当前时间减去最近交易时间,并将结果向上取整,获取上次消费间隔天数;

CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R

■ F:当月内的发生交易次数;

COUNT(1) AS F

■ M:当月内消费金额合计。

SUM(TOTAL_AMOUNT) AS M

DataEase中,可以便利地通过“新建计算字段”功能来加工以上字段,实现数据的快速处理。

▲图5 DataEase的“新建计算字段”功能

4.按照客户ID来汇总数据,并对数据进行排序,取得可以用于RFM分析的数据集。

SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R,COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS M
FROMTRANSACTIONS
GROUP BYCUSTOMER_ID
ORDER BYCUSTOMER_ID

在这里插入图片描述

▲图6 用于RFM分析的数据集

三、数据标准划分

使用SQL语句,对待分析的数据进行进一步的处理,根据客户行为指标所在的数值区间分出计分等级。

SELECTMIN(t.R) 最小最近间隔天数,MAX(t.R) 最大最近间隔天数,MIN(t.F) 最小消费次数,MAX(t.F) 最大消费次数,MIN(t.M) 最小合计金额,MAX(t.M) 最大合计金额
FROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R,COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t

在这里插入图片描述

▲图7 数据计分标准参考

此处我们使用均等分层的方式,将客户交易数据分出等级,作为顺序数据计分。

■ R:

5分:1-4天
4分:5-8天
3分:9-12天
2分:13-16天
1分:17天以上

■ F:

5分:20次以上
4分:16-20次
3分:11-15次
2分:6-10次
1分:1-5次

■ M:

5分:8001以上
4分:6001-8000元
3分:4001-6000元
2分:2001-4000元
1分:1-2000元

四、客户分群

根据已经确定的数据标准,使用SQL语句对数据进行如下分类。

1.为R、F、M数值分别分层计分,所得R、F、M数值对应的分数分别记录为计分字段“R_GRD”、“F_GRD”、“M_GRD”。

SELECTt.CUSTOMER_ID,t.R,CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END R_Grd,t.F,CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END F_Grd,t.M,CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END M_Grd
FROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R,COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t

在这里插入图片描述

▲图8 新增“GRD”计分字段

2.分别计算出“R_GRD”、“F_GRD”、“M_GRD”三个字段的平均值。

SELECTAVG(ag.R_Grd) R_avg,AVG(ag.F_Grd) F_avg,AVG(ag.M_Grd) M_avg
FROM(SELECTt.CUSTOMER_ID,t.R,CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END R_Grd,t.F,CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END F_Grd,t.M,CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END M_GrdFROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R,COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t)ag

在这里插入图片描述

▲图9 计算“GRD”字段平均值

3.将“R_GRD”、“F_GRD”、“M_GRD”分数与各自的字段平均值进行对比,得出对应的等级字段“R_RNK”、“F_RNK”、“M_RNK”。若“GRD”分数高于平均值,则记录“RNK”为“高”,反之则记录“RNK”为“低”。

SELECTt.CUSTOMER_ID,t.R,CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END R_Grd,CASEWHEN (CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END) > 3.441 THEN '高'ELSE '低'END R_Rnk,t.F,CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END F_Grd,CASEWHEN (CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END) > 2.751 THEN '高'ELSE '低'END F_Rnk,t.M,CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END M_Grd,CASEWHEN (CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END) > 2.852 THEN '高'ELSE '低'END M_Rnk
FROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R, COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t

在这里插入图片描述

▲图10 新增“RNK”等级字段

五、分析与策略

根据上一步获得的“RNK”等级评估标准对用户类型进行细分,获取用户画像,并且分别制定对应的策略。
在这里插入图片描述

基于用户画像分析,在数据表中新增“RFM-RNK”(客户分类)字段,定位客户类型。

SELECTrfm.*,CASEWHEN rfm.R_RNK = '高'AND rfm.F_RNK = '高'AND rfm.M_RNK = '高' THEN '重要价值客户'WHEN rfm.R_RNK = '高'AND rfm.F_RNK = '低'AND rfm.M_RNK = '高' THEN '重要发展客户'WHEN rfm.R_RNK = '低'AND rfm.F_RNK = '高'AND rfm.M_RNK = '高' THEN '重要保持客户'WHEN rfm.R_RNK = '低'AND rfm.F_RNK = '低'AND rfm.M_RNK = '高' THEN '重要挽留客户'WHEN rfm.R_RNK = '高'AND rfm.F_RNK = '高'AND rfm.M_RNK = '低' THEN '一般价值客户'WHEN rfm.R_RNK = '高'AND rfm.F_RNK = '低'AND rfm.M_RNK = '低' THEN '一般保持客户'WHEN rfm.R_RNK = '低'AND rfm.F_RNK = '高'AND rfm.M_RNK = '低' THEN '一般保持客户'WHEN rfm.R_RNK = '低'AND rfm.F_RNK = '低'AND rfm.M_RNK = '低' THEN '一般挽留客户'END rfm_Rnk
FROM(SELECTt.CUSTOMER_ID,t.R,CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1              END R_Grd,CASEWHEN (CASEWHEN t.R BETWEEN 1 AND 4 THEN 5WHEN t.R BETWEEN 5 AND 8 THEN 4WHEN t.R BETWEEN 9 AND 12 THEN 3WHEN t.R BETWEEN 13 AND 16 THEN 2WHEN t.R > 16 THEN 1END) > 3.441 THEN '高'ELSE '低'END R_Rnk,t.F,CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END F_Grd,CASEWHEN (CASEWHEN t.F BETWEEN 1 AND 5 THEN 1WHEN t.F BETWEEN 6 AND 10 THEN 2WHEN t.F BETWEEN 11 AND 15 THEN 3WHEN t.F BETWEEN 16 AND 20 THEN 4WHEN t.F > 20 THEN 5END) > 2.751 THEN '高'ELSE '低'END F_Rnk,t.M,CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END M_Grd,CASEWHEN (CASEWHEN t.M BETWEEN 1 AND 2000 THEN 1WHEN t.M BETWEEN 2001 AND 4000 THEN 2WHEN t.M BETWEEN 4001 AND 6000 THEN 3WHEN t.M BETWEEN 6001 AND 8000 THEN 4WHEN t.M > 8000 THEN 5END) > 2.852 THEN '高'ELSE '低'END M_Rnk
FROM(SELECTCUSTOMER_ID,CEIL(SYSDATE - MAX(TRANSACTION_TIME)) AS R, COUNT(1) AS F,SUM(TOTAL_AMOUNT) AS MFROMTRANSACTIONSGROUP BYCUSTOMER_IDORDER BYCUSTOMER_ID)t)rfm

在这里插入图片描述

▲图11 新增“RFM-RNK”客户分类字段

六、用户画像可视化

基于前述数据分析的结果,并且结合店铺自身的业务场景,我们可以引入VIP客户占比、沉睡客户占比等关键绩效指标。这些指标对于深入了解客户群体结构和行为模式至关重要,能够帮助我们更加精准地把握营销侧重的方向。

针对以上整个RFM分析中的关键数据指标,我们可以利用DataEase强大的数据可视化呈现能力构建如下定制化的数据大屏,综合展示这些关键指标的实时动态,为运营人员提供一目了然的可视化效果,并且通过多维度的数据透视和交互功能,深入挖掘数据背后的潜在业务价值。

我们也可以通过定期更新的数据大屏,去实时监控不同类型客户的活跃度和贡献度,识别并维护高价值客户。同时,通过沉睡客户的占比分析,我们可以制定针对性的激活策略,挖掘潜在的客户消费机会。
在这里插入图片描述

▲图12 基于DataEase构建的“用户画像-RFM分析法”数据大屏

RFM分析数据大屏的构建有助于我们更精准地了解客户需求和市场变化,也能为制定更加细致的市场运营策略提供坚实的数据基础,让营销决策变得更加高效和科学。

注:本文所引用的RFM分析相关定义来源于《数据分析思维:分析方法和业务知识》一书,猴子.数据分析学院著。


http://www.ppmy.cn/embedded/126905.html

相关文章

SpringCloud网关聚合knife4j方案

微服务开发中想将Spring-Cloud-Gateway网关聚合knife4j,形成一个统一入口方便查阅的开发辅助接口文档,并且将Swagger抽取成一个公共模块,那么我们可以参考以下的做法 约定: Java Version:11.0.24 Spring Boot&#xff…

YoloV8改进策略:BackBone改进|CAFormer在YoloV8中的创新应用,显著提升目标检测性能

摘要 在目标检测领域,模型性能的提升一直是研究者和开发者们关注的重点。近期,我们尝试将CAFormer模块引入YoloV8模型中,以替换其原有的主干网络,这一创新性的改进带来了显著的性能提升。 CAFormer,作为MetaFormer框架下的一个变体,结合了深度可分离卷积和普通自注意力…

解决ubuntu 下 VS code 无法打开点击没反应问题

从Ubuntu 22.04 升级到ubuntu 24.04 后,发现Vsode无法打开,不论是点击图标,还是terminator里面运行code 可执行程序,均没有反应。debug如下: 提示权限不够。 解决方案: sudo sysctl -w kernel.apparmor_restrict_unp…

Mysql(1)—简介及Windows环境下载安装

一、关于Mysql 1.1 简介 MySQL是一个流行的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)进行操作。MySQL由瑞典MySQL AB公司开发,后来被Sun Microsystems收购,最终成为Oracle公司的…

题目:1297. 子串的最大出现次数

> Problem: 1297. 子串的最大出现次数 题目:1297. 子串的最大出现次数 题目描述 给定一个字符串 s,要求找到满足以下条件的任意子串的出现次数,并返回该子串的最大出现次数: 子串中不同字母的数目必须小于等于 maxLetters。…

FLASK 全局模板函数创建以及使用方法来构建资源链接器

代码位置: app.py 函数模板from common.libs.UrlManager import UrlManager app.add_template_global(UrlManager.buildStaticUrl, buildStaticUrl) app.add_template_global(UrlManager.buildUrl, buildUrl) app.add_template_global(UrlManager.buildImageUrl, buildImageUr…

计算机毕业设计 基于Hadoop的租房数据分析系统的设计与实现 Python毕业设计 Python毕业设计选题 数据分析【附源码+安装调试】

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

centos系列,yum部署jenkins2.479.1,2024年长期支持版本

centos系列,yum部署jenkins2.479.1,2024年长期支持版本 0、介绍 注意:jenkins建议安装LTS长期支持版本,而不是安装每周更新版本,jenkins安装指定版本 openjdk官网下载 Index of /jenkins/redhat-stable/ | 清华大学开…