4. 违约概率与违约频率

在CreditRisk+框架中,违约频率是驱动组合损失分布形态的核心输入之一。与结构化模型关注资产价值与违约门槛不同,CreditRisk+采用简约化视角,将违约视为稀有事件,用泊松分布刻画给定时期内违约次数的随机性。因此,本章的关键任务不是预测某一家企业是否违约,而是估计一个组合或评级桶在观察期内的平均违约频率,并将其校准为泊松分布的参数λ。

一、核心原理:违约概率与违约频率的区分

初学者最容易混淆“违约概率”与“违约频率”。违约概率通常指单个债务人在未来一段时间内发生违约的可能性,是一个介于0到1之间的概率值;违约频率则指某一类债务人群体在单位时间内平均发生违约的次数,通常以“每年多少次”或“每百户多少次”表示。CreditRisk+的泊松模型使用的是后者:

P(X = k) = (λ^k * e^(-λ)) / k!
其中:
X 表示观察期内违约事件发生次数
k 为非负整数,表示实际违约次数
λ 为违约频率参数,也是泊松分布的均值与方差
e 为自然常数,约等于2.71828

泊松分布的一个重要性质是均值等于方差,均为λ。这意味着如果历史数据显示违约次数的方差显著大于均值,就存在过度离散问题,直接使用单一泊松分布会低估尾部风险。这一点在实务中非常常见,也是后续章节引入违约频率随机化与行业、地区相关性调整的动因。

二、方法流程:从历史违约数据到λ校准

校准泊松参数通常遵循以下流程:

  1. 确定观察窗口与口径。明确统计的是年度违约次数、季度违约次数,还是月度违约次数;同时统一违约定义,例如逾期90天以上、破产、债务重组等。
  2. 划分风险桶。按评级、行业、地区或资产类别将债务人分组,使组内违约行为相对同质。CreditRisk+通常要求每个桶内部风险特征接近。
  3. 统计历史违约次数。对每个桶,记录每个观察期内发生的违约事件数,形成时间序列。
  4. 估计平均违约频率。最简单的方法是用总违约次数除以总观察期数,得到λ的矩估计。
  5. 检验泊松假设。计算样本均值与方差,若方差明显大于均值,需考虑负二项分布、泊松混合模型或分段校准。
  6. 进行稳定性调整。对样本期过短、数据稀疏或经济周期影响明显的桶,采用行业平均值、贝叶斯收缩或滚动窗口平滑。

参数校准示例:某银行对“制造业-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+建模的起点。只有先获得稳定、可解释且经过检验的λ,后续的损失分布卷积与风险资本计算才有可靠基础。校准过程中应始终关注数据口径、样本长度、过度离散和独立性四个关键问题。