4. 违约概率与违约频率
在CreditRisk+框架中,违约频率是驱动组合损失分布形态的核心输入之一。与结构化模型关注资产价值与违约门槛不同,CreditRisk+采用简约化视角,将违约视为稀有事件,用泊松分布刻画给定时期内违约次数的随机性。因此,本章的关键任务不是预测某一家企业是否违约,而是估计一个组合或评级桶在观察期内的平均违约频率,并将其校准为泊松分布的参数λ。
一、核心原理:违约概率与违约频率的区分
初学者最容易混淆“违约概率”与“违约频率”。违约概率通常指单个债务人在未来一段时间内发生违约的可能性,是一个介于0到1之间的概率值;违约频率则指某一类债务人群体在单位时间内平均发生违约的次数,通常以“每年多少次”或“每百户多少次”表示。CreditRisk+的泊松模型使用的是后者:
P(X = k) = (λ^k * e^(-λ)) / k!
其中:
X 表示观察期内违约事件发生次数
k 为非负整数,表示实际违约次数
λ 为违约频率参数,也是泊松分布的均值与方差
e 为自然常数,约等于2.71828
泊松分布的一个重要性质是均值等于方差,均为λ。这意味着如果历史数据显示违约次数的方差显著大于均值,就存在过度离散问题,直接使用单一泊松分布会低估尾部风险。这一点在实务中非常常见,也是后续章节引入违约频率随机化与行业、地区相关性调整的动因。
二、方法流程:从历史违约数据到λ校准
校准泊松参数通常遵循以下流程:
- 确定观察窗口与口径。明确统计的是年度违约次数、季度违约次数,还是月度违约次数;同时统一违约定义,例如逾期90天以上、破产、债务重组等。
- 划分风险桶。按评级、行业、地区或资产类别将债务人分组,使组内违约行为相对同质。CreditRisk+通常要求每个桶内部风险特征接近。
- 统计历史违约次数。对每个桶,记录每个观察期内发生的违约事件数,形成时间序列。
- 估计平均违约频率。最简单的方法是用总违约次数除以总观察期数,得到λ的矩估计。
- 检验泊松假设。计算样本均值与方差,若方差明显大于均值,需考虑负二项分布、泊松混合模型或分段校准。
- 进行稳定性调整。对样本期过短、数据稀疏或经济周期影响明显的桶,采用行业平均值、贝叶斯收缩或滚动窗口平滑。
参数校准示例:某银行对“制造业-AA级”客户桶统计了过去10年的年度违约次数,分别为0、1、0、2、1、0、1、3、0、1。总违约次数为9,观察期为10年,则λ的矩估计为0.9次/年。若该桶共有300个债务人,则户均年违约概率约为0.9/300=0.3%。
三、案例/场景:泊松参数校准的完整计算
假设某消费信贷组合按评分分为三个桶,历史5年违约次数如下表所示。我们需要为每个桶估计λ,并判断是否适合直接使用泊松分布。
| 风险桶 | 债务人数 | 5年违约次数序列 | 总违约次数 | λ估计值 | 样本方差 | 是否过度离散 |
|---|---|---|---|---|---|---|
| A桶(低风险) | 500 | 2, 1, 3, 2, 2 | 10 | 2.0 | 0.5 | 否 |
| B桶(中风险) | 300 | 5, 8, 6, 12, 9 | 40 | 8.0 | 6.5 | 否 |
| C桶(高风险) | 100 | 3, 10, 4, 18, 15 | 50 | 10.0 | 42.5 | 是 |
从表中可见,C桶的样本方差42.5远大于均值10,说明违约次数波动剧烈,可能存在经济周期敏感或集中度风险。此时若直接使用λ=10的泊松分布,会低估极端年份的违约次数。实务中可对C桶采用负二项分布,或将观察期拆分为“景气”与“衰退”两种状态分别校准。
Python 快速校验示例:
import numpy as np
from scipy.stats import poisson
data_c = np.array([3, 10, 4, 18, 15])
lam = data_c.mean()
var = data_c.var(ddof=1)
print("lambda =", lam, "variance =", var)
# 计算泊松分布下出现18次违约的概率
p18 = poisson.pmf(18, mu=lam)
print("P(X=18) under Poisson =", p18)
四、常见问题与误区复盘
- 误区一:用违约概率直接替代λ。泊松分布中的λ是频率,不是概率。若组合有N个债务人,户均违约概率p与λ的关系近似为λ=N×p,仅在小概率情形下成立。
- 误区二:忽略观察期长度。季度λ与年度λ不能混用。若季度λ为0.5,则年度λ近似为2.0,但需注意独立性假设。
- 误区三:样本量不足仍强行分桶。若某桶5年内只有0或1次违约,λ估计极不稳定。此时应合并相似桶,或采用贝叶斯方法引入先验。
- 误区四:忽视过度离散。泊松分布要求均值等于方差。若方差显著大于均值,应改用负二项分布或引入随机违约频率。
- 误区五:用全样本平均值掩盖周期性。经济扩张期与衰退期的违约频率差异巨大,建议使用滚动窗口或状态切换模型。
实务建议:在CreditRisk+建模中,λ校准应至少保留两套结果:一套用于基准情景,一套用于压力情景。压力情景可通过将λ乘以压力因子,或直接采用衰退期子样本的λ估计值。
注意:泊松分布假设违约事件相互独立。若组合中存在高度相关的债务人,例如同一集团、同一供应链或同一地区,独立性假设会被破坏,导致尾部损失被低估。此时需要在后续章节中引入行业与地区相关性调整。
总结来说,违约频率估计是CreditRisk+建模的起点。只有先获得稳定、可解释且经过检验的λ,后续的损失分布卷积与风险资本计算才有可靠基础。校准过程中应始终关注数据口径、样本长度、过度离散和独立性四个关键问题。