数据分析方法:RFM模型

一、RFM基本原理

RFM是三个单词的缩写:

最近一次消费时间(Recency),取数的时候一般取最近一次消费记录到当前时间的间隔,比如:7天、30天、90天未到店消费;直观上,一个用户太久不到店消费,肯定是有问题,得做点什么事情,很多公司的用户唤醒机制都是基于这个制定的。

 一定时间内消费频率(Frequency),取数时,一般是取一个时间段内用户消费频率。比如:一年内有多少个月消费,一个月内有多少天到店等等;直观上,用户消费频率越高越忠诚;很多公司的用户激励机制都是基于这个制定的,买了一次还想让人家买第二次。

一定时间内累计消费金额(Monetary),取数时,一般是取一个时间段内用户消费金额,比如:一年内有多少消费金额;直观上,用户买的越多价值就越大;很多公司的VIP机制是基于这个指定的,满10000银卡,满20000金卡一类。

 

频次和金额本身可以做一个二分类矩阵,也非常好用(如左图〉。

特别是,这个二分类和用户注册时间、用户参与活动頻率、参与活动金额占比再结合,能有更多解读。比如:国货用户如果大比例是利用促销国货,就得调整促销商品或者奖励力度,比如边缘用户是新人多还是老人多,业务含义也不同。RPn不是唯一 的定势,完全可以研发出FMR(register time) FMR(promotion) 等模型。

所以,即使单独看这三个维度,都是很有意义的。

当然,也有把三个维度交叉起来看的(如下图):

最典型的就是生鲜,人天天都要吃饭,7天不吃可能就有问题;普通的快消品零售可能取30天,类似服装百货零售可能取90天;当然,更多的做法是按月取,比如R按月取,F、M算最近一年内的数值——这样做单纯是因为比较方便理解而已。

RFM本质上是一种用三个分类维度,找判断标准方法;通过三个维度的组合计算,能判定出用户的好坏,然后采取对应措施。

RFM的真正意义在于:这是一种从交易数据反推用户价值的方法,因此可行性非常高!

要知道:做数据分析的最大瓶颈是数据采集,而只要是个正常企业,交易数据是肯定有的;因此只要企业建立了用户ID统一认证机制,就能将用户ID与交易数据关联起来,就能用RFM来分析用户了;即使没有埋点、没有网站、没有基础信息也能做,简直是方便好用的神器。

二、RFM的最大短板

RFM最大的短板,在于用户ID统一认证;不要小看这几个字,在相当多的企业里非常难实现。

比如你去超市、连锁店、门店买东西,往往收银小妹会机械的问一句:有会员卡吗?如果回答没有,她也放你过去了;导致的结果,是线下门店的订单,一般有70%-90%无法关联到用户ID;进而导致整个用户数据是严重缺失的,直接套RFM很容易误判用户行为。

至于用户一人多张会员卡轮流薅羊毛,多个用户共同一张VIP卡拿最大折扣,店员自己用亲戚的卡把无ID订单的羊毛给薅了之类的事,更是层出不穷;而且在实体企业、互联网企业都普遍存在。

所以做RFM模型的时候,如果你真看到111类用户,别高兴太早,十有八九是有问题的;现在的企业往往在天猫、京东、自有微商城、有赞等几个平台同时运作,更加大了统一认证的难度;如果没有规划好,很容易陷入无穷无尽的补贴大坑。

三、RFM的深层问题

即使做好了用户ID统一认证,RFM还有一个更深层的问题。

让我们回顾一下,RFM模型的三个基本假设:

  • R:用户离得越久就越有流失风险
  • F:用户频次越高越忠诚
  • M:用户买的越多越有价值

反问一句:这三个假设成立吗?

如果不结合具体行业、具体产品、具体活动来看,似乎是成立的;但是一旦具体讨论就会发现:很多场景不满足这三个假设;因此:单纯讲RFM,不结合产品、活动,是很容易出BUG的。

R:用户离得越久就越有流失风险

  • 如果是服装这种季节性消费,用户间隔2-3个月是很正常;
  • 如果是手机、平板这种新品驱动产品,间隔时间基本跟着产品更新周期走;
  • 如果是家居、住房、汽车这种大件耐用品,R就没啥意义,用户一辈子就买2次;
  • 如果是预付费,后刷卡的模式,R就不存在了,需要用核销数据代替。

所以R不见得就代表着用户有流失风险,特别是现在有了埋点数据以后,用户互动行为更能说明问题。

F:用户频次越高越忠诚

  • 如果用户消费是事件驱动的,比如赛事、节假日、生日、周末;
  • 如果用户消费是活动驱动的,比如啥时候有优惠啥时候买;
  • 如果用户消费是固定模式的,比如买药的用量就是30天。

以上情况都会导致F的数值不固定,可能是随机产生的,也可能是人为操纵的。

很多企业僵硬地执行RFM模型,往往会定一个固定的F值,比如促使用户买4次,因为数据上看买了4次以上的用户就很忠诚;结果就是引发用户人为拆单,最后F值做上去了,利润掉下来了。

M: 用户买的越多越有价值

  • 如果用户是图便宜,趁有折扣的时候囤货呢?
  • 如果用户买了一堆,已经吃腻了、用够了呢?
  • 如果用户买的是耐用品,买完这一单就等十几二十年呢?
  • 如果用户消费本身有生命周期,比如母婴,游戏,已经到了生命周期末尾呢?

很多情况下,用户过去买的多,不代表未来买的多,这两者不划等号;因此真看到011、001、101的客人,别急着派券,整明白到底出了啥问题才是关键。

除了单独维度的问题外,三个维度连起来看,也容易出问题;因为很多公司的用户结构不是金字塔形,而是埃菲尔铁塔型——底部聚集了太多的不活跃用户,且不活跃用户大多只有1单,或者只有几次登录便流失;因此RFM真按八分类化出来,可能000的用户比例特别多。

这意味着现有存活的用户,可能是幸存者偏差的结果,现有的111不是000的未来;要更深层次地分析为啥会沉淀大量不活跃用户,甚至从根上改变流程,才能解决问题;真按照RFM生搬硬套。可能就把业务带到死胡同里了。

四、RFM的典型乱用 

RFM本身并没有错,在数据匮乏(特别是缺少埋点数据)的情况下,用RFM比不用RFM好太多了。

RFM的三个维度,每一个都很好用;RFM的整体架构,也适合用于评估用户经营的整体质量。

错的是生搬硬套RFM,不做深入分析;错的是看到买了大单的就叫爸爸,看到用户不买就急着发券的无脑做法;一味派券不但严重透支营销成本,更会培养出更多薅羊毛用户,破坏了正常经营,只为了RFM的数值好看。

特别是网上文章、网课最喜欢教的:按RFM,每个拆分成5段,分成5*5*5=125类,然后再用K均值聚类聚成5-8类的做法,更是大错特错。

  • 经过K均值聚类以后,连RFM原有的含义清晰的优点都没有了,到底这8类咋解读,非常混乱。
  • 这样做没有考虑数据滚动更新,过了一周或者一个月,RFM指标都变了呀!难道你还天天把全量用户拿出来聚类吗。
  • k均值聚类不是一个稳定的分类方法,无监督的分类更适合做探索性分析;隔了一周,一个用户被分成完全不同的两类,这会让市场营销、运营策划执行政策的时候非常抓狂:一天一个样,到底要推什么!

五、如何让RFM更有用

综合RFM失效的场景,可以看出:季节性、商品特征、促销活动、节假日事件、用户生命周期,这五大要素,都会影响到用户的行为;因此不局限于RFM,深入研究用户场景非常关键。

注意,这五大要素研究起来,并没有想象中的难。比如很多商品有内在的关联性,只要熟悉业务就能整明白;比如季节性、节假日事件,本质上都和时间有关;因此,对用户登录、消费的时间打上标签,就能进行分析(如下图)。

促销活动也是同理,促销活动可以直接从订单识别出来,因此也很容易给用户贴上——促销敏感型的标签。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/92000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySql进阶篇---006:存储引擎,索引,SQL优化,视图、存储过程、变量、流程控制、游标、存储函数、触发器

1. 存储引擎 1.1 MySQL体系结构 1).连接层 最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证…

DETR中的问题汇总(代码)

一、讲述一下torch.tensor()和torch.as_tensor()的区别 torch.tensor() 和 torch.as_tensor() 都是 PyTorch 中用于创建张量(Tensor)的函数,但它们有一些区别,主要涉及到张量的内存管理方式和数据拷贝。以下是它们的主要区别&…

Redis与分布式-主从复制

接上文 常用中间件-OAuth2 1.主从复制 启动两个redis服务器。 修改第一个服务器地址 修改第二个redis 然后分别启动 redis-server.exe redis.windows.conf) 查看当前服务器的主从状态,打开客户端:输入info replication命令来查看当前的主从状态&am…

2023/10/1 -- ARM

今日任务&#xff1a;select实现服务器并发 ser.c&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\printf("%d\n",__LINE__);\perror(msg);\ }while(0)#define PORT 8888#define IP "192.168.1.5"int main(int argc, const char *argv[…

ElementUI动态树,数据表格以及分页的实现

目录 前言 一. ElementUI动态树 二. 数据表格和分页 三. 后端代码 service层 controller层 前言 在上一篇博客中实现了左侧菜单栏&#xff0c;在此基础上将它变为动态的&#xff0c;即动态的展示数据库的数据。还有数据表格的实现以及分页。&#xff08;纯代码分享&#…

pyspark常用功能记录

前言 pyspark中很多常用的功能&#xff0c;过段时间没有使用就容易忘记&#xff0c;需要去网上搜索&#xff0c;这里总结一下&#xff0c;省的以后还去去搜&#xff0c;供自己以后参考。 withColumn def hot_func(info_str):if info_str:eturn "1"return "0&…

新闻报道的未来:自动化新闻生成与爬虫技术

概述 自动化新闻生成是一种利用自然语言处理和机器学习技术&#xff0c;从结构化数据中提取信息并生成新闻文章的方法。它可以实现大规模、高效、多样的新闻内容生产。然而&#xff0c;要实现自动化新闻生成&#xff0c;首先需要获取可靠的数据源。这就需要使用爬虫技术&#…

步进电机只响不转

我出现问题的原因是相位线接错。 我使用的滑台上示17H的步进电机&#xff0c;之前用的是57的步进电机。 57步进电机的相位线是A黑、A-绿、B红、B-蓝。 17步进电机的相位线是A红、A-绿、B黑、B-蓝。 这两天被一个问题困扰了好久&#xff0c;在调试步进电机开发板的时候电机发生…

分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测

分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现SSA-CNN-SVM麻雀算法优化卷积支持向量机分类预测&#xff0…

Sentinel学习(1)——CAP理论,微服务中的雪崩问题,和Hystix的解决方案 Sentinel的相关概念 + 下载运行

前言 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 本篇博客介绍CAP理论&#xff0c;微…

Plant Simulation双深位库堆垛库

Plant Simulation双深位库堆垛库视频演示 自定义多入口&#xff0c;多出口 Plant Simulation双深位库堆垛库

【面试经典150 | 矩阵】螺旋矩阵

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;模拟方法二&#xff1a;按层模拟 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于…

【数据结构】选择排序 堆排序(二)

目录 一&#xff0c;选择排序 1&#xff0c;基本思想 2&#xff0c; 基本思路 3&#xff0c;思路实现 二&#xff0c;堆排序 1&#xff0c;直接选择排序的特性总结&#xff1a; 2&#xff0c;思路实现 3&#xff0c;源代码 最后祝大家国庆快乐&#xff01; 一&#xf…

测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)

文章目录 一、任务描述二、指标分析2.1 TP/FP/FN/TN2.2 精准率2.3 召回率 三、接口处理四、数据集处理五、开始计算指标五、实用工具5.1 移动文件5.2 可视化JSON标签5.3 可视化TXT标签 一、任务描述 通过给定的算法接口&#xff0c;对算法的输出&#xff08;置信度、检测框、告…

(原创)视频图像接口之eDP

一、视频图像接口 视频图像接口有多种&#xff0c;eDP、DP、LVDS、CPHY、DPHY、HDMI、V-BY-ONE、QSPI、RGB等等&#xff0c;今天主要讲eDP视频接口。 二、协议 DP协议很多&#xff0c;比如有DP1.4a、DP1.4b、DP2.0&#xff0c;诸多协议&#xff0c;大家有兴趣自行查找。 eD…

SQL 杂谈 1

在 SQL 语言中&#xff0c;DISTINCT 关键字是用于返回唯一的行。当使用多个列&#xff08;如 DISTINCT column1, column2&#xff09;时&#xff0c;它会返回这些列的唯一组合。但是&#xff0c;不能对每个列单独使用 DISTINCT 关键字&#xff08;比如 DISTINCT column1, DISTI…

英飞凌 Tricore 架构中断系统详解

本文以TC3系列MCU为例&#xff0c;先来了解中断源是如何产生的&#xff0c;再看一下CPU是如何处理中断源的。 AURIX TC3XX的中断路由模块 Interrupt Router (IR) 在TC3中&#xff0c;中断既可以被CPU处理&#xff0c;也可以被DMA处理&#xff0c;所以手册中不再把中断称为中断…

Apache Commons Pool2 池化技术

对象池是一种设计模式&#xff0c;用于管理和重用对象&#xff0c;以提高性能和资源利用率。对象池的概念在许多应用程序中都有广泛应用&#xff0c;特别是在需要频繁创建和销毁对象的情况下&#xff0c;例如数据库连接、线程、HTTP连接等 对象池通过预先创建一组对象并将它们存…

【论文笔记】SVDM: Single-View Diffusion Model for Pseudo-Stereo 3D Object Detection

原文链接&#xff1a;https://arxiv.org/abs/2307.02270 1. 引言 目前的从单目相机生成伪传感器表达的方法依赖预训练的深度估计网络。这些方法需要深度标签来训练深度估计网络&#xff0c;且伪立体方法通过图像正向变形合成立体图像&#xff0c;会导致遮挡区域的像素伪影、扭…

【数据结构篇】堆

文章目录 堆前言基本介绍认识堆堆的特点堆的分类堆的操作堆的常见应用 堆的实现JDK 自带的堆手动实现堆 堆 前言 本文主要是对堆的一个简单介绍&#xff0c;如果你是刚学数据结构的话&#xff0c;十分推荐看这篇文章&#xff0c;通过本文你将对堆这个数据结构有一个大致的了解…