2. 收益优化目标函数:利润最大化、风险调整后收益(RAROC)、客户生命周期价值(LTV)建模

信用额度定价的核心在于收益优化。单纯追求高利率或高额度,往往导致风险失控;过度保守则损失优质客户与利润。本章系统讲解三种主流的收益优化目标函数:利润最大化、风险调整后收益(RAROC)与客户生命周期价值(LTV),并阐述其在训练集切分与模型迭代中的具体应用。

2.1 三种目标函数的对比与选择

在信用额度定价模型中,目标函数直接决定了模型优化的方向。下表从核心公式、优化焦点、适用场景三个维度进行对比:

目标函数 核心公式(简化) 优化焦点 适用场景
利润最大化 Profit = 利息收入 + 手续费 - 预期损失 - 资金成本 - 运营成本 单期或短期净收益 短期促销、现金贷、单期产品
RAROC RAROC = (收益 - 预期损失) / 经济资本 风险调整后的资本回报率 银行信贷、资本充足率约束场景
LTV LTV = Σ (未来各期净现金流 × 折现因子) 长期客户关系价值 循环信贷、信用卡、高粘性产品
实践建议: 对于信用卡或循环额度产品,建议以 LTV 作为长期优化目标,同时将 RAROC 作为风险约束条件,避免过度追求长期价值而忽视短期资本效率。

2.2 利润最大化:短期收益的基准模型

利润最大化是最直观的目标函数,通常用于单期决策或短期策略。其核心在于准确估计每个客户在给定额度下的收入与成本。

  • 收入项: 利息收入(取决于使用率、利率)、分期手续费、年费、交叉销售佣金。
  • 成本项: 预期信用损失(ECL)、资金成本(FTP)、运营成本(审批、催收、系统维护)。

在训练集切分时,利润最大化模型通常使用滚动窗口方式:以过去 6-12 个月的表现期作为标签,预测未来 1-3 个月的利润。这种切分方式对数据时效性敏感,适合快速迭代的营销场景。

关键公式: 单客户利润 = (额度 × 使用率 × 利率) + 手续费 - (PD × LGD × 额度) - (资金成本率 × 额度) - 固定运营成本

2.3 RAROC:风险调整后的资本回报率

RAROC 是银行和持牌金融机构最常用的风险收益指标。它将收益与经济资本挂钩,确保每一单位资本都能产生足够的风险调整后回报。

RAROC 的计算步骤:

  1. 计算预期收益: 利息收入 + 非利息收入 - 资金成本 - 运营成本。
  2. 计算预期损失: PD × LGD × EAD(违约概率 × 违约损失率 × 违约风险敞口)。
  3. 计算经济资本: 基于非预期损失(UL)或监管资本要求,通常使用 Vasicek 模型或内部模型。
  4. 计算 RAROC: (预期收益 - 预期损失) / 经济资本。

在额度定价中,RAROC 通常作为约束条件:只有 RAROC 高于机构最低门槛(如 15%)的额度方案才被采纳。训练集切分时,需要同时保留违约样本和正常样本,并确保经济资本模型在时间序列上的稳定性。

注意: RAROC 对经济资本的估计非常敏感。在训练集切分时,建议使用 跨周期验证(如跨越一个完整经济周期),避免模型在顺周期时高估 RAROC,导致风险积累。

2.4 LTV:客户生命周期价值建模

LTV 是循环信贷产品(如信用卡、备用金)最理想的优化目标。它衡量一个客户在整个关系存续期内,为机构带来的净现值。

LTV 建模的典型流程:

  • 阶段 1: 预测客户留存率(Survival Model / 迁移矩阵)。
  • 阶段 2: 预测各期使用率与收入(时间序列模型 / 回归)。
  • 阶段 3: 预测各期违约概率与损失(生存分析 + 信用评分)。
  • 阶段 4: 折现求和,得到 LTV。

LTV 建模对训练集切分有特殊要求:

  1. 观察期与表现期: 需要足够长的表现期(通常 24-36 个月)来捕捉客户完整生命周期。
  2. 截断处理: 对于仍在活跃的客户,使用右截断(Right-censoring)技术,避免低估 LTV。
  3. 时间切片: 将客户历史数据按月或按季度切片,形成面板数据(Panel Data),用于训练时序模型。

2.5 三种目标函数的融合与训练集切分策略

在实际工业级额度定价系统中,三种目标函数并非互斥,而是形成分层决策架构。下面的 SVG 图展示了这种融合关系:

收益优化目标函数融合架构 客户特征 + 额度方案 利润最大化 RAROC LTV 短期利润预测 资本回报率 长期净现值 多目标融合决策引擎 最优额度定价方案 训练集切分需为每个目标函数保留独立的表现期窗口,并通过融合层统一决策

2.6 训练集切分与目标函数的对齐

不同的目标函数对训练集的时间窗口、标签定义、样本权重有不同的要求。下表总结了针对三种目标函数的推荐切分策略:

目标函数 观察期长度 表现期长度 标签定义 样本权重
利润最大化 6-12 个月 1-3 个月 单期利润(连续值) 等权或按利润绝对值加权
RAROC 12-24 个月 6-12 个月 RAROC 值(连续值) 按经济资本占比加权
LTV 24-36 个月 12-24 个月 LTV 净现值(连续值) 按留存概率加权
工程实践: 在训练集切分时,建议为每个目标函数建立独立的 数据管道(Data Pipeline)。例如,LTV 模型需要面板数据(Panel Data),而利润最大化模型只需要横截面数据(Cross-sectional Data)。统一的数据湖(Data Lake)设计可以大幅降低维护成本。

2.7 代码示例:基于 LTV 的额度优化目标函数

以下 Python 代码展示了如何计算单个客户的 LTV,并将其作为额度优化的目标函数:

import numpy as np

def calculate_ltv(credit_limit, usage_rate, interest_rate, retention_probs,
                  pd_probs, lgd, discount_rate=0.05, periods=24):
    """
    计算客户生命周期价值 (LTV)

    参数:
        credit_limit: 信用额度
        usage_rate: 各期使用率 (array)
        interest_rate: 各期利率 (array)
        retention_probs: 各期留存概率 (array)
        pd_probs: 各期违约概率 (array)
        lgd: 违约损失率 (float)
        discount_rate: 年化折现率
        periods: 预测期数 (月)

    返回:
        ltv: 生命周期价值 (净现值)
    """
    ltv = 0.0
    for t in range(periods):
        # 留存概率
        survival = np.prod(retention_probs[:t+1])
        # 预期收入
        income = credit_limit * usage_rate[t] * interest_rate[t]
        # 预期损失
        loss = credit_limit * pd_probs[t] * lgd
        # 净现金流
        net_cf = income - loss
        # 折现
        discount_factor = 1 / (1 + discount_rate/12) ** (t+1)
        ltv += survival * net_cf * discount_factor
    return ltv

# 示例:不同额度方案下的 LTV 对比
limits = [10000, 20000, 30000]
for lim in limits:
    ltv_val = calculate_ltv(
        credit_limit=lim,
        usage_rate=np.array([0.6, 0.5, 0.4, 0.3, 0.2]*5),
        interest_rate=np.array([0.015]*24),
        retention_probs=np.array([0.95, 0.92, 0.90, 0.88, 0.85]*5),
        pd_probs=np.array([0.01, 0.015, 0.02, 0.025, 0.03]*5),
        lgd=0.6
    )
    print(f"额度 {lim}: LTV = {ltv_val:.2f} 元")
输出解读: 上述代码会输出不同额度下的 LTV 值。通常,LTV 随额度增加呈现 先升后降 的趋势——初期额度提升带来更多利息收入,但超过某个阈值后,违约损失和资金成本会侵蚀利润。最优额度即 LTV 曲线最高点对应的额度。

2.8 本章小结