M2. 客户生命周期价值 (CLV) 决策¶
案例来源: PyMC-Marketing
决策类型: 客户获取/保留预算决策
方法论: BG-NBD + Gamma-Gamma 概率模型
预计阅读时间: 14 分钟
1. 决策背景¶
业务场景¶
某电商平台 500 万用户,面临 CLV 管理挑战: - 获客成本:¥200/人 (逐年上升) - 用户流失:月均 5% - 营销预算:¥100M/年 - 预算分配:获取 70% vs 保留 30% (凭经验)
决策目标¶
- 准确预测 CLV (误差<20%)
- 识别高价值用户
- 优化获取 vs 保留预算
- 提升营销 ROI
2. 方法论:概率 CLV 模型¶
BG-NBD 模型 (购买频率)¶
Gamma-Gamma 模型 (客单价)¶
CLV 计算公式¶
3. 模型实现¶
数据准备¶
import pandas as pd
# RFM 数据
data = pd.read_csv('transactions.csv')
# 构建 RFM 矩阵
rfm = data.groupby('customer_id').agg({
'date': ['min', 'max'],
'amount': ['count', 'mean']
})
# 计算
today = data['date'].max()
rfm.columns = ['recency', 'frequency', 'monetary_value', 'avg_amount']
rfm['recency'] = (today - rfm['recency']).dt.days
rfm['frequency'] = rfm['frequency'] - 1 # 减去首次购买
BG-NBD 拟合¶
from pymc_marketing import clv
# 模型拟合
bg_nbd = clv.BetaGeoFitter()
bg_nbd.fit(
frequency=rfm['frequency'],
recency=rfm['recency'],
T=365 # 观察期 365 天
)
# 预测未来购买
rfm['expected_purchases'] = bg_nbd.expected_purchases(
t=180, # 未来 180 天
frequency=rfm['frequency'],
recency=rfm['recency'],
T=365
)
# 存活概率
rfm['alive_probability'] = bg_nbd.conditional_probability_alive(
frequency=rfm['frequency'],
recency=rfm['recency'],
T=365
)
Gamma-Gamma 拟合¶
from pymc_marketing import clv
# 客单价模型
gg = clv.GammaGammaFitter()
gg.fit(
frequency=rfm['frequency'],
monetary_value=rfm['avg_amount']
)
# 预测客单价
rfm['expected_avg_amount'] = gg.conditional_expected_average_profit(
frequency=rfm['frequency'],
monetary_value=rfm['avg_amount']
)
CLV 计算¶
# 180 天 CLV
profit_margin = 0.3 # 30% 利润率
rfm['clv_180d'] = (
rfm['expected_purchases'] *
rfm['expected_avg_amount'] *
profit_margin
)
# 分群
rfm['clv_segment'] = pd.qcut(
rfm['clv_180d'],
q=4,
labels=['Low', 'Medium', 'High', 'Premium']
)
4. 决策实施¶
客户分群策略¶
| 细分 | 占比 | CLV 范围 | 策略 | 预算/人 |
|---|---|---|---|---|
| Premium | 10% | >¥5000 | 专属客服 + 优先体验 | ¥500 |
| High | 20% | ¥2000-5000 | 个性化推荐 + 优惠券 | ¥200 |
| Medium | 40% | ¥500-2000 | 常规营销 | ¥50 |
| Low | 30% | <¥500 | 自动化营销 | ¥10 |
预算优化¶
# 基于 CLV 的预算分配
total_budget = 100_000_000 # ¥1 亿
budget_allocation = {
'acquisition': total_budget * 0.5, # 从 70% 降至 50%
'retention_premium': total_budget * 0.2,
'retention_high': total_budget * 0.2,
'retention_medium': total_budget * 0.08,
'retention_low': total_budget * 0.02
}
# 预期回报
expected_return = {
segment: count * clv * response_rate
for segment, (count, clv, response_rate) in segment_data.items()
}
5. 决策结果¶
模型性能¶
| 指标 | 目标 | 实际 | 说明 |
|---|---|---|---|
| CLV 预测误差 | <20% | 15% | MAPE |
| 高价值识别率 | >80% | 85% | Precision |
| 流失预警准确率 | >75% | 78% | AUC |
业务影响¶
| 指标 | 实施前 | 实施后 | 改善 |
|---|---|---|---|
| 营销 ROI | 1:2.5 | 1:4.2 | +68% |
| 获客成本 | ¥200 | ¥165 | -17.5% |
| 用户流失率 | 5%/月 | 3.5%/月 | -30% |
| 高价值用户占比 | 25% | 32% | +28% |
财务价值¶
年度收益: - 营销效率提升:¥100M × (4.2-2.5)/2.5 = ¥68M - 减少流失损失:¥50M - 总收益: ¥118M/年
投入: - 系统建设:¥3M - 年度运营:¥1M - ROI: 39 倍
6. 关键洞察¶
CLV 分布规律¶
最佳干预时机¶
| 时机 | 成功率 | 成本 |
|---|---|---|
| 首次购买后 30 天 | 65% | ¥50 |
| 购买间隔延长 50% | 50% | ¥30 |
| 浏览未购买 7 天 | 40% | ¥20 |
| 收到投诉后 | 70% | ¥100 |
案例版本: v1.0 | 最后更新: 2026-06-03