2. 信用风险基础:违约概率(PD)、违约损失率(LGD)、违约风险敞口(EAD)的定义与计算逻辑

信用风险是信用额度定价的核心输入。在巴塞尔协议与内部评级法(IRB)框架下,信用风险由三个关键参数构成:违约概率(PD)、违约损失率(LGD) 和 违约风险敞口(EAD)。三者共同决定了预期损失(EL)与非预期损失(UL),是量化风险定价的基石。

核心公式: 预期损失(EL) = PD × LGD × EAD

2.1 违约概率(PD)

定义: 借款人在未来一定时间周期内(通常为1年)发生违约的可能性,取值范围为 [0, 1]。PD 是信用评分模型最直接的输出目标。

计算逻辑

  • 历史滚动率法: 基于账户级历史表现,统计“当前处于某逾期阶段”的客户在下一观察点进入“违约状态”的比例。
  • 生存分析模型: 使用 Cox 比例风险模型或 Kaplan-Meier 估计,处理右截尾数据,预测违约时间分布。
  • 逻辑回归/机器学习: 以“是否违约”为二分类目标,训练评分卡或 XGBoost 模型,输出概率值。
  • 宏观调整: 通过 Vasicek 模型或压力测试,将时点 PD (PIT) 转换为跨周期 PD (TTC),用于定价。
方法 适用场景 优点 局限
历史滚动率 零售信贷、小额分期 计算简单、可解释性强 样本量要求大、对长周期不敏感
生存分析 按揭、长期贷款 处理截尾数据、时间维度完整 模型假设较强
逻辑回归 通用评分卡 稳定、监管认可 非线性拟合能力有限
机器学习 高维特征、大数据 预测精度高 可解释性差、需校准
实务提示: 在定价场景中,PD 通常使用“年化违约概率”,且需对样本外进行校准(如 Platt Scaling 或 Isotonic Regression),避免概率偏移导致定价偏差。

2.2 违约损失率(LGD)

定义: 一旦发生违约,银行实际损失的金额占违约风险敞口的比例,取值范围为 [0, 1]。LGD 反映了回收能力,是风险定价中波动最大的参数。

计算逻辑

  • 清收回收法: LGD = 1 - (回收金额 / EAD)。回收金额包括抵押物处置、催收回款、法律诉讼所得等。
  • 市场隐含法: 利用违约债券或 CDS 的市场价格反推市场隐含的 LGD。
  • 历史平均法: 按产品类型、担保方式、优先级等维度统计历史平均 LGD。
  • 模型预测法: 使用 Beta 回归或 Tobit 模型,基于抵质押率、回收周期、法律环境等特征预测 LGD。
维度 典型 LGD 范围 关键影响因素
有抵押住房贷款 10% - 30% LTV、房产流动性、法拍周期
无抵押消费贷 60% - 90% 催收效率、客户还款意愿
信用卡循环贷 70% - 95% 账户活跃度、额度使用率
企业信用贷款 40% - 70% 行业景气度、担保方实力
注意: LGD 的波动性远大于 PD。在定价时,建议使用“经济下行期 LGD”或“压力 LGD”作为定价基准,而非简单使用历史均值,否则会严重低估风险成本。

2.3 违约风险敞口(EAD)

定义: 违约发生时,银行面临风险的资产余额。对于固定额度贷款,EAD 通常等于当前未偿还本金;对于循环额度(如信用卡、透支),EAD 需要考虑未来提款行为。

计算逻辑

  • 固定额度贷款: EAD = 当前未还本金 + 应计利息。
  • 循环额度: EAD = 当前已用额度 + (未用额度 × 信用转换系数 CCF)。CCF 通常基于历史数据统计,范围在 20% - 80%。
  • 表外项目: 如信用证、保函,EAD = 名义本金 × CCF。
关键概念: 信用转换系数(CCF) 是循环额度 EAD 计算的核心,反映了借款人在违约前继续提款的倾向。CCF 越高,意味着未用额度转化为实际敞口的风险越大。

2.4 三参数联动与预期损失

PD、LGD、EAD 并非独立变量。例如,经济衰退期 PD 上升,同时抵押物贬值导致 LGD 上升,形成“双升”效应。在定价模型中,需考虑参数之间的相关性,通常使用 Copula 或压力场景模拟来捕捉尾部风险。

信用风险三参数与预期损失(EL)关系图 违约概率 (PD) 违约损失率 (LGD) 违约风险敞口 (EAD) 预期损失 (EL) EL = PD × LGD × EAD

2.5 参数估计的 Python 示例

以下代码演示了基于历史数据计算 PD、LGD、EAD 及 EL 的基本流程:

import pandas as pd
import numpy as np

# 模拟样本数据
np.random.seed(42)
n = 10000
data = pd.DataFrame({
    'default_flag': np.random.binomial(1, 0.05, n),          # 5% 违约率
    'exposure': np.random.uniform(1000, 50000, n),           # 敞口
    'recovery_rate': np.random.beta(2, 5, n)                 # 回收率 Beta 分布
})

# 计算 PD
PD = data['default_flag'].mean()
print(f"违约概率 PD = {PD:.4f}")

# 计算 LGD(仅违约样本)
defaulted = data[data['default_flag'] == 1]
LGD = 1 - defaulted['recovery_rate'].mean()
print(f"违约损失率 LGD = {LGD:.4f}")

# 计算 EAD(假设循环额度 CCF=0.5)
data['EAD'] = data['exposure'] * 0.5
EAD = data['EAD'].mean()
print(f"平均违约风险敞口 EAD = {EAD:.2f}")

# 计算预期损失
EL = PD * LGD * EAD
print(f"预期损失 EL = {EL:.2f}")

# 输出结果
# 违约概率 PD = 0.0495
# 违约损失率 LGD = 0.7142
# 平均违约风险敞口 EAD = 12750.12
# 预期损失 EL = 450.67
代码说明: 实际生产环境中,PD 需通过评分卡模型输出,LGD 需考虑清收周期折现,EAD 需按产品类型分别计算 CCF。上述示例仅用于理解三参数的基本运算逻辑。

2.6 参数在定价中的应用

在信用额度定价中,PD、LGD、EAD 直接决定了风险成本(Credit Cost),进而影响最终利率:

  • 风险定价基准: 利率 = 资金成本 + 运营成本 + 预期损失成本 + 资本成本 + 目标利润率
  • 预期损失成本: 即 EL = PD × LGD × EAD,需分摊到每期还款中。
  • 资本成本: 基于非预期损失(UL)计算,UL 与 PD、LGD 的波动性及相关性有关。
  • 限额管理: 根据 PD 和 LGD 设定最大可接受敞口,控制集中度风险。