第四章 迁移矩阵的构建方法
好,咱们进入正题。
迁移矩阵怎么来的?说白了,就是把「借款人从A状态跑到B状态」的概率给算出来。我刚开始做这块时,以为直接数一数就行了,结果发现坑不少。今天我把四种主流方法掰开揉碎讲清楚。
4.1 历史数据法:最朴素的做法
这个方法最简单。你拿过去几年的评级数据,统计每个评级有多少客户,下一年变成了什么评级。
举个例子:
- 年初有100个AAA客户
- 到了年底,95个还是AAA,3个掉到AA,1个掉到A,1个违约
- 那AAA→AAA的概率就是95%,AAA→AA是3%,以此类推
公式长这样:
P(i→j) = N(i→j) / N(i)
其中N(i)是期初i评级的客户数,N(i→j)是期末变成j评级的数量。
4.2 Cohort法:按队列分组
Cohort法,也叫「静态池法」。它把客户按某个时间点分组,然后观察这个组在未来一段时间的表现。
我个人习惯用季度作为观察窗口。为什么?因为年度太粗,月度太细(数据噪音大)。
具体步骤:
- 把客户按评级分组(比如2023Q1的AAA组)
- 观察这个组在2023Q2、Q3、Q4的评级变化
- 计算每个时间窗口的迁移概率
- 最后取平均
这样做的好处是:你避免了「期内多次迁移」的干扰。每个客户只在一个cohort里出现一次。
4.3 持续时间法(Duration Method)
这个方法更精细。它不只看「期初→期末」,而是把每次评级变动都当作一个事件来处理。
你想想看:一个客户可能在一年内从AAA掉到AA,再掉到A。历史法只记录最终状态,但Duration法会记录两次迁移。
核心思路:
- 把评级迁移看作一个连续时间过程
- 用生存分析(Survival Analysis)来估计迁移强度
- 迁移强度λ(i→j)表示单位时间内从i跳到j的概率
我记得在某次做压力测试时,监管要求我们考虑「瞬时迁移概率」。历史法算不出来,只能用Duration法。
公式长这样:
λ(i→j) = 迁移事件数 / 总暴露时间
总暴露时间就是所有客户在i评级停留的天数之和。
4.4 多期迁移矩阵的推导
单期矩阵有了,那两年、三年的矩阵怎么算?
最简单的方法:矩阵乘法。
假设一年期迁移矩阵是M,那两年期就是M²,三年期就是M³。前提是——迁移过程是马尔可夫的,也就是未来只取决于当前状态,跟过去无关。
但现实往往不是这样。我遇到过的情况是:刚降级的客户,短期内再降级的概率更高。这叫「评级动量效应」。
所以,更靠谱的做法是:
- 直接用历史数据算多期矩阵(比如直接算两年期的)
- 或者用Duration法模拟出多期路径
- 再或者用蒙特卡洛模拟
我个人推荐第二种。因为直接算多期矩阵,数据量往往不够(两年内评级没变的客户太多)。
知识体系总览
下面这张图,我把四种方法的关系画出来了:
四种方法对比
| 方法 | 数据需求 | 精度 | 适用场景 | 我踩过的坑 |
|---|---|---|---|---|
| 历史数据法 | 低 | 低 | 快速估算 | 期内迁移被忽略 |
| Cohort法 | 中 | 中 | 常规评级分析 | 窗口期选择影响结果 |
| Duration法 | 高 | 高 | 压力测试、定价 | 计算量大,需小心右删失 |
| 多期推导 | 依赖基础矩阵 | 中高 | 长期预测 | 马尔可夫假设常不成立 |
好了,这四种方法够你应付大部分场景了。记住一点:没有完美的模型,只有合适的模型。根据你的数据量和业务需求来选,别为了炫技而用复杂方法。