3. PD核心概念
在ECL计算引擎中,PD(Probability of Default,违约概率)是驱动预期信用损失的第一参数。但PD并非一个单一数字,而是一套从违约事件定义出发、贯穿时点与跨周期视角、并最终以边际PD和生存概率形式进入折现公式的完整数学体系。理解这套体系,是设计可审计、可复算的ECL引擎的前提。
一、违约定义:PD计算的逻辑起点
PD的分母是“未违约暴露”,分子是“违约事件”。因此,违约定义直接决定PD的边界。在主流监管框架下,违约通常同时包含“债务人层面”和“债项层面”两类触发条件:
- 债务人层面:出现实质性财务困难、申请破产保护、债务重组导致债权人损失等。
- 债项层面:逾期超过90天(部分框架允许对特定产品采用更短或更长的期限)、信用减值、银行因经济原因核销等。
在引擎设计中,违约定义必须被参数化为可配置规则,而不是硬编码。例如,逾期天数阈值、是否包含“技术性违约”、是否采用“统一违约定义”等,都应作为配置项写入计算上下文。
default_definition:
days_past_due_threshold: 90
include_distressed_restructuring: true
include_bankruptcy: true
cure_period_days: 30
materiality_threshold: 0.05
常见误区:将“逾期”等同于“违约”。逾期只是违约的观察信号之一,若引擎仅以逾期天数判断违约,会遗漏重组、破产等非逾期违约事件,导致PD被系统性低估。
二、时点PD与跨周期PD:两种时间视角
时点PD(Point-in-Time PD,PIT-PD)反映当前经济周期下的实际违约概率,随宏观经济波动而上升或下降。跨周期PD(Through-the-Cycle PD,TTC-PD)则剔除周期影响,反映长期平均违约水平,通常用于资本计量和压力测试基准。
在ECL引擎中,两者并非互斥,而是通过“周期调整因子”建立映射关系。典型做法是:以TTC-PD为锚,乘以一个由宏观变量驱动的时点调整系数,得到PIT-PD。
PIT_PD(t) = TTC_PD × cycle_adjustment(t)
cycle_adjustment(t) = f(GDP_gap, unemployment, house_price_index, ...)
引擎设计要点在于:周期调整函数必须可插拔,且调整因子的历史校准数据应独立存储,以便审计追溯。若将PIT与TTC混用在同一计算链路中,会导致ECL在景气期被低估、在衰退期被高估。
三、边际PD、累计PD与生存概率的数学关系
这是PD体系中最容易被误解、也最影响引擎正确性的部分。假设我们有一组按年划分的边际PD:mPD(1), mPD(2), ..., mPD(T),其中mPD(t)表示“在第t年年初仍未违约的条件下,第t年内违约的概率”。
累计PD(Cumulative PD)表示从起始时点到第t年末的累计违约概率,其与边际PD的关系为:
CPD(t) = 1 - Π_{i=1}^{t} (1 - mPD(i))
生存概率 S(t) = Π_{i=1}^{t} (1 - mPD(i))
因此 CPD(t) = 1 - S(t)
这里的关键在于:边际PD不能直接相加。许多引擎错误地将各年PD简单求和作为累计PD,这在PD较小时误差尚可接受,但在PD较高或期限较长时会产生显著偏差。
| 年份 | 边际PD | 生存概率S(t) | 累计PD | 错误做法:直接求和 |
|---|---|---|---|---|
| 1 | 2.00% | 98.00% | 2.00% | 2.00% |
| 2 | 2.50% | 95.55% | 4.45% | 4.50% |
| 3 | 3.00% | 92.68% | 7.32% | 7.50% |
| 4 | 3.50% | 89.44% | 10.56% | 11.00% |
| 5 | 4.00% | 85.86% | 14.14% | 15.00% |
从表中可见,到第5年,正确累计PD为14.14%,而直接求和为15.00%,绝对偏差0.86个百分点。在ECL引擎中,这一偏差会通过折现因子进一步放大,最终影响拨备金额。
引擎实现建议:在计算链路中,始终以生存概率为中间变量。边际PD先转换为生存概率,再通过S(t) = S(t-1) × (1 - mPD(t))递推,最后用CPD(t) = 1 - S(t)输出累计PD。这样可避免重复计算和精度损失。
四、案例场景:三年期贷款的PD曲线构建
假设某银行对一笔三年期企业贷款构建PD曲线。引擎输入为:TTC-PD基准为1.8%,宏观情景为“温和衰退”,周期调整因子分别为1.2、1.5、1.3。则边际PD计算如下:
mPD(1) = 1.8% × 1.2 = 2.16%
mPD(2) = 1.8% × 1.5 = 2.70%
mPD(3) = 1.8% × 1.3 = 2.34%
S(1) = 1 - 0.0216 = 0.9784
S(2) = 0.9784 × (1 - 0.0270) = 0.9520
S(3) = 0.9520 × (1 - 0.0234) = 0.9297
CPD(1) = 2.16%
CPD(2) = 4.80%
CPD(3) = 7.03%
引擎随后将各年边际PD与对应年份的EAD、LGD相乘,再乘以折现因子,得到逐期ECL并加总。若此处误用累计PD代替边际PD,会导致每期ECL被重复计算,拨备被严重高估。
五、复盘:PD体系中的典型设计缺陷
- 违约定义不可配置:导致不同产品线无法统一口径,PD曲线不可比。
- PIT与TTC混用:在同一个ECL链路中既用TTC-PD又用PIT调整因子,造成逻辑冲突。
- 边际PD与累计PD混用:将累计PD当作边际PD输入ECL公式,导致重复计算。
- 生存概率未显式建模:引擎内部直接存储累计PD,无法支持条件PD的递推和情景切换。
- 缺少期限结构:对所有期限使用单一PD,忽略PD的期限递增特征。
核心结论:PD在ECL引擎中不是单一参数,而是一条以违约定义为边界、以时点/跨周期调整为输入、以边际PD为驱动、以生存概率为递推核心的期限结构曲线。引擎设计必须将“违约定义—周期调整—边际PD—生存概率—累计PD”作为一条完整、可审计的计算链路,任何环节的混用或简化都会直接扭曲ECL结果。