Skip to content

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 模型 (购买频率)

假设:
- 用户在"活跃"和"流失"状态间转换
- 购买遵循泊松过程
- 流失概率随时间增加

输出:
- P(用户仍活跃)
- 预期未来购买次数

Gamma-Gamma 模型 (客单价)

假设:
- 客单价随时间稳定
- 个体间客单价存在差异

输出:
- 预期客单价
- 个体客单价收缩估计

CLV 计算公式

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 分布规律

10% 用户贡献 60% 利润
20% 用户贡献 30% 利润
70% 用户贡献 10% 利润 (或亏损)

最佳干预时机

时机 成功率 成本
首次购买后 30 天 65% ¥50
购买间隔延长 50% 50% ¥30
浏览未购买 7 天 40% ¥20
收到投诉后 70% ¥100

案例版本: v1.0 | 最后更新: 2026-06-03