如何让数据分析来帮助业务挣钱,这是每个数据分析师都会考虑的问题,近几年经常提到的精细化运营、数据驱动增长、增长黑客这样的字眼,这背后的核心就是用户行为分析。
而其中最经典的当属RFM模型吧,简单好操作而且还十分实用,下面就介绍一些怎么构建RFM模型。
一、什么是RFM模型?
R是指用户的最近一次消费时间,用最通俗的话说就是,用户最后一次下单时间距今天有多长时间了,这个指标与用户流失和复购直接相关。
F是指用户下单频率,通俗一点儿就是,用户在固定的时间段内消费了几次。这个指标反映了用户的消费活跃度。
M是指用户消费金额,其实就是用户在固定的周期内在平台上花了多少钱,直接反映了用户对公司贡献的价值。
而RFM模型就是通过一个客户的近期购买行为、购买的总体频率以及花了多少钱三项指标,来描述该客户的价值状况。
二、RFM模型有什么作用?
RFM模型可以对客户的终生价值做一个合理的预估,基于一个理想的客户特征来衡量现实中客户价值的高低,通过此类分析,定位最有可能成为品牌忠诚客户的群体,让我们把主要精力放在最有价值的用户身上。
三、怎么构建RFM模型?
下面我们就直接开始进行实操教程,以某家零售商的销售数据为数据源,针对其用户行为简单分析一下,总结来说有下面几个步骤:
1、人群划分
进行客户行为分析的第一步是按照企业实际业务需求对您的客户群进行分类,人群细分参考的属性主要分为三大类:
- 基础属性:如性别、年龄、地域
- 兴趣属性:如媒体偏好、交易行为
- 自定义属性:基于行业的特征定义的属性,比如乳业需要知道这个人有没有孩子
2、明确指标
也就是通过excel或者BI工具计算出每个客户的RFM指标,这里我用的是FineBI,通过客户名称、消费时间、消费金额来处理出上次交易间隔R、交易频率F、交易金额M三个原始字段,如下图所示。
但是要注意的是这三个指标不是死板不变的,要针对自己的行业特点灵活变通,比如在金融行业,最近一次购买时间可能并不适用,此时可以考虑采用金融产品持有时间来代替R,这样更能体现用户与金融企业建立联系时间的长短。
而我们这次要使用的数据指标有四个,分别为“订单额”、“订单量”、“下单时间”和“客户方”,其他指标如“订单类型”、“地区”等我们暂时先不用。
3、数据连接
finebi中设置了很多的数据连接方式,可以通过oracle等数据库进行连接、sql连接等等,这里我直接导入的Excel表,能方便地处理非及时性数据。
如果我们有多个数据源的数据,需要分别选择不同的指标整合到一起分析怎么办?
这里我发现finebi有个非常人性化的优点,就是可以通过自助数据集的方式对数据指标进行整合,如下图所示直接选择新建自助数据集—选择数据表—添加字段即可,需要什么指标就去哪张表里去找,很方便。
4、数据清洗
在进行数据分析之前,我们首先要做的就是对数据进行初步加工,因为数据源中很多脏数据,会影响我们的分析结果,需要先将其筛选出去,比如一些空值、异常值、特殊文本显示等等。
finebi的数据加工中包含了很多处理功能,比如过滤、分组汇总、排序、合并、聚合等等,这些功能我们后面都会用到,这里我们先增加两个过滤条件,将订单金额小于等于零、且订单时间为空的数据筛选出去。
我们通过上面的数据表可以看出,同一个客户如果下单两次,就会产生两个数据,而RFM模型中要求的数据是“最近一次下单时间”、“最近一段时间内的下单次数”以及“最近一段时间内的购买金额”,因此我们要想办法计算用户行为次数。
具体方法是新增一列,命名为“次数”,数值设为常数1,主要目的是为了后面方便计算个数,同一个客户出现了多少次数值1,就说明下单了几次;
然后我们选择“分组汇总”,以“客户名”为主要汇总项,“次数”项选择加和汇总,代表某个客户出现了几次;同时将“订单时间”设置为“最晚时间”,也就是距离今天最近的一次消费时间,这样基本的数据清洗就完成了。
但是因为还要计算客户最近一次购买有多远,而数据表中仅仅是下单时间,所以需要用函数计算一下下单时间与今天的天数,但finebi不用那么麻烦,可以直接计算时间差:
5、切分指标
因为我们要把用户按照三个维度指标进行划分,也就相当于将用户放到下面这个正方体中:
因此我们要对指标进行切分,设定阈值,也就是为指标设定正负值,确保三个指标将用户分为八个象限。通常比较常用的方法就是等频和等宽进行切分,比如将用户购买花费进行平均值计算。
但是平均值只适合于均类数据,对于一些不规则数据,平均值会造成很大的误差:
比如一家公司有三家客户,订单额分别为1万、5千和1百,显然重要客户应该是前两个。而三个客户的订单平均值为5033,如果按照平均值划分数据,那么只有第一个客户符合重要客户的标准,这显然是不对的。
这时候我们就要用到聚合的功能,简单说,聚合功能就是一堆数据按照内在特征的不同进行划分,不同类的数据之间的差别一般是很大的,这样就能找到大数据量中的“中心点”,而非平均点。
在FineBI中我们可以直接使用聚合功能,聚合指标选择“订单金额“、”时间“、”次数“,聚合数选择”3“,聚合方式选择”欧氏距离“,这样就可以得到最终的聚合结果了,最终可以计算出每个客户的聚合R值、聚合F值和聚合M值,这就是我们要用到的参考值。
有了参考值,下一步就是将时间、频次与订单额与参考值进行比较,这里我们会用到finebi中的逻辑函数IF,新建一列为R,具体函数为:
- IF(时间<时间中心点,1,0)
其含义为如果时间列中的数据大于聚合之后的时间中心点,如果小于聚合R值,则为1,反之则为0;
同理对其他两个指标也进行划分,这样指标细分工作基本上就完成了。
6、用户分类
我们将三个指标分别进行划分后,按照下图的方式进行组合,就可以得到八个象限,代表8类客户:
在finebi中我们先新增一列为RFM值,为了方便分组,我们的计算公式为R*100+F*10+M,也就能得出0、1、10、11、100、101、110、111八个不同的值,分别代表八种客户类型。
这样我们的用户细分也就完成了。
7、可视化分析
利用FineBI对客户进行细分,可以将其制作成可视化数据分析模板,以便我们按照需求进行客户分析。
- 例如图中的面积图,可以显示出该公司各类客户的占比,显而易见一般挽留客户与一般发展客户占据多数,说明该公司的用户结构不是很合理,需要尽快采取措施进行优化;
- 而右侧的环形图则代表着各种类型客户的购买数量,可以看出复购率越高、愿意花大价钱的客户买的数量越多;
- 左侧的仪表盘代表着某种类型客户的数量,而下方的详细图则详细展示了某家客户的类型和对应的R、F、M值。
总结
其实RFM在用户行为分析中的应用十分广泛,因为时间原因这里就只是做一个简单的教程,FineBI中也有更多的相关数据可供大家练习!
注:finebi下载链接,可以后台私信回复我“数据分析”获得!
转载:https://blog.csdn.net/yuanziok/article/details/103955076