Skip to content

F4. 客户流失预警决策

案例来源: lifelines + TatevKaren-data-science-portfolio
决策类型: 客户保留干预
方法论: 生存分析 + 时间到事件预测
预计阅读时间: 12 分钟


1. 决策背景

业务场景

某电信运营商 1000 万用户,面临客户流失: - 月流失率:3% (30 万用户/月) - 获客成本:¥300/人 - 流失损失:¥90M/月 - 挽留预算:¥20M/月

决策目标

  • 提前 30 天预测流失风险
  • 识别高价值流失用户
  • 精准干预 (避免骚扰)
  • 挽留成功率 > 40%

2. 方法论:生存分析

为什么用生存分析?

传统分类模型问题: - 无法处理删失数据 (未流失用户) - 忽略时间维度 - 无法回答"何时流失"

生存分析优势: - ✅ 处理删失数据 - ✅ 预测时间到事件 - ✅ 输出风险函数

核心概念

生存函数 S(t): 用户在时间 t 仍存活的概率
风险函数 h(t): 用户在时间 t 流失的瞬时概率
中位生存时间:50% 用户流失的时间点

3. 模型实现

Cox 比例风险模型

from lifelines import CoxPHFitter

# 数据准备
data = pd.read_csv('customer_data.csv')
# 特征:tenure, monthly_charges, contract_type, complaints, ...

# 模型训练
cph = CoxPHFitter(penalizer=0.1)
cph.fit(data, duration_col='tenure', event_col='churned')

# 风险比
print(cph.summary)

风险评分计算

# 计算个体风险评分
data['risk_score'] = cph.predict_partial_hazard(data)

# 分群
data['risk_group'] = pd.qcut(
    data['risk_score'], 
    q=4, 
    labels=['Low', 'Medium', 'High', 'Critical']
)

生存曲线

# 绘制不同群体的生存曲线
groups = data.groupby('risk_group')

for name, grouped in groups:
    kmf = KaplanMeierFitter()
    kmf.fit(grouped['tenure'], event_observed=grouped['churned'], 
            label=name)
    kmf.plot_survival_function()

4. 决策实施

干预策略矩阵

风险等级 占比 干预方式 成本 预期成功率
Critical 10% 电话 + 优惠 ¥100 50%
High 20% 短信 + 优惠 ¥50 40%
Medium 30% APP 推送 ¥10 25%
Low 40% 无干预 ¥0 -

干预时机

# 预测未来 30 天流失概率
data['churn_prob_30d'] = 1 - cph.predict_survival_function(
    data, 
    times=30
)

# 选择干预目标
intervention_target = data[
    (data['churn_prob_30d'] > 0.5) & 
    (data['clv'] > 1000)  # 高价值用户
]

5. 决策结果

模型性能

指标 说明
C-index 0.78 区分能力
30 天 AUC 0.82 预测准确度
中位生存时间 18 月 平均在网时长

业务影响

指标 实施前 实施后 改善
月流失率 3.0% 2.1% -30%
挽留成功率 25% 45% +80%
干预成本 ¥30M/月 ¥18M/月 -40%
流失损失 ¥90M/月 ¥63M/月 -30%

ROI 分析

月度收益: - 减少流失损失:¥27M - 节约干预成本:¥12M - 总收益: ¥39M/月

投入: - 系统建设:¥5M - 月度运营:¥2M - ROI: 19.5 倍 (首月回本)


6. 关键洞察

流失风险因子

因子 风险比 解释
投诉次数>3 3.5x 投诉是强信号
合约到期 2.8x 合约期是关键节点
月费上涨 2.2x 价格敏感
使用量下降 1.8x 行为变化

干预最佳时机

合约到期前 60 天:成功率 55%
合约到期前 30 天:成功率 45%
合约到期后:成功率 20%

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