RFM 分析是一种用于洞悉客户价值和行为的强大工具,广泛应用于市场营销和客户关系管理。本文将介绍 RFM 分析如何在数据产品不充分的情况下实现以及如何利用RFM分析来优化营销策略,提高客户满意度,增加业务收益。
RFM 的概念( Recency , Frequency , Monetization )是一种客户分类和预测的分析模型,用于识别最有价值的客户和预测他们未来的购买行为。它的三个维度分别是最近一次购买的时间、购买频率和客户生命周期价值。RFM模型可以帮助企业了解客户的消费习惯和需求,以便更好地为客户提供个性化的产品和服务,从而提高客户忠诚度和增加销售收入。
回归到一个问题,数据分析可以使用的用户分层模型茫茫多,为什么就一定要是RFM模型?选择模型一定是基于当前的业务场景和业务需求,从可行性及优劣势考虑是最匹配当前需求的。同时,越简单的模型带来快速的理解以及实现;
模型名称 | 优势 | 劣势 |
---|---|---|
RFM 模型 | - 相对简单,易于理解和实施。- 基于用户的实际交易行为。- 可用于识别高价值客户和流失客户。 | - 只关注了交易行为,忽略了其他因素。- 需要大量的历史交易数据。 |
客户细分模型(如地理位置、购买历史、产品偏好) | - 提供了更全面的用户洞察。- 可根据不同业务需求定义各种细分标准。 | - 需要多维度数据,可能需要数据清洗和处理。- 定义细分标准需要主观判断。 |
协同过滤模型(基于用户相似性) | - 个性化推荐,提高用户体验。- 可发现潜在的兴趣和交叉销售机会。 | - 对新用户或冷启动问题不够适用。- 数据稀疏性可能导致模型不准确。 |
生命周期价值( CLV )模型 | - 评估客户的长期价值,有助于制定长期策略。- 考虑了客户的购买历史和保留率。 | - 需要历史数据和长期观察。- 预测未来可能不准确。 |
漏斗分析模型 | - 识别流失点和改进转化率。- 可用于优化购买路径。 | - 仅关注了特定的用户流程。- 需要大量的事件数据。 |
社交网络分析模型(分析用户在社交网络中的连接) | - 识别影响力用户和信息传播模式。- 用于社交媒体营销和口碑营销。 | - 仅适用于与社交网络相关的业务。- 数据收集可能有挑战。 |
笔者的业务是供应链平台 TO B 服务,当前主要聚焦的服务模式在用户进入平台完成注册、访问及交易转化。以下为业务识别的内容:
业务识别 | 说明 |
---|---|
产品阶段 | MVP 阶段,注重核心用户体验,挖掘用户痛点 |
业务阶段重心 | 拉新拓客、提升留存 |
业务模式 |
平台获取:通过互联网这个工具,我们可以通过像数据仓库这样的工具,帮助我们更深入地获取和分析数据。
观察调研:这种方法通常用于用户研究,通过用户访谈和问卷调查等方式收集特定人群对产品或服务的反馈数据,了解他们的需求和行为特征。
问卷调查:这是一种传统的获取数据的方式,包括纸质问卷和互联网问卷两种形式,主要用于收集用户对产品或服务的反馈数据,从而了解市场和用户需求。
公开信息:包括国家统计数据、地方政府公开数据、上市公司年报、季报等,这些都可以从互联网上获取。
付费数据:在市场上,有一些产品化数据交易平台提供多领域的付费数据资源,可以按需购买使用。
数据清洗主要关注数据的质量和精度。它的目标是识别和修正数据中的错误和不一致性,以提高数据的质量和准确性,为后续的数据分析和建模提供可靠的基础。数据预处理包括数据集成、数据转换和数据规约等过程,旨在消除数据中的噪声、冗余和不一致性,使数据更加适合进行分析和建模。
指标 | 关系 |
---|---|
Recency (最近购买时间) & Frequency (购买频率) | Recency 和 Frequency 通常呈负相关关系。最近购买过的客户可能购买频率较低,因为他们可能刚买完商品,需求被满足,因此短时间内不再购买。相反,购买频率高的客户可能最近没有购买,因为他们可能经常购买商品,需求被满足,因此短时间内不再购买。 |
Recency (最近购买时间) & Monetary (购买金额) | Recency 和 Monetary 通常呈正相关关系。最近购买过的客户可能购买金额较高,因为他们可能购买更多的商品或者更贵的商品。相反,购买金额高的客户可能最近没有购买,因为他们可能已经购买了足够的商品,需求被满足,因此短时间内不再购买。 |
Frequency (购买频率) & Monetary (购买金额) | Frequency 和 Monetary 通常呈正相关关系。购买频率高的客户可能购买金额较高,因为他们可能需要更多的商品或者更贵的商品。相反,购买金额高的客户可能购买频率较低,因为他们可能已经购买了足够的商品,需求被满足,因此短时间内不再购买。 |
当计算最近一次交易时间时,我们需要确定适当的时间窗口,对于该场景,最近一次的供应链交易日期和最近一次的网超交易日期相对重要。
'''
select
company_id as "机构id",
company_name as "机构名称",
max_pur_date as "最近一次交易距今日期时间"
from main_table
# 定义最近交易天数间隔区间和对应的分值
transaction_interval_mapping = {
(0, 7): 5,
(8, 14): 4,
(15, 30): 3,
(31, 90): 2,
(91, float('inf')): 1
}
'''
交易频率的最直观指标就是交易订单的数量,我们通过聚合客户近一个月的交易订单数以及历史累计的交易订单数去进行分析;同时根据不同的场景,我们需要充分考虑和权衡各种因素,去选择交易的不同类型,进行分析。
'''
select
company_id as "机构id",
company_name as "机构名称",
coalesce(pur_cnt_30,0) as "近30天交易订单数"
from main_table
# 定义访问天数区间和对应的分值
visit_interval_mapping = {
(0, 1): 1,
(1, 3): 2,
(4, 7): 3,
(8, 14): 4,
(15, 30): 5
}
'''
首先我们需要将每个客户的交易金额进行汇总。形成一个累计的交易金额或者是一个特定时间窗口内的交易金额,比如一个月。然后将汇总的交易金额按照一定的规则进行分组。最后针对每个等级,计算其交易金额的占比。
'''
select
company_id as "机构id",
company_name as "机构名称",
coalesce(pur_amt_30,0) as "近30天交易金额"
from main_table
'''
概念 | 使用 RFM 体系将客户分成不同的群组的方法主要是根据客户的 Recency 、 Frequency 和 Monetary 三个指标进行划分 |
---|---|
使用 RFM 体系将客户分成不同的群组 | 收集客户的购买数据,包括购买时间、购买频率和购买金额等信息。根据这些数据,计算出每个客户的 Recency 、 Frequency 和 Monetary 指标。根据这些指标,将客户分成不同的群组。例如,可以根据 Recency 指标将客户分为 “ 近期的 ” 和 “ 非近期的 ”,根据 Frequency 指标将客户分为 “ 高频购买的 ” 和 “ 低频购买的 ”,根据 Monetary 指标将客户分为 “ 高金额购买的 ” 和 “ 低金额购买的 ”。对不同的群组进行分析,了解他们的特点和需求,以便制定相应的商业策略。 |
目的 | 提高营销效果:通过将客户分成不同的群组,可以针对不同群组的特点和需求,制定不同的营销策略,提高营销效果。优化客户管理:通过将客户分成不同的群组,可以针对不同群组的特点,制定不同的客户管理策略,提高客户满意度和忠诚度。提高预测准确性:通过将客户分成不同的群组,可以对不同群组的购买行为进行预测,以便更好地规划生产和库存管理。 |
'''
# 定义函数将分值映射为标签
def label_mapping(value, median):
if value <= median:
return '低'
else:
return '高'
# 根据中值将R、F、M分值映射为标签
df_rfm_clean['R_Label'] =
df_rfm_clean['R_Merged_Score_Normalized'].apply(lambda x: label_mapping(x,
R_median))
df_rfm_clean['F_Label'] =
df_rfm_clean['F_Merged_Score_Normalized'].apply(lambda x: label_mapping(x,
F_median))
df_rfm_clean['M_Label'] = df_rfm_clean['M_Score_Normalized'].apply(lambda
x: label_mapping(x, M_median))
# 定义客户标签映射字典
customer_label_mapping = {
('低', '低', '低'): '一般挽留用户',
('高', '低', '低'): '一般发展用户',
('低', '高', '低'): '一般保持用户',
('高', '高', '低'): '一般价值用户',
('低', '低', '高'): '重要挽留用户',
('高', '低', '高'): '重要发展用户',
('低', '高', '高'): '重要保持用户',
('高', '高', '高'): '重要价值用户'
}
# 根据R、F、M的标签组合生成最终的客户标签列
df_rfm_clean['Label of Customer'] = df_rfm_clean.apply(
lambda row: customer_label_mapping.get((row['R_Label'],
row['F_Label'], row['M_Label'])),
axis = 1)
'''
RFM 细分 | 特征 | 个性化营销策略 |
---|---|---|
1. 重要价值用户 (↑↑↑) | 最近一次购买时间短、购买频率高、金额大、高访问频率、最后一次访问时间短 | - 发送特定产品的折扣券或促销信息 |
2. 重要召回用户 (↑↑↓) | 最近一次购买时间短、购买频率高、金额小、高访问频率、最后一次访问时间短 | - 发送满减券 |
3. 重要发展用户 (↑↓↑) | 最近一次购买时间短、购买频率中、金额大、高访问频率、最后一次访问时间短 | - 提供 VIP 会员权益 |
4. 重要挽留用户 (↑↓↓) | 最近一次购买时间短、购买频率中、金额小、高访问频率、最后一次访问时间短 | - 提供积分奖励 |
5. 一般价值用户 (↓↑↑) | 最近一次购买时间中、购买频率高、金额大、中访问频率、最后一次访问时间中 | - 提供购物建议 |
6. 一般召回用户 (↓↑↓) | 最近一次购买时间中、购买频率高、金额小、中访问频率、最后一次访问时间中 | - 发送激励性促销信息 |
7. 一般发展用户 (↓↓↑) | 最近一次购买时间中、购买频率中、金额大、中访问频率、最后一次访问时间中 | - 提供新产品预告 |
8. 一般发展用户 (↓↓↓) | 最近一次购买时间长、购买频率低、金额小、低访问频率、最后一次访问时间中 | - 发送感谢信,赠送礼品 |
在以上内容中,我们探讨了使用 RFM 模型进行用户分群的方法和步骤,包括业务定义与用户识别、构建 RFM 体系、 RFM 分群实践以及 RFM 分群的应用。通过对客户进行更精细的分类,并在此基础上制定个性化营销策略、客户生命周期管理策略以及产品和业务推广策略等。这些策略的优化可以提高客户的价值与忠诚度,进而提高企业的业务效益。