4. 信用额度定价核心指标:PD、LGD、EAD 的计算逻辑

信用额度定价的核心在于准确量化风险,而风险量化的三大支柱指标是:违约概率(PD)、违约损失率(LGD) 和 违约风险暴露(EAD)。这三个指标共同构成了预期损失(EL)的计算基础:

预期损失公式: EL = PD × LGD × EAD

在流式决策链路中,每个指标都需要实时计算或动态更新,以反映客户最新的信用状况。下面逐一拆解其计算逻辑与Spark实现要点。

4.1 违约概率(PD)

PD 衡量借款人在未来一定时期内(通常为12个月)发生违约的可能性。在流式场景下,PD 需要根据客户行为数据(如还款记录、交易频次)实时调整。

4.1.1 计算逻辑

  • 逻辑回归模型: 使用历史样本训练,输入特征包括征信评分、收入负债比、近期查询次数等,输出0~1之间的概率值。
  • 评分卡映射: 将模型输出的概率通过分段函数映射为信用评分,再反查对应PD。
  • 实时校准: 在流式管道中,每收到一条新交易或还款事件,触发特征更新,重新计算PD。

4.1.2 Spark 流式实现要点

// 伪代码:使用 Structured Streaming 实时计算 PD
val pdModel = LogisticRegressionModel.load("path/to/model")

val streamingDF = spark.readStream
  .format("kafka")
  .option("subscribe", "customer_events")
  .load()

val featuresDF = streamingDF
  .selectExpr("cast(value as string) as json")
  .select(from_json($"json", schema).as("data"))
  .select(
    $"data.customer_id",
    assembleFeatures($"data")  // UDF 组装特征向量
  )

val pdDF = pdModel.transform(featuresDF)
  .select($"customer_id", $"probability" as "pd")
流式优化提示: 使用 mapGroupsWithState 维护每个客户的特征状态,避免每次全量重算,降低延迟。

4.2 违约损失率(LGD)

LGD 表示一旦违约,银行可能损失的金额比例(0%~100%)。它取决于抵押品价值、回收流程和优先级。

4.2.1 计算逻辑

  • 历史回收率法: LGD = 1 - (回收金额 / 违约时暴露额)。基于同类型产品(如抵押贷、信用贷)的历史回收数据统计。
  • 抵押品折价模型: 根据抵押品类型(房产、车辆)和市场波动,动态估算变现折扣率。
  • 宏观调整因子: 在经济下行期,LGD 通常上调10%~20%。

4.2.2 产品类型与 LGD 参考

产品类型典型 LGD 范围关键影响因素
住房抵押贷款10% - 30%房产估值、首付比例
汽车贷款30% - 50%车辆折旧率、回收渠道
信用卡循环贷70% - 90%无抵押、回收成本高
小微企业信用贷50% - 80%担保情况、行业风险

4.3 违约风险暴露(EAD)

EAD 指违约发生时,银行面临的风险敞口总额。对于循环额度(如信用卡),EAD 需要估算当前已用额度与未来可能提款的部分。

4.3.1 计算逻辑

  • 固定额度产品: EAD = 当前未偿还本金 + 应计利息。
  • 循环额度产品: EAD = 当前已用额度 + (授信总额 - 已用额度) × 信用转换系数(CCF)。
  • CCF 估算: 基于历史数据,统计违约前客户的平均提款比例,通常为20%~50%。

4.3.2 流式 EAD 更新

// 伪代码:实时计算循环额度 EAD
val eadStream = usageStream
  .groupByKey(_.customer_id)
  .mapGroupsWithState(GroupStateTimeout.ProcessingTimeTimeout) {
    case (cid, events, state) =>
      val currentUsage = events.last.amount
      val creditLimit = state.getOption.getOrElse(loadLimit(cid))
      val ccf = 0.35  // 默认 CCF
      val ead = currentUsage + (creditLimit - currentUsage) * ccf
      (cid, ead)
  }

4.4 三指标联动与预期损失计算

在流式决策链路中,PD、LGD、EAD 并非孤立计算,而是通过一个统一的 Spark 流式管道协同更新:

流式信用额度定价:PD × LGD × EAD 联动计算 客户行为事件流 外部征信数据 Spark 流式特征工程(状态管理 + 窗口聚合) PD 模型推理 LGD 查表/模型 EAD 实时估算 EL = PD × LGD × EAD

4.5 流式场景下的关键挑战与应对

挑战描述Spark 应对方案
特征时效性PD 依赖最新行为,延迟过高会导致定价偏差使用 mapGroupsWithState 维护每个客户的最新特征快照
LGD 动态调整抵押品价值随市场波动,需要定期更新旁路广播变量,每日从 Hive 加载最新 LGD 参数表
EAD 高并发循环额度产品每秒可能产生数万笔交易使用 Kafka 分区 + Spark 水位线控制,避免背压
模型版本管理PD 模型需要灰度上线和回滚模型路径作为配置参数,通过 Redis 或 Zookeeper 动态切换
注意: 在流式管道中,PD、LGD、EAD 的计算频率可能不同。PD 可以每笔交易更新,LGD 每日更新,EAD 实时计算。务必在 EL 聚合时对齐时间窗口,避免使用不同时间粒度的指标相乘。

4.6 小结