数据分析方法:RFM模型

news2025/1/12 20:44:13

一、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.coloradmin.cn/o/1053036.html

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

相关文章

Windows 下安装及配置 MySQL 8.1 (图文教程)

目录 下载 MySQL安装 MySQL配置 MySQL修改密码配置环境变量 卸载 MySQL开源项目微服务商城项目前后端分离项目 下载 MySQL 访问 MySQL 下载地址:https://dev.mysql.com/downloads/mysql/ 下载 MySQL 时,你可以选择 ZIP 包或 MSI 安装: ZIP包…

智能合约漏洞,Dyna 事件分析

智能合约漏洞,Dyna 事件分析 1. 漏洞简介 https://twitter.com/BlockSecTeam/status/1628319536117153794 https://twitter.com/BeosinAlert/status/1628301635834486784 2. 相关地址或交易 攻击交易 1: https://bscscan.com/tx/0x7fa89d869fd1b89e…

【Java 进阶篇】MySQL 事务详解

在数据库管理中,事务是一组SQL语句的执行单元,它们被视为一个整体。事务的主要目标是保持数据库的一致性和完整性,即要么所有SQL语句都成功执行,要么所有SQL语句都不执行。在MySQL中,事务起到了非常重要的作用&#xf…

【C++】map、set,multiset和multimap的使用及底层原理【完整版】

目录 一、map和set的使用 1、序列式容器和关联式容器 2、set的使用讲解 3、map的使用讲解 二、multiset和multimap 1、multiset和multimap的使用 2、OJ题:前k个高频单词 一、map和set的使用 1、序列式容器和关联式容器 序列式容器:vector/list/s…

java遇到的问题

java遇到的问题 Tomcat与JDK版本问题 当使用Tomcat10的版本用于springmvc借用浏览器调试时,使用JDK8浏览器会报异常。 需要JDK17(可以配置多个JDK环境,切换使用)才可以使用,配置为JAVA_HOME路径,否则&a…

Linux系统编程系列之进程间通信-消息队列

一、什么是消息队列 消息队列是system-V三种IPC对象之一,是进程间通信的一种方式。 二、消息队列的特性 允许发送的数据携带类型(指定发送给谁),具有相同类型的数据在消息队列内部排队,读取的时候也要指定类型&#x…

STM32三种开发方式及标准库和HAL库的编程差异

三种开发方式 STM32基于标准库函数和HAL库编程差异_stm32库函数和hal库-CSDN博客本文目的是以串口通信来简要分析STM32使用标准库函数和HAL库函数编程的差异。目录(一)开发方式1.配置寄存器2.库函数3.HAL库(二)库函数与HAL库对比…

格点数据可视化(美国站点的日降雨数据)

获取美国站点的日降雨量的格点数据,并且可视化 导入模块 from datetime import datetime, timedelta from urllib.request import urlopenimport cartopy.crs as ccrs import cartopy.feature as cfeature import matplotlib.colors as mcolors import matplotli…

3D孪生场景搭建:模型区域摆放

前面介绍完了NSDT场景编辑器的线性绘制和阵列绘制,本章将讲述下编辑器的另一种绘制方式:区域绘制。 1、区域绘制功能简介 在场景中绘制资产时,除使用上述两个的方式外,NSDT 编辑器还支持使用区域绘制的方式进行绘制。先选取需要…

【C/C++笔试练习】——数组名和数组名、switch循环语句、数据在计算机中的存储顺序、字符串中找出连续最长的数字串、数组中出现次数超过一半的数字

文章目录 C/C笔试练习1.数组名和&数组名(1)数组名和&数组名的差异(2)理解数组名和指针偏移(3)理解数组名代表的含义(4)理解数组名代表的含义 2.switch循环语句(6…

FFmpeg 命令:从入门到精通 | ffplay 简单过滤器

FFmpeg 命令:从入门到精通 | ffplay 简单过滤器 FFmpeg 命令:从入门到精通 | ffplay 简单过滤器视频旋转视频反转视频旋转和反转音频变速播放视频变速播放音视频同时变速更多参考 FFmpeg 命令:从入门到精通 | ffplay 简单过滤器 本节介绍了简…

【CFD小工坊】浅水方程的离散及求解方法

【CFD小工坊】浅水方程的离散及求解方法 前言基于有限体积法的方程离散界面通量与源项计算干-湿网格的处理数值离散的稳定性条件参考文献 前言 我们模型的控制方程,即浅水方程组的表达式如下: ∂ U ∂ t ∂ E ( U ) ∂ x ∂ G ( U ) ∂ y S ( U ) U…

十五、异常(4)

本章概要 Java 标志异常 特例:RuntimeException 使用 finally 进行清理 finally 用来做什么?在 return 中使用 finally缺憾:异常丢失 Java 标准异常 Throwable 这个 Java 类被用来表示任何可以作为异常被抛出的类。Throwable 对象可分为两…

JUC——并发编程—第二部分

集合类不安全 list不安全 //报错 java.util.ConcurrentModificationException public class ListTest {public static void main(String[] args) {List<String> list new CopyOnWriteArrayList<>();//并发下Arrayist边读边写会不安全的/*** 解决方案&#xff1a…

国庆作业 9月30 消息队列实现进程间通信

01_write.c&#xff1a; #include <myhead.h> #define MAX 1024//x消息结构体 typedef struct {long msgtype; //消息类型char msg[MAX]; //消息正文 }Msg;#define SIZE sizeof(Msg)-sizeof(long) //正文大小int main(int argc, const char *argv[]) {//1:创建一个key…

机器学习之单层神经网络的训练:增量规则(Delta Rule)

文章目录 权重的调整单层神经网络使用delta规则的训练过程 神经网络以权值的形式存储信息,根据给定的信息来修改权值的系统方法称为学习规则。由于训练是神经网络系统地存储信息的唯一途径&#xff0c;因此学习规则是神经网络研究中的一个重要组成部分 权重的调整 &#xff08…

企业级磁盘阵列存储系统由硬到软全析

企业级磁盘阵列是由一组设备构成的存储系统,主要包括两种类型的设备,分别是控制器和扩展柜,其中控制器只有一台,扩展柜可以没有,也可以有多台。在EMC的Unity中分别称为DPE(Disk Processor Enclosure)和DAE(Disk Array Enclosure),在华为的OceanStor里面称为控制框和硬…

【网络模型】OSI七层网络模型、TCP/IP网络模型、键入网址到页面显示的过程、DNS是什么等重点知识汇总

目录 OSI 的七层模型 TCP/IP 网络模型 键入网址到网页显示发生了什么 你知道DNS是什么&#xff1f; OSI 的七层模型 简要概括 应用层&#xff1a;为用户的应用进程提供网络通信服务表示层&#xff1a;处理用户信息的表示问题&#xff0c;数据的编码&#xff0c;压缩和解压…

在枚举类中“优雅地”使用枚举处理器

使用枚举类的一大好处就是&#xff0c;代码易懂&#xff0c;方便自己或他人维护。如&#xff0c;枚举状态、异常等。 下面有两个类&#xff08;枚举类和实体类&#xff09;&#xff1a; package com.zhang.enums;import lombok.Getter;/*** Author lgz* Description* Date 202…