量化交易中文教材

第 24 章 信用风险

对应原书:Hull《Options, Futures, and Other Derivatives》第 9 版(Global Edition)第 24 章 Credit Risk。

前置内容:本册第 9 章已经给出 CVA、DVA 的定义和最简单的计算,本章给出完整的计算方法;Merton 模型用到第 15b 章的 BSM 公式;信用 VaR 与第 22 章的市场风险 VaR 对应。第 25 章将用本章的工具为信用衍生品定价。

学习目标

读完本章,你应当能够:

  1. 读懂评级机构的累计违约率表,区分无条件违约概率、条件违约概率和风险率(违约强度),会用 \(Q(t)=1-e^{-\bar\lambda(t)t}\) 换算。
  2. 用 \(\bar\lambda\approx s/(1-R)\) 从信用利差估计违约强度,并会用债券价格逐期 bootstrap 出风险率期限结构。
  3. 说清楚风险中性违约概率与现实世界违约概率的区别、两者为何相差很大、各自该用在哪里。
  4. 用 Merton 模型从股价和股票波动率反推资产价值、资产波动率和违约概率,理解"距离违约"作为信用信号的含义。
  5. 掌握 CVA \(=\sum q_iv_i\) 的计算框架:违约概率从利差来,期望敞口从模拟来;理解净额结算、抵押品、补救期、降级触发和错向风险的作用。
  6. 用单因子 Gaussian copula 刻画违约相关,用 Vasicek 公式计算大组合的信用 VaR,并了解 CreditMetrics 的评级迁移模拟。

读前导读

这一章在解决什么问题。 你在 CFA 固定收益里学过信用分析的三件套:违约概率(PD)、违约损失率(LGD = 1 − 回收率)、信用利差,以及"预期损失 ≈ PD × LGD × EAD"。CPA 的新金融工具准则(IFRS 9 / CAS 22)里的预期信用损失(ECL)也是同一个乘法:12 个月或整个存续期的 PD,乘以 LGD,乘以违约风险敞口,再折现。本章把这三件套做"连续化"和"组合化":

  • 把"第几年违约的概率"变成一条连续的风险率曲线(违约强度 \(\lambda(t)\)),它和收益率曲线是同一套数学,读者熟悉的"由即期利率推远期利率""bootstrap 零息曲线"可以原样搬过来。
  • 讲清楚利差隐含的 PD 为什么比历史 PD 大好几倍。这对应 CFA 里"信用利差 = 预期损失 + 信用风险溢价 + 流动性溢价"的分解,本章用"风险中性 vs 现实世界概率"这对概念说明它。做 ECL 时用的是现实世界(并加入前瞻性信息)的 PD,给 CDS 定价时用的是风险中性 PD,两者不能混用。
  • 用 Merton 模型从股价里"读出"违约概率:股权是公司资产的看涨期权,这是 CFA 二级/三级提过的思想,本章把 BSM 公式真正用起来。
  • 衍生品的交易对手风险(CVA):本质上就是对衍生品敞口做 ECL,但敞口本身是随机的、像期权一样的东西。
  • 违约相关与信用 VaR:单笔贷款的 ECL 是 PD × LGD,但一个组合的尾部损失取决于违约是否"扎堆"发生。Vasicek 公式就是巴塞尔内部评级法资本公式的来源。

需要先想起来的数学。

  1. 指数函数、对数与微分方程 \(dV/dt=-\lambda V\)。 这个方程的意思是"存活概率每单位时间按比例 \(\lambda\) 衰减",解是 \(V(t)=e^{-\lambda t}\),和连续复利贴现 \(e^{-rt}\) 完全一样。例:\(\lambda=2\%\),5 年存活概率 \(e^{-0.1}=90.5\%\),违约概率 9.5%。见 第 00 册第 04 章 级数与收敛(e 与指数对数部分)和 第 00 册第 02 章 导数与泰勒展开。
  2. 积分作为"累加"。 \(\int_0^t\lambda(\tau)d\tau\) 就是把每一小段时间的违约强度加起来,等于"平均风险率 × 时间"。和 \(\int_0^t r(\tau)d\tau\) 给出累计贴现完全对应。见 第 00 册第 03 章 积分。
  3. 偏导数与链式法则。 Merton 模型里的 \(\partial E/\partial V\) 就是期权的 Delta,\(=N(d_1)\);式 (24.4) 用它把股权波动率换算成资产波动率,与"杠杆放大波动率"的直觉一致。见 第 00 册第 05 章 多元微积分与优化。
  4. 正态分布函数 \(N(\cdot)\) 及其反函数 \(N^{-1}(\cdot)\)。 \(N(x)\) 把一个 z 值变成概率,\(N^{-1}(p)\) 把概率变回 z 值:\(N^{-1}(0.05)=-1.645\),\(N^{-1}(0.999)=3.09\)。copula 和 Vasicek 公式里不停地在"概率"和"z 值"之间来回切换,读的时候盯住这一点就不会乱。
  5. 条件概率与全概率公式。 条件违约概率 = 第 \(t\) 年违约 / 活到第 \(t\) 年初;Vasicek 公式先算"给定经济状态 \(F\) 时的违约率",再看 \(F\) 的分布。见 第 00 册第 07 章 概率中的分析工具(条件期望部分)。

怎么读这一章。 核心必读是 24.2(风险率)、24.4.1(\(s/(1-R)\) 近似)、24.5(两种概率)、24.6(Merton)、24.7.2(CVA 框架)和 24.8.3–24.9.2(单因子模型与 Vasicek)。24.4.2 的 bootstrap 例子第一次读可以只看思路,等需要写代码时再逐行核对;24.4.3–24.4.4(无风险利率选择、资产互换)和 24.7.3–24.7.6(补救期、缓释条款)偏实务,结论性内容为主,可以快速浏览。24.9.3 CreditMetrics 的映射细节第一次可以跳过。建议顺序:24.2 → 24.4.1 → 24.5 → 24.6 → 24.7.2 → 24.7.7 → 24.8 → 24.9,其余按需回看。


24.0 从市场风险到信用风险

前几章讨论的是市场风险:价格、利率、波动率的变化。本章转向信用风险(credit risk):借款人或衍生品交易对手可能违约,使我们拿不到应得的钱。

信用风险分析最核心的量是违约概率。估计违约概率有三条信息来源:历史违约数据、债券价格(信用利差)和股价。它们给出的数字往往差别很大,背后是一个本章反复出现的主题——风险中性概率与现实世界概率的区别。本章随后讨论衍生品交易中的信用风险(CVA/DVA)、多个债务人之间的违约相关性,以及组合层面的信用 VaR。


24.1 信用评级

Moody's、S&P 和 Fitch 等评级机构对公司债的信用质量评级:

最高 → 最低
Moody's Aaa、Aa、A、Baa、Ba、B、Caa、Ca、C
S&P / Fitch AAA、AA、A、BBB、BB、B、CCC、CC、C

Baa/BBB 及以上称为投资级(investment grade),以下称为非投资级或高收益级。评级还有细分:Moody's 把 Aa 分为 Aa1、Aa2、Aa3,A 分为 A1、A2、A3 等;S&P 和 Fitch 把 AA 分为 AA+、AA、AA−,A 分为 A+、A、A− 等。Aaa/AAA 不细分,最低两档通常也不细分。


24.2 历史违约概率

24.2.1 累计违约率表

评级机构公布各评级债券在发行(或评级)后若干年内的累计违约率。原书表 24.1 是 Moody's 1970–2012 年的平均累计违约率(%):

评级 1 年 2 年 3 年 4 年 5 年 7 年 10 年 15 年 20 年
Aaa 0.000 0.013 0.013 0.037 0.106 0.247 0.503 0.935 1.104
Aa 0.022 0.069 0.139 0.256 0.383 0.621 0.922 1.756 3.135
A 0.063 0.203 0.414 0.625 0.870 1.441 2.480 4.255 6.841
Baa 0.177 0.495 0.894 1.369 1.877 2.927 4.740 8.628 12.483
Ba 1.112 3.083 5.424 7.934 10.189 14.117 19.708 29.172 36.321
B 4.051 9.608 15.216 20.134 24.613 32.747 41.947 52.217 58.084
Caa–C 16.448 27.867 36.908 44.128 50.366 58.302 69.483 79.178 81.248

读法:Baa 债券在第 1 年末之前违约的概率是 0.177%,第 2 年末之前是 0.495%,所以在第 2 年内违约的概率是 \(0.495\%-0.177\%=0.318\%\)。

两个规律:

  • 投资级债券每年的违约概率随时间递增。例如 A 级债券在 0–5、5–10、10–15、15–20 年间的违约概率分别为 0.870%、1.610%、1.775%、2.586%。发行人起初信用良好,时间越长,财务状况恶化的可能性越大。
  • 低评级债券的违约概率往往随时间递减。B 级对应为 24.613%、17.334%、10.270%、5.867%。对它们来说头一两年最关键,活得越久,财务好转的可能越大。

24.2.2 风险率

以 Caa 及以下的债券为例。第 3 年内违约的概率是 \(36.908\%-27.867\%=9.041\%\),这是从今天看第 3 年内违约的无条件违约概率(unconditional default probability)。存活到第 2 年末的概率是 \(100\%-27.867\%=72.133\%\),所以以前两年未违约为条件,第 3 年内违约的条件违约概率为 \(0.09041/0.72133=12.53\%\)。

把条件违约概率推到连续时间,就得到风险率(hazard rate)\(\lambda(t)\):\(\lambda(t)\Delta t\) 是"在 \(t\) 之前没有违约"的条件下,在 \([t,t+\Delta t]\) 内违约的概率。设 \(V(t)\) 为存活到 \(t\) 的累计概率,则

\[\frac{V(t)-V(t+\Delta t)}{V(t)}=\lambda(t)\Delta t\quad\Longrightarrow\quad\frac{dV}{dt}=-\lambda(t)V(t)\quad\Longrightarrow\quad V(t)=e^{-\int_0^t\lambda(\tau)\,d\tau}\]

推导拆解:这一串箭头有三步。 第一步:\(V(t)-V(t+\Delta t)\) 是"活到 \(t\) 但没活到 \(t+\Delta t\)"的概率,即在这一小段里违约的无条件概率;除以 \(V(t)\) 就变成条件概率,按定义等于 \(\lambda(t)\Delta t\)。 第二步:两边除以 \(\Delta t\) 并令 \(\Delta t\to0\),左边 \(\frac{V(t)-V(t+\Delta t)}{\Delta t}\) 的极限是 \(-\frac{dV}{dt}\)(导数的定义),于是 \(\frac{dV}{dt}=-\lambda(t)V(t)\)。 第三步:改写为 \(\frac{1}{V}\frac{dV}{dt}=\frac{d}{dt}\ln V=-\lambda(t)\)(这里用了 \(\ln V\) 的导数和链式法则),两边从 0 积分到 \(t\),并利用 \(V(0)=1\) 即 \(\ln V(0)=0\),得 \(\ln V(t)=-\int_0^t\lambda(\tau)d\tau\),取指数即得结果。 小例子:\(\lambda\) 恒为 3%,则 \(V(5)=e^{-0.15}=86.1\%\),5 年累计违约概率 13.9%;而"每年 3%"简单相加会得到 15%,差别来自"已经违约的公司不会再违约一次",这与复利和单利的差别是同一回事。

记 \(\bar\lambda(t)\) 为 0 到 \(t\) 的平均风险率,到 \(t\) 为止的累计违约概率为

\[Q(t)=1-e^{-\bar\lambda(t)\,t}\tag{24.1}\]

风险率又称违约强度(default intensity)。它在信用模型中的角色,与利率模型中瞬时远期利率的角色非常相似:存活概率 \(e^{-\int\lambda}\) 对应贴现因子 \(e^{-\int r}\)。这个类比在后面反复用到。


24.3 回收率

公司破产时,债权人对公司资产提出索偿(在美国,债券持有人的索偿额是面值加应计利息)。有时公司重组,债权人接受部分偿付;有时由清算人出售资产偿付。有些索偿享有优先权。

债券的回收率(recovery rate)通常定义为违约后几天该债券的市场价值占面值的百分比。原书表 24.2 给出 Moody's 1982–2012 年的平均回收率:

债券类别 平均回收率(% 面值)
高级有担保(senior secured) 51.6
高级无担保(senior unsecured) 37.0
高级次级(senior subordinated) 30.9
次级(subordinated) 31.5
初级次级(junior subordinated) 24.7

回收率与违约率负相关。2007 年信用危机的一个教训是:房贷违约增加 → 止赎房屋增多 → 房价下跌 → 回收率下降。公司债同理:违约少的年份经济好,回收率可高达 60%;违约多的年份经济差,回收率可低至 30%。所以坏年份对贷款人是"双重打击"(Altman 等 2005)。做信用组合的压力测试时,不能把回收率当成与违约率无关的常数。


24.4 从债券收益率利差估计违约概率

24.4.1 利差近似

收益率利差(yield spread)是公司债承诺收益率减去无风险利率,通常假设它是对违约可能性的补偿。(这个假设并不完美:公司债流动性差,价格中还含有流动性折价。)

设 \(T\) 年期债券的利差为 \(s(T)\)。持有这只债券,0 到 \(T\) 期间每年的平均损失率约为 \(s(T)\)。另一方面,平均损失率等于违约强度乘以违约时的损失比例,即 \(\bar\lambda(T)(1-R)\),\(R\) 为回收率。于是

\[\bar\lambda(T)\approx\frac{s(T)}{1-R}\tag{24.2}\]

这个近似在很多情况下都相当准确。

金融直觉:这就是 CFA 信用分析里的"预期损失 = PD × LGD"倒过来用。利差 \(s\) 是债券每年为承担违约多给的收益,它应当刚好覆盖每年的预期损失 \(\lambda(1-R)\),所以 \(\lambda=s/(1-R)\)。例:利差 120 bp、回收率 40%,则 \(\lambda\approx0.012/0.6=2\%\)/年。注意这里的 \(\lambda\) 是从价格推出来的,因此是风险中性的,它把风险溢价和流动性溢价也"算进了"违约概率(24.5 节详谈)。 下面例 24.1 由平均风险率推各年风险率,用的就是 CFA 里"由即期利率推远期利率"的公式:\(\lambda_{1\to2}=\frac{2\bar\lambda(2)-1\cdot\bar\lambda(1)}{2-1}\),因为连续复利下"平均值 × 年数"可以直接相加减。

例 24.1 某公司 1、2、3 年期债券的利差为 150、180、195 bp,回收率 40%。平均风险率:

  • 第 1 年:\(0.015/0.6=2.5\%\);
  • 前 2 年:\(0.018/0.6=3.0\%\);
  • 前 3 年:\(0.0195/0.6=3.25\%\)。

由平均值反推各年的风险率(类比由零息利率求远期利率):第 2 年 \(2\times3.0\%-1\times2.5\%=3.5\%\),第 3 年 \(3\times3.25\%-2\times3.0\%=3.75\%\)。

24.4.2 匹配债券价格:bootstrap

更精确的做法与第 4.5 节由债券价格 bootstrap 零息曲线完全类似:先用最短的债券确定 \([0,t_1]\) 的风险率,再用次短的债券确定 \([t_1,t_2]\) 的风险率,依此类推。

例 24.2 无风险利率对所有期限都是 5%(连续复利)。1、2、3 年期公司债的收益率分别为 6.5%、6.8%、6.95%(连续复利,与例 24.1 的利差一致)。面值 100,每半年付息、年票息 8%,刚付过一次息。

由收益率算出债券价格分别为 101.33、101.99、102.47;如果没有违约风险(按 5% 贴现),价格应为 102.83、105.52、108.08。两者之差就是预期违约损失的现值:1.50、3.53、5.61。

设第 \(i\) 年的风险率为 \(\lambda_i\),回收率 40%。先处理 1 年期债券。前 6 个月违约的概率是 \(1-e^{-0.5\lambda_1}\),后 6 个月是 \(e^{-0.5\lambda_1}-e^{-\lambda_1}\)。为简化,假设违约只发生在每个区间的中点(3 个月和 9 个月):

  • 3 个月时,债券的无风险(远期)价值为 \(4e^{-0.05\times0.25}+104e^{-0.05\times0.75}=104.12\);违约时债券值 40(回收率按面值的 40% 计),损失的现值为 \((104.12-40)e^{-0.05\times0.25}=63.33\)。
  • 9 个月时,无风险价值为 \(104e^{-0.05\times0.25}=102.71\),损失现值为 \((102.71-40)e^{-0.05\times0.75}=60.40\)。

令预期损失现值等于 1.50:

\[(1-e^{-0.5\lambda_1})\times63.33+(e^{-0.5\lambda_1}-e^{-\lambda_1})\times60.40=1.50\]

推导拆解:这个方程的结构是"违约概率 × 违约损失现值"的加总,等于债券的预期损失现值。 左边第一项:\(1-e^{-0.5\lambda_1}\) 是存活概率从 1 降到 \(e^{-0.5\lambda_1}\) 的差,即前半年违约概率;乘上"若在 3 个月时违约,损失的现值 63.33"。第二项同理,\(e^{-0.5\lambda_1}-e^{-\lambda_1}\) 是后半年违约的无条件概率。 63.33 怎么来:3 个月时若不违约,剩余现金流(6 个月时的票息 4、1 年时的 104,距 3 个月分别为 0.25 和 0.75 年)在那一刻值 104.12;违约后只剩 40,损失 64.12,再从 3 个月贴回今天乘 \(e^{-0.0125}\)。 方程只有一个未知数 \(\lambda_1\),用试算或求根工具即可解出。处理 2 年期债券时,前两个区间的违约概率已由 \(\lambda_1\) 固定,只有第 3、4 个半年里的 \(\lambda_2\) 未知,所以每一步也只解一个未知数,这正是 bootstrap 的含义。

解得 \(\lambda_1=2.46\%\)。再依次用 2 年、3 年期债券(预期损失现值 3.53、5.61),在已知前面风险率的基础上求得 \(\lambda_2=3.48\%\),\(\lambda_3=3.74\%\)。它们与例 24.1 的近似结果(2.5%、3.5%、3.75%)非常接近。

24.4.3 用哪个无风险利率

上面的计算严重依赖无风险利率的选择。债券交易员通常以国债为基准报价(如"国债 + 250 bp"),但第 9.1 节说明国债利率被人为压低,不适合作无风险利率的代理。

CDS 利差(第 7 章、第 25 章)提供了一个不依赖无风险利率的信用利差估计。研究者比较债券收益率与 CDS 利差,反推出市场隐含的无风险利率,发现它接近 LIBOR/swap 利率,大约比 LIBOR/swap 低 10 bp(Hull, Predescu & White 2004)。

24.4.4 资产互换利差

实务中信用计算常以 LIBOR/swap 利率作为无风险基准。资产互换利差(asset swap spread)直接给出债券收益率相对于 LIBOR/swap 曲线的利差。设某债券的资产互换利差报价为 150 bp:

  1. 债券按面值 100 交易:A 方支付债券(承诺的)票息,B 方支付 LIBOR + 150 bp。无论债券是否违约,交换都照常进行。
  2. 债券价格低于面值,如 95:A 方除支付票息外,期初每 100 名义本金另付 5;B 方支付 LIBOR + 150 bp。
  3. 债券价格高于面值,如 108:B 方除支付 LIBOR + 150 bp 外,期初另付 8;A 方支付票息。

这样构造的效果是:

\[\text{资产互换利差的现值}=\text{类似无风险债券的价格(按 LIBOR/swap 曲线贴现)}-\text{公司债价格}\]

(证明见原书习题 24.20。)右边正是例 24.2 中的"预期违约损失现值",所以资产互换利差可以直接代入例 24.2 那样的计算。


24.5 违约概率估计的比较

24.5.1 两种估计的巨大差异

历史数据得到的违约概率通常远小于从债券利差推出的违约概率。2007 年中开始的信用危机期间差异尤其大:投资者"逃向质量"(flight to quality),买入国债、抛售公司债,公司债利差飙升,式 (24.2) 给出的违约概率高得离谱。为避免危机的扭曲,原书表 24.3 只用危机前的数据(7 年平均风险率,%/年):

评级 历史风险率 债券隐含风险率 比值 差值
Aaa 0.04 0.60 17.0 0.56
Aa 0.09 0.73 8.2 0.64
A 0.21 1.15 5.5 0.94
Baa 0.42 2.13 5.0 1.71
Ba 2.27 4.67 2.1 2.50
B 5.67 8.02 1.4 2.35
Caa 及以下 12.50 18.39 1.5 5.89

计算方法:

  • 历史列用表 24.1 的 7 年列(Merrill Lynch 债券指数的平均期限约 7 年),\(\bar\lambda(7)=-\frac17\ln[1-Q(7)]\)。A 级 \(Q(7)=1.441\%\),\(\bar\lambda=-\frac17\ln(0.98559)=0.21\%\)。
  • 债券列用式 (24.2),取 Merrill Lynch 指数 1996 年 12 月至 2007 年 6 月的平均收益率,\(R=40\%\),无风险利率取 7 年 swap 利率减 10 bp。A 级:平均收益率 5.995%,7 年 swap 5.408%,无风险利率 5.308%,\(\bar\lambda=(0.05995-0.05308)/0.6=1.15\%\)。

结论:两者的比值对投资级很高,并随评级下降而下降;差值则随评级下降而上升。

24.5.2 债券的预期超额收益

原书表 24.4 把同样的信息换成"债券比无风险利率多赚多少"(单位 bp):

评级 对国债利差 无风险利率对国债利差 覆盖历史违约所需利差 预期超额收益
Aaa 78 42 2 34
Aa 86 42 5 39
A 111 42 12 57
Baa 169 42 25 102
Ba 322 42 130 150
B 523 42 340 141
Caa 1146 42 750 354

以 A 级为例:对 7 年期国债的利差 111 bp 中,42 bp 是国债与无风险利率代理之间的利差,12 bp 用于覆盖预期违约损失(历史风险率 0.21% × 损失率 0.6),剩下 57 bp 是超额收益。

几点观察:

  • 违约概率估计的巨大比例差异只转化为较小(但显著)的超额收益:Aaa 的比值是 17,超额收益仅 34 bp。
  • 超额收益大体随信用质量下降而上升(B 级是例外)。
  • 超额收益随时间变化:2001、2002 和 2003 年上半年较高,之后到危机前较低。

24.5.3 现实世界概率与风险中性概率

从债券利差推出的是风险中性违约概率:在风险中性世界里计算含违约风险的期望现金流,再按无风险利率贴现,就得到债券价格(例 24.2 正是这样算的)。从历史数据得到的是现实世界(physical, real-world)违约概率。

表 24.4 的预期超额收益与两种概率的差异是同一件事的两面:如果债券没有超额收益,两种概率就相同;反之亦然。

金融直觉:你在 CFA 二级/三级用过两种贴现方式:一是用"真实概率"算期望现金流,再用含风险溢价的折现率贴现;二是把概率"调整"成风险中性概率,再用无风险利率贴现。两种方式得到同一个价格,风险溢价要么放在分母(折现率),要么放进分子(被放大的违约概率)。债券利差推出的 PD 属于第二种,所以它天然比历史 PD 大。 对照 CPA:IFRS 9 / CAS 22 的预期信用损失要求"无偏、概率加权"的 PD,即现实世界 PD(加前瞻性调整),并用实际利率折现。如果直接拿 CDS 隐含 PD 去计提 ECL,会把市场要求的风险溢价当成预期损失,减值会明显偏高。反过来,公允价值计量(例如 CVA 进入衍生品公允价值)要用市场隐含的风险中性 PD。

24.5.4 为什么差别这么大

这等价于问:为什么公司债平均比无风险利率赚得多?原书给出四个解释:

  1. 流动性补偿。公司债流动性差,投资者要求补偿。这一点成立,但研究(Dick-Nielsen, Feldhütter & Lando 2012)表明流动性成分相对较小,不能解释全部差异。
  2. 主观违约概率更高。交易员可能考虑了比历史更糟的萧条情景。这很难解释超额收益的大部分。
  3. 违约不是独立的——最重要的原因。违约率逐年变化很大:Moody's 统计的年违约率从 1979 年的 0.09% 到 2001 年的 3.97%、2009 年的 5.35%。这种波动产生不可分散的系统性风险,债券投资者因承担它而获得回报,与 CAPM 中股票的风险溢价类似。违约率的逐年变化可能来自宏观经济,也可能来自一家公司违约引发其他公司违约,即信用传染(credit contagion)。
  4. 难以分散的特质风险。股票组合大约 30 只就能分散大部分特质风险,债券却不行。单只债券的收益高度偏斜、上行有限(例如 99.75% 的概率赚 7%,0.25% 的概率亏 60%),要分散需要成千上万只债券(Amato & Remolona 2003 称之为"信用利差之谜")。实际的债券组合大多远未充分分散,因此投资者也可能为特质风险获得补偿。

24.5.5 该用哪一种

  • 估值(给信用衍生品定价、估计违约风险对价格的影响)→ 用风险中性概率。计算期望现金流的现值,几乎总是隐含着风险中性估值。
  • 情景分析(估计未来可能的违约损失、信用 VaR、经济资本)→ 用现实世界概率。

这条规则在量化实践中很容易被违反:把 CDS 隐含的违约概率直接当作"真实违约频率"去做风险预算或回测,会严重高估违约;反过来用历史违约率给信用产品定价,会系统性低估信用溢价。


24.6 用股价估计违约概率:Merton 模型

24.6.1 股权是公司资产的看涨期权

信用评级调整得不频繁,股价则每时每刻都在反映新信息。Merton(1974)提出:公司的股权是以公司资产为标的的期权。

简化假设:公司只有一笔 \(T\) 时刻到期的零息债务。记号:

  • \(V_0,V_T\):今天和 \(T\) 时的公司资产价值;
  • \(E_0,E_T\):今天和 \(T\) 时的股权价值;
  • \(D\):\(T\) 时应偿还的债务;
  • \(\sigma_V\):资产波动率(假设为常数);\(\sigma_E\):股权的瞬时波动率。

若 \(V_T<D\),公司理性地选择违约,股权价值为 0;若 \(V_T>D\),公司偿还债务,股权价值为 \(V_T-D\)。所以

\[E_T=\max(V_T-D,\,0)\]

这正是行权价为 \(D\) 的看涨期权。由 BSM 公式:

\[E_0=V_0N(d_1)-De^{-rT}N(d_2)\tag{24.3}\]
\[d_1=\frac{\ln(V_0/D)+(r+\sigma_V^2/2)T}{\sigma_V\sqrt T},\qquad d_2=d_1-\sigma_V\sqrt T\]

债务今天的价值为 \(V_0-E_0\)。风险中性违约概率是 \(V_T<D\) 的风险中性概率,即 \(N(-d_2)\)。\(d_2\) 衡量资产价值距离违约门槛有多少个标准差,常称为距离违约(distance to default)。

24.6.2 从可观测量反推

\(V_0\) 和 \(\sigma_V\) 不能直接观测。但对上市公司,\(E_0\) 可以观测,这给出式 (24.3) 一个方程;\(\sigma_E\) 可以从历史股价或期权隐含波动率估计。由伊藤引理(第 14 章),股权的波动率与资产波动率满足

\[\sigma_EE_0=\frac{\partial E}{\partial V}\sigma_VV_0=N(d_1)\sigma_VV_0\tag{24.4}\]

推导拆解:式 (24.4) 为什么成立?股权 \(E\) 是资产 \(V\) 的函数。\(V\) 变动一个小量 \(\Delta V\) 时,股权变动约为 \(\frac{\partial E}{\partial V}\Delta V\)(一阶泰勒展开,也就是期权 Delta 的含义)。"波动率 × 价值"衡量的是金额波动的大小:资产的金额波动是 \(\sigma_VV_0\),传导到股权就是 \(\frac{\partial E}{\partial V}\sigma_VV_0\),它应等于股权自身的金额波动 \(\sigma_EE_0\)。伊藤引理给出的是严格版本,但在波动率这一项上,结论和一阶近似相同。 看涨期权的 Delta 是 \(N(d_1)\),所以 \(\frac{\partial E}{\partial V}=N(d_1)\)。改写为 \(\sigma_E=N(d_1)\frac{V_0}{E_0}\sigma_V\):股权波动率 = 资产波动率 × 杠杆倍数(\(V_0/E_0\))× Delta。例 24.3 中 \(V_0/E_0=12.4/3\approx4.1\),所以 21% 的资产波动率被放大成 80% 的股权波动率。 解法上:两个方程、两个未知数(\(V_0,\sigma_V\)),其余都可观测,所以是一个二元非线性方程组,交给数值求根即可。

两式联立解出 \(V_0\) 和 \(\sigma_V\)。原书用 Excel Solver 最小化 \(F(x,y)^2+G(x,y)^2\)(\(F,G\) 分别为两个方程的残差);用 Python 时可以直接用 scipy.optimize.fsolve。

例 24.3 某公司股权价值 \(E_0=3\)(百万美元),股权波动率 \(\sigma_E=0.80\),一年后需偿还债务 \(D=10\),\(T=1\),无风险利率 \(r=5\%\)。联立求解得 \(V_0=12.40\),\(\sigma_V=0.2123\),\(d_2=1.1408\),违约概率 \(N(-d_2)=12.7\%\)。

再看债务:其市值为 \(V_0-E_0=9.40\),承诺还款的现值为 \(10e^{-0.05}=9.51\),所以违约造成的预期损失约为 \((9.51-9.40)/9.51\approx1.2\%\)(相对于无违约价值)。由于预期损失 = 违约概率 × (1 − 回收率),回收率约为 \(1-1.2/12.7\approx91\%\)(占无违约价值;不对中间结果取整时约为 90%)。

这个例子显示了 Merton 模型的一个特点:资产只有在跌破债务时才违约,而且跌破时通常不会跌太多,所以隐含回收率很高。

24.6.3 扩展与实证

  • 扩展:资产价值一旦跌破某个障碍水平就违约(首次通过模型,first-passage model);债务在多个时点偿付。
  • 实证:Merton 模型及其扩展给出的违约概率排序很好,无论是风险中性还是现实世界的违约概率。因此可以用一个单调变换把模型输出映射成准确的违约概率。Moody's KMV 把它映射为现实世界违约概率,称为 EDF(expected default frequency);CreditGrades 用 Merton 类模型估计信用利差(与风险中性违约概率密切相关)。
  • 隐含假设:把理论上属于风险中性的 \(N(-d_2)\) 用来估计现实世界违约概率,隐含的假设是"不同公司风险中性违约概率的排序与现实世界违约概率的排序相同"。

24.7 衍生品交易中的信用风险

24.7.1 ISDA 主协议、净额结算与违约事件

本节讨论双边清算(bilaterally cleared)的场外衍生品。双方的交易通常受 ISDA 主协议(ISDA Master Agreement)约束,其中关键条款是净额结算(netting):所有未平仓交易在 (a) 违约时计算索偿、(b) 计算应缴抵押品时,被视为一笔交易。

一方未按要求付款、未按要求缴纳抵押品或宣布破产,即构成违约事件,另一方有权终止所有未平仓交易。非违约方在两种情况下有损失:

  1. 交易总价值对非违约方为正,且超过违约方所缴的抵押品——非违约方就未抵押的部分成为无担保债权人;
  2. 交易总价值对违约方为正,且非违约方所缴的抵押品超过该值——非违约方就多缴抵押品的返还成为无担保债权人。

(这里忽略了替换交易时的买卖价差成本。)

24.7.2 CVA 与 DVA

第 9 章已介绍:CVA(credit value adjustment)是对手方违约给银行造成的预期成本的现值;DVA(debit/debt value adjustment)是银行自己违约给对手方造成的预期成本的现值——银行可能违约,意味着它可能不必支付某些款项,这对银行是一种"收益"。设 \(f_{nd}\) 为无违约价值(BSM 等定价模型给出的都是无违约价值),考虑双方违约后的价值为

\[f_{nd}-\text{CVA}+\text{DVA}\]

设最长交易期限为 \(T\),把 \([0,T]\) 分成 \(N\) 个区间:

\[\text{CVA}=\sum_{i=1}^Nq_iv_i,\qquad \text{DVA}=\sum_{i=1}^Nq_i^*v_i^*\]

\(q_i\) 是对手方在第 \(i\) 个区间违约的风险中性概率,\(v_i\) 是对手方在该区间中点违约时银行预期损失的现值;\(q_i^*\)、\(v_i^*\) 是银行违约的对应量。

\(q_i\) 的计算 因为是在估值,必须用风险中性概率。估计对手方多个期限的信用利差,插值得到 \(s(t_i)\);由式 (24.2),0 到 \(t_i\) 的平均风险率为 \(s(t_i)/(1-R)\);由式 (24.1),存活到 \(t_i\) 的概率为 \(\exp[-s(t_i)t_i/(1-R)]\)。于是

\[q_i=\exp\Big[-\frac{s(t_{i-1})\,t_{i-1}}{1-R}\Big]-\exp\Big[-\frac{s(t_i)\,t_i}{1-R}\Big]\]

\(q_i^*\) 用银行自身的信用利差同理计算。

白话解释:CVA \(=\sum q_iv_i\) 就是把 ECL 的"PD × LGD × EAD × 折现"按时间切片后加总。\(q_i\) 是第 \(i\) 段的边际 PD(存活到段首的概率减去存活到段尾的概率),\(v_i\) 已经把 LGD(\(1-R\))、期望敞口 EAD 和折现合在一起。和贷款 ECL 的最大差别在于:贷款的敞口基本确定(本金加利息),衍生品的敞口 \(\max(V,0)\) 随市场变动,今天可能为负、明天可能很大,所以要用模拟求它的期望。 这里把 \(q_i\) 和 \(v_i\) 直接相乘,隐含假设是"对手方何时违约"与"那时敞口多大"相互独立;24.7.5 的错向风险讨论的正是这个假设失效的情形。

\(v_i\) 的计算(无抵押) 通常需要非常耗时的蒙特卡洛模拟:

  1. 在风险中性世界中模拟决定交易无违约价值的所有市场变量;
  2. 在每条路径的每个区间中点,计算银行对该对手方的敞口 \(\max(V,0)\),\(V\) 为全部(净额结算后)交易对银行的总价值;
  3. \(v_i\) = 各路径平均敞口的现值 × (1 − 回收率)。

\(v_i^*\) 由对手方对银行的敞口 \(\max(-V,0)\) 同理算出。

24.7.3 有抵押时:补救期

有抵押协议时,需要在每条路径上估计违约时双方持有的抵押品。通常假设对手方在违约前 \(c\) 天停止缴纳抵押品、停止返还多余的抵押品。\(c\) 一般为 10 或 20 天,称为补救期(cure period)或风险保证金期(margin period of risk)。因此除了违约时点的交易价值,还要计算违约前 \(c\) 天的交易价值。

例 24.4 双向零门槛抵押协议:每一方须向另一方缴纳 \(\max(V,0)\) 的抵押品,\(V\) 为交易对另一方的价值。补救期 20 天,\(\tau\) 为某区间中点:

情形 \(\tau\) 时交易对银行的价值 20 天前的价值 银行的敞口 原因
1 50 45 5 银行只持有 45 的抵押品
2 50 55 0 银行持有 55 的抵押品,足够
3 −50 −45 0 银行只缴了 45,少于欠对方的 50
4 −50 −55 5 对手方持有银行缴的 55,违约后不返还多缴的 5

情形 4 说明:即使交易对银行是负价值,银行也可能有信用敞口——多缴的抵押品拿不回来。

24.7.4 峰值敞口与增量计算

峰值敞口(peak exposure)是各区间中点模拟敞口的高分位数,如 97.5% 分位数:10,000 次模拟时取第 250 大的敞口。最大峰值敞口是各中点峰值敞口中的最大者。(峰值敞口属于情景分析度量,理论上应在现实世界而非风险中性世界中计算,但实务中通常忽略这一区别。)

增量计算:银行通常把所有模拟路径以及每条路径上的估值都存储下来。新增一笔交易时,只需在这些路径上为新交易估值,就能算出它对 CVA/DVA 的增量影响。新交易与现有交易正相关,可能增加 CVA 和 DVA;负相关(例如部分平掉现有交易),可能减少它们。

24.7.5 错向风险与正向风险

上面的方法假设对手方的违约概率与敞口相互独立。如果两者正相关——对手方越可能违约时,银行对它的敞口越大——称为错向风险(wrong-way risk);负相关称为正向风险(right-way risk)。典型的错向风险:向一家公司买入以该公司自身股票为标的的看跌期权;或者向一家主要业务在某国的银行买入该国货币贬值的保护。处理错向风险需要更复杂的模型,把违约强度与市场变量联动建模。

每个对手方都有一个 CVA 和一个 DVA。它们可以看作随市场变量、对手方信用利差、银行自身信用利差变化的衍生品,常像其他衍生品一样用希腊字母和情景分析管理风险。

24.7.6 信用风险缓释

  • 净额结算。三笔无抵押交易,对银行的价值为 +10、+30、−25(百万美元)。如果独立处理,对手违约时银行的敞口是 \(10+30+0=40\);有净额结算时视为一笔价值 15 的交易,敞口降为 15。
  • 抵押协议。抵押品可以是现金(计息)或可交易证券;证券市值要打折计为现金等价物,折扣称为估值折扣(haircut)。违约时衍生品享受特殊待遇:非违约方可以直接保留对方缴纳的抵押品,通常无需昂贵冗长的法律程序。
  • 降级触发条款(downgrade trigger)。主协议可以规定:对手方评级跌破某一水平(如 BBB)时,银行有权按市价平掉所有交易。它不能防范评级的大幅跳跃(如从 A 直接违约),而且只有在很少被使用时才有效。

Enron 的教训(Business Snapshot 24.1) Enron 于 2001 年 12 月破产,直到最后几天仍是投资级(Moody's Baa3,S&P BBB),但它的股价此前已急跌,24.6 节那样的模型给出的违约概率早已急升。Enron 有大量带降级触发条款的衍生品:一旦在 2001 年 10 月被降到投资级以下,对手方会平掉所有对 Enron 价值为负的交易,Enron 必须立刻支付巨额现金,从而立即破产。当时 Enron 正与 Dynegy 洽谈交易,仍有存活的可能;提前逼其破产对债权人和股东都不利。评级机构因此陷入两难:降级等于签发"死亡令",不降级则它还有一线生机。教训是:降级触发条款被大量使用时,可能导致公司提前破产。

24.7.7 两个可以解析计算的特例

特例 1:单一、无抵押、只在 \(T\) 时由对手方向银行支付的衍生品(如银行向对手方买入欧式期权)。任何未来时点的敞口就是衍生品的无违约价值,其现值就是今天的无违约价值,所以对所有 \(i\) 有 \(v_i=f_{nd}(1-R)\)。DVA 为 0,

\[\text{CVA}=(1-R)f_{nd}\sum_iq_i,\qquad f=f_{nd}-(1-R)f_{nd}\sum_iq_i\tag{24.5}\]

对手方发行的 \(T\) 年零息债券是这类衍生品的特例(假设回收率相同):\(B=B_{nd}-(1-R)B_{nd}\sum_iq_i\)(式 24.6)。于是 \(f/f_{nd}=B/B_{nd}\)。记 \(y\) 和 \(y_{nd}\) 分别为对手方零息债和无风险零息债的收益率,\(B=e^{-yT}\),\(B_{nd}=e^{-y_{nd}T}\),得

\[f=f_{nd}\,e^{-(y-y_{nd})T}\]

也就是说:把贴现率加上对手方 \(T\) 年期的信用利差即可。

例 24.5 一个 2 年期无抵押期权,BSM 价格为 3 美元。期权卖方 2 年期零息债的收益率比无风险利率高 1.5%。考虑违约风险后,期权价值为 \(3e^{-0.015\times2}=2.91\) 美元(假设这个期权单独存在,不与其他交易净额结算)。

特例 2:无抵押远期合约。银行约定在 \(T\) 时以价格 \(K\) 买入某资产,\(F_t\) 为 \(t\) 时的远期价格。\(t\) 时交易价值为 \((F_t-K)e^{-r(T-t)}\),敞口为 \(e^{-r(T-t)}\max(F_t-K,0)\)。在风险中性世界中 \(E[F_t]=F_0\),\(\ln F_t\) 的标准差为 \(\sigma\sqrt t\),由第 15b 章式 (15A.1),\(t\) 时的期望敞口为

\[w(t)=e^{-r(T-t)}\big[F_0N(d_1(t))-KN(d_2(t))\big],\qquad d_1(t)=\frac{\ln(F_0/K)+\sigma^2t/2}{\sigma\sqrt t},\quad d_2(t)=d_1(t)-\sigma\sqrt t\]

推导拆解:期望敞口为什么是一个看涨期权价格?\(t\) 时的敞口是 \(e^{-r(T-t)}\max(F_t-K,0)\),其中 \(e^{-r(T-t)}\) 是从 \(T\) 贴回 \(t\) 的常数,可以提到期望外面。剩下的 \(E[\max(F_t-K,0)]\) 是"对数正态变量超过 \(K\) 的部分的期望",第 15b 章式 (15A.1) 给出它等于 \(F_0N(d_1)-KN(d_2)\)(这里 \(E[F_t]=F_0\),方差参数 \(\sigma^2t\))。所以 \(w(t)\) 只是"未贴现到今天"的 Black 公式。再乘 \(e^{-rt_i}\) 贴回今天、乘 \(1-R\) 得到损失,就是 \(v_i\)。 直觉:远期合约今天的价值是 90.48,但敞口不是 90.48,因为金价上涨时敞口变大、下跌时敞口最多为 0(负值时银行欠对方,对方违约不伤银行)。这种不对称让期望敞口高于今天的价值,而且离到期越远、波动越大,敞口越大(135.73 → 201.18)。

于是 \(v_i=w(t_i)e^{-rt_i}(1-R)\)。注意 \(w(t)\) 就是一个期限为 \(t\) 的看涨期权价值(以远期价格为标的),敞口的形状天然是"期权形"的。

例 24.6(远期合约的 CVA) 银行与一家金矿公司约定:2 年后以每盎司 1,500 美元买入 100 万盎司黄金。当前 2 年期远期价格为 1,600 美元。把 2 年分为两个 1 年区间,对手方在两个区间的违约概率为 \(q_1=2\%\)、\(q_2=3\%\);\(r=5\%\),\(R=30\%\),黄金远期价格波动率 \(\sigma=20\%\),区间中点 \(t_1=0.5\)、\(t_2=1.5\)。

\[d_1(t_1)=\frac{\ln(1600/1500)+0.2^2\times0.5/2}{0.2\sqrt{0.5}}=0.5271,\qquad d_2(t_1)=0.3856\]
\[w(t_1)=e^{-0.05\times1.5}\big[1600N(0.5271)-1500N(0.3856)\big]=135.73,\qquad v_1=135.73\,e^{-0.025}\times0.7=92.67\]

同理 \(w(t_2)=201.18\),\(v_2=130.65\)。预期违约成本为 \(0.02\times92.67+0.03\times130.65=5.77\)。无违约价值为 \((1600-1500)e^{-0.1}=90.48\)(单位:百万美元),考虑对手方违约后价值为 \(90.48-5.77=84.71\)。

这个计算可以扩展到更频繁的违约时点(原书习题 24.29),DVA 也可同理计算(习题 24.30)。(原书中此例与 24.8 节的 copula 模拟例都编号为 Example 24.6,习题 24.29、24.30 提到的"Example 24.5"实际指本例。)


24.8 违约相关性

24.8.1 成因与两类模型

违约相关性(default correlation)指两家公司在大致相同的时间违约的倾向。成因有三:同行业或同地区的公司受相似外部事件影响;宏观经济使某些年份的平均违约率偏高;一家公司违约引发另一家违约(信用传染)。违约相关性意味着信用风险不能完全分散,这正是 24.5 节中风险中性违约概率高于现实世界违约概率的主要原因。它对计算多个对手方组合的违约损失分布至关重要。

两类模型:

  • 简约式模型(reduced form models):每家公司的风险率服从一个随机过程,并与宏观变量相关。数学上方便,能反映经济周期带来的违约相关;缺点是能达到的违约相关范围有限——即使两家公司的风险率完全相关,它们在同一短时期内同时违约的概率通常仍很低。对同行业、同国家或财务上相互依赖的公司,可能需要很高的违约相关,解决办法是让风险率有大幅跳跃。
  • 结构模型(structural models):与 Merton 模型类似,资产价值跌破某一水平即违约,让不同公司的资产过程相关来引入违约相关。优点是相关性可以任意高;缺点是计算慢。

24.8.2 违约时间的 Gaussian copula 模型

实践中最流行的工具是违约时间的 Gaussian copula 模型,可以证明它与 Merton 式结构模型相似。模型假设所有公司终将违约,然后刻画多家公司违约时间分布之间的相关。它既可以配合现实世界概率(违约时间分布的左尾由表 24.1 这样的评级数据估计),也可以配合风险中性概率(由 24.4 节的债券价格法估计)。

设 \(t_1,t_2\) 为两家公司的违约时间,它们的分布远非正态,没法直接用"二元正态"描述。做法是分位数对分位数(percentile-to-percentile)变换:

\[x_1=N^{-1}[Q_1(t_1)],\qquad x_2=N^{-1}[Q_2(t_2)]\]

\(Q_1,Q_2\) 是 \(t_1,t_2\) 的累计分布函数,\(N^{-1}\) 是标准正态分布函数的反函数。例如 \(t_1\) 分布的 5% 分位点被映射为 \(x_1=-1.645\),10% 分位点映射为 \(-1.282\)。按构造,\(x_1,x_2\) 各自是标准正态;模型假设它们联合服从二元正态——这就是"使用 Gaussian copula"的含义。

白话解释:违约时间 \(t_1\) 的分布形状很怪(大部分概率在很远的将来,左尾很薄),没法直接谈"相关系数"。分位数变换的做法是:不看 \(t_1\) 本身,只看它在自己分布里排第几(分位数 \(Q_1(t_1)\) 是 0 到 1 之间的数),再把这个排名换算成标准正态的 z 值。这样每家公司都被换成"一个标准正态的 z 值",z 越低代表越早违约。然后假设这些 z 值联合正态,相关系数就好定义了。 类比:你在 CFA 里比较不同分布的指标时会先做标准化;这里做的是更彻底的"按排名标准化",只保留排序信息,扔掉原始分布的形状,形状由 \(Q_i\) 单独负责。 小例子:某公司 5 年累计违约概率为 15%,则"5 年内违约"等价于 \(x<N^{-1}(0.15)=-1.04\)。

好处在于:\(t_1,t_2\) 的联合分布完全由两个边缘累计违约概率 \(Q_1,Q_2\) 加上一个相关参数决定。推广到 \(n\) 家公司:\(x_i=N^{-1}[Q_i(t_i)]\),假设 \((x_1,\dots,x_n)\) 服从多元正态。\(t_i,t_j\) 之间的违约相关用 \(x_i,x_j\) 的相关系数度量,称为 copula 相关(copula correlation);作为近似,常用两家公司股票收益的相关系数代替。

Gaussian copula 的本质是:把相关结构与边缘分布分开估计。变量本身不是多元正态,但每个变量经过变换后被假设为多元正态。Copula 的一般理论见第 02 册第 06a 章关于联合分布的部分。

例:模拟 10 家公司 5 年内的违约(原书也编号为例 24.6)。两两 copula 相关为 0.2,每家公司 1–5 年的累计违约概率为 1%、3%、6%、10%、15%。从两两相关 0.2 的 10 维正态分布中抽样 \(x_i\),再按下表转换为违约时间:

\(x\) 的范围 含义
\(x<N^{-1}(0.01)=-2.33\) 第 1 年违约
\(-2.33\le x<N^{-1}(0.03)=-1.88\) 第 2 年违约
\(-1.88\le x<N^{-1}(0.06)=-1.55\) 第 3 年违约
\(-1.55\le x<N^{-1}(0.10)=-1.28\) 第 4 年违约
\(-1.28\le x<N^{-1}(0.15)=-1.04\) 第 5 年违约
\(x\ge-1.04\) 5 年内不违约

重复多次,就得到 5 年内违约次数的分布。

24.8.3 单因子结构

为 \(n\) 家公司两两指定相关系数需要 \(n(n-1)/2\) 个参数,既难估计也难保证矩阵半正定。常用的办法是单因子模型:

\[x_i=a_iF+\sqrt{1-a_i^2}\,Z_i\tag{24.7}\]

\(F\) 是影响所有公司的共同因子,\(Z_i\) 是公司特有因子,\(F\) 与各 \(Z_i\) 是相互独立的标准正态变量,\(-1<a_i<1\)。于是 \(x_i\) 是标准正态,\(x_i\) 与 \(x_j\) 的相关为 \(a_ia_j\)。(\(a_i\) 有时近似取为该公司股票收益与一个充分分散的市场指数的相关系数。)

公司 \(i\) 在 \(T\) 前违约,当且仅当 \(N(x_i)<Q_i(T)\),即 \(x_i<N^{-1}[Q_i(T)]\),等价于

\[Z_i<\frac{N^{-1}[Q_i(T)]-a_iF}{\sqrt{1-a_i^2}}\]

所以给定因子 \(F\) 时的条件违约概率为

\[Q_i(T\mid F)=N\Big(\frac{N^{-1}[Q_i(T)]-a_iF}{\sqrt{1-a_i^2}}\Big)\tag{24.8}\]

推导拆解:从"违约条件"到式 (24.8) 的每一步:

  1. \(x_i<N^{-1}[Q_i(T)]\):违约时间早于 \(T\) 等价于 \(Q_i(t_i)<Q_i(T)\)(累计分布函数递增),两边同时用递增函数 \(N^{-1}\) 变换,不等号方向不变。
  2. 代入 \(x_i=a_iF+\sqrt{1-a_i^2}Z_i\),把 \(a_iF\) 移到右边,再两边除以正数 \(\sqrt{1-a_i^2}\),得到关于 \(Z_i\) 的不等式。
  3. 给定 \(F\) 后,右边是一个确定的数 \(c\);\(Z_i\) 是标准正态且与 \(F\) 独立,所以 \(P(Z_i<c)=N(c)\),这就是式 (24.8)。 为什么 \(x_i\) 仍是标准正态:它是独立正态变量的线性组合,均值 0,方差 \(a_i^2+(1-a_i^2)=1\)。两家公司只共享 \(F\),所以协方差(也即相关系数)\(=a_ia_j\mathrm{Var}(F)=a_ia_j\)。 金融上,这与 CFA 里的单指数模型(市场模型)同构:收益 = beta × 市场因子 + 特质项,两只股票的协方差只来自共同的市场因子。

在同质情形下,所有公司 \(Q_i=Q\),两两相关都是 \(\rho\)(\(a_i=\sqrt\rho\)):

\[Q(T\mid F)=N\Big(\frac{N^{-1}[Q(T)]-\sqrt\rho\,F}{\sqrt{1-\rho}}\Big)\tag{24.9}\]

这个公式是本章和下一章的枢纽。它的关键性质是条件独立:给定 \(F\),各公司是否违约相互独立。\(F\) 低(经济差)时条件违约概率高,\(F\) 高时低,违约相关完全来自共同因子。第 25 章将利用条件独立性,配合二项分布和数值积分为 CDO 分档定价。


24.9 信用 VaR

24.9.1 定义

信用 VaR(credit VaR)的定义与市场风险 VaR 类似。例如,置信度 99.9%、期限 1 年的信用 VaR,是我们有 99.9% 的把握 1 年内不会超过的信用损失。监管资本和银行内部的经济资本通常采用 1 年期限和很高的置信度。

24.9.2 Vasicek 公式

设银行持有大量相似的贷款(违约概率相同,两两 copula 相关相同)。在 Gaussian copula 下,由大数定律,给定 \(F\) 时式 (24.9) 的右边近似等于到 \(T\) 为止已违约贷款的比例。\(F\) 是标准正态,我们有 \(X\%\) 的把握 \(F>N^{-1}(1-X)=-N^{-1}(X)\)。代入式 (24.9)(它对 \(F\) 单调递减),得到:我们有 \(X\%\) 的把握,大组合在 \(T\) 年内的违约比例小于

\[V(X,T)=N\Big(\frac{N^{-1}[Q(T)]+\sqrt\rho\,N^{-1}(X)}{\sqrt{1-\rho}}\Big)\tag{24.10}\]

推导拆解:这一段压缩了三个想法。

  1. 大数定律:给定 \(F\),各笔贷款独立违约、违约概率都是 \(Q(T\mid F)\)。贷款数量很多时,实际违约比例几乎等于这个概率(就像掷很多次硬币,正面比例接近 1/2)。所以组合违约率不再是"随机的",而是 \(F\) 的确定函数,全部不确定性只剩 \(F\) 一个。
  2. 找 \(F\) 的坏分位数:违约率随 \(F\) 下降而上升,所以"违约率的 99.9% 分位数"对应"\(F\) 的 0.1% 分位数" \(F^*=N^{-1}(0.001)=-N^{-1}(0.999)=-3.09\)。这里用了标准正态的对称性 \(N^{-1}(1-X)=-N^{-1}(X)\)。
  3. 代入:把 \(F^*=-N^{-1}(X)\) 代进式 (24.9),\(-\sqrt\rho F^*\) 变成 \(+\sqrt\rho N^{-1}(X)\),即得式 (24.10)。 这一步能成立,关键是"单调函数的分位数 = 函数作用在分位数上",因此只有一个因子时才能这样直接求 VaR。

金融直觉:下文例 24.7 的数字可以和 CPA 的减值对照着看。ECL(预期损失)是 \(100\times2\%\times0.4=0.8\) 百万美元,计提在损益里;99.9% 的最坏损失是 5.13 百万美元。两者之差 4.33 百万美元是"非预期损失",由资本而不是拨备覆盖。巴塞尔 IRB 的资本要求正是按"\(V(0.999,1)\times\text{LGD}-\text{PD}\times\text{LGD}\)"这一思路设定的(另有期限调整),监管还为不同资产类别规定了 \(\rho\)。

这是 Vasicek(1987,2002 年发表于 Risk)的结果,\(V(X,T)\) 常称为"最坏情况违约率"(worst case default rate)。信用 VaR 的粗略估计为 \(L(1-R)V(X,T)\),\(L\) 为贷款组合规模;规模为 \(L_i\) 的单笔贷款贡献 \(L_i(1-R)V(X,T)\)。这一"可加性"使它成为巴塞尔协议内部评级法(IRB)监管信用资本公式的基础。

例 24.7 某银行零售贷款敞口 1 亿美元,1 年平均违约概率 2%,平均回收率 60%,copula 相关 0.1。

\[V(0.999,1)=N\Big(\frac{N^{-1}(0.02)+\sqrt{0.1}\,N^{-1}(0.999)}{\sqrt{0.9}}\Big)=0.128\]

即在 99.9% 的置信度下,最坏违约率为 12.8%。1 年 99.9% 信用 VaR 为 \(100\times0.128\times(1-0.6)=5.13\) 百万美元。注意:平均违约率只有 2%,相关性让尾部违约率放大到 6 倍多。

24.9.3 CreditMetrics

CreditMetrics 对所有对手方的评级变化做蒙特卡洛模拟来估计信用损失分布。每次模拟抽样一年内所有对手方的评级迁移和违约,重新估值所有未平仓合约,得到当年的信用损失总额;大量模拟后得到损失分布,从中读出信用 VaR。它计算量大,但优点是信用损失同时包含降级和违约造成的损失,还可以近似纳入 24.7 节的各种缓释条款。

评级迁移概率来自迁移矩阵。原书表 24.5 是 Moody's 1970–2012 年的一年评级迁移矩阵(%,已调整撤销评级):

初始 \ 一年后 Aaa Aa A Baa Ba B Caa Ca–C 违约
Aaa 90.59 8.31 0.89 0.17 0.03 0 0 0 0
Aa 1.25 89.48 8.05 0.90 0.20 0.04 0.01 0.01 0.08
A 0.08 2.97 89.80 6.08 0.79 0.13 0.03 0.01 0.10
Baa 0.04 0.30 4.58 88.43 5.35 0.84 0.14 0.02 0.30
Ba 0.01 0.09 0.52 6.61 82.88 7.72 0.67 0.07 1.43
B 0.01 0.05 0.16 0.65 6.39 81.69 6.40 0.57 4.08
Caa 0 0.02 0.03 0.19 0.81 9.49 72.06 4.11 13.29
Ca–C 0 0.03 0.12 0.07 0.57 3.48 9.12 57.93 28.69
违约 0 0 0 0 0 0 0 0 100

违约是吸收态。(原书正文举例时写的"A 级一年后仍为 A 的概率 90.91%"等数字与此表不一致,应是沿用了旧版数据,本书以表为准。)其他期限的迁移矩阵可以由一年矩阵推出(原书 Technical Note 11);在时间齐次的马尔可夫链假设下,最简单的近似就是矩阵乘方,如两年矩阵 \(\approx M^2\)。

不同对手方的评级变化不能假设独立。通常用 Gaussian copula 构造评级变化的联合分布,copula 相关一般取股票收益的相关系数,并用 24.8 节式 (24.7) 那样的因子模型。

示例 模拟一家 Aaa 公司和一家 Baa 公司一年内的评级变化,两家的股票收益相关为 0.2。每次抽样相关为 0.2 的 \(x_A,x_B\)(标准正态),按迁移概率的累计值切分:

  • Aaa 公司:\(N^{-1}(0.9059)=1.3159\),\(x_A<1.3159\) 时保持 Aaa;\(N^{-1}(0.9059+0.0831)=2.2904\),\(1.3159\le x_A<2.2904\) 时变为 Aa;\(N^{-1}(0.9979)=2.8627\),\(2.2904\le x_A<2.8627\) 时变为 A;依此类推。
  • Baa 公司:\(N^{-1}(0.0004)=-3.3528\),\(x_B<-3.3528\) 时升为 Aaa;\(N^{-1}(0.0034)=-2.7065\),介于两者之间时升为 Aa;\(N^{-1}(0.0492)=-1.6527\),介于 \(-2.7065\) 与 \(-1.6527\) 之间时升为 A;……\(x_B>N^{-1}(0.9970)=2.7478\) 时违约。Aaa 公司一年内不会违约。

注意这里的映射方向:好评级在左尾,违约在右尾,与违约时间模型的方向相反。这只是一个约定,只要所有公司一致即可。


量化实战

本章内容在量化中的用途

  1. 信用曲线与定价。"利差 → 风险率 → 存活概率"是信用债、CDS(第 25 章)定价的基本链条;按期限 bootstrap 风险率与 bootstrap 零息曲线是同一套代码结构。资产互换利差、CDS–债券基差交易都建立在这个框架上。
  2. 违约风险因子。Merton 模型的距离违约 \(d_2\)、EDF 是常见的股票和信用因子,可用于财务困境异象研究、信用债的选券模型,以及股票–信用跨资产信号(Enron 案例说明股价下跌往往领先于评级下调)。实务中 \(D\) 常取"短期债务 + 一半长期债务",\(T=1\),\(\sigma_E\) 用过去一年的日收益估计——这些是行业惯例而非原书内容,使用时应自行检验。
  3. 组合信用风险。Vasicek 单因子公式和 Gaussian copula 是信用组合风险与经济资本的标准工具;迁移矩阵可直接用于 CreditMetrics 式的蒙特卡洛。"相关性在压力时期上升""回收率与违约率负相关"是压力测试必须考虑的两个事实。
  4. 交易对手风险(XVA)。做场外衍生品的机构需要理解 CVA/DVA、净额结算、抵押与补救期对报价的影响。"存储路径、只为新交易重估"的增量 CVA 是系统实现的常用模式。
  5. 常见误区。把风险中性违约概率当作真实违约频率做风险预算或回测,会严重高估违约;反之,用历史违约率给信用产品定价,会低估信用溢价。

Python 示例:从违约率表到信用 VaR

代码分七步:(1) 由表 24.1 的累计违约率算无条件、条件违约概率和平均风险率;(2) 复现例 24.2 的 bootstrap;(3) 复现例 24.3 的 Merton 模型;(4) 复现例 24.6 的远期 CVA,用蒙特卡洛核对期望敞口,并按月细分违约时点;(5) 用单因子 Gaussian copula 模拟 10 家公司的违约次数,看相关性如何改变分布形状;(6) 复现例 24.7 的 Vasicek 信用 VaR,并用 2,000 笔贷款的有限组合模拟核对;(7) 用表 24.5 做 Aaa、Baa 两家公司的相关评级迁移模拟。

import numpy as np
from scipy.stats import norm
from scipy.optimize import brentq, fsolve
rng = np.random.default_rng(24)

# ---------- 1) 累计违约率 -> 无条件/条件违约概率与平均风险率(表 24.1,Caa-C) ----------
T = np.array([1, 2, 3, 4, 5])
Qc = np.array([16.448, 27.867, 36.908, 44.128, 50.366]) / 100
uncond = np.diff(np.concatenate([[0], Qc]))
cond = uncond / np.concatenate([[1], 1 - Qc[:-1]])
lam_bar = -np.log(1 - Qc) / T
print("第t年无条件违约概率:", np.round(uncond, 4))
print("第t年条件违约概率  :", np.round(cond, 4))
print("0~t 平均风险率     :", np.round(lam_bar, 4))

# ---------- 2) 例 24.2:用债券价格 bootstrap 风险中性风险率 ----------
r, R, cpn = 0.05, 0.40, 4.0          # 无风险利率、回收率(占面值)、半年票息
def bond_rf(T_, y):                  # 半年付息、面值 100 的债券按连续复利 y 定价
    ts = np.arange(0.5, T_ + 1e-9, 0.5)
    return np.sum(cpn * np.exp(-y * ts)) + 100 * np.exp(-y * T_)

def pv_loss(lams, T_):               # 违约只在每半年中点发生
    total, ts = 0.0, np.arange(0.5, T_ + 1e-9, 0.5)
    H = lambda t: sum(l * np.clip(t - i, 0, 1) for i, l in enumerate(lams))  # 累计风险
    for tau in ts - 0.25:
        rem = ts[ts > tau]
        fwd = np.sum(cpn * np.exp(-r * (rem - tau))) + 100 * np.exp(-r * (T_ - tau))
        p = np.exp(-H(tau - 0.25)) - np.exp(-H(tau + 0.25))
        total += p * (fwd - 100 * R) * np.exp(-r * tau)
    return total

lams = []
for T_, y in [(1, 0.065), (2, 0.068), (3, 0.0695)]:
    target = bond_rf(T_, r) - bond_rf(T_, y)
    lams.append(brentq(lambda x: pv_loss(lams + [x], T_) - target, 0, 1))
    print(f"{T_}年债: 价格 {bond_rf(T_, y):.2f}, 无风险价 {bond_rf(T_, r):.2f}, "
          f"违约损失现值 {target:.2f}, 第{T_}年风险率 {lams[-1]:.2%}")
print("式(24.2)近似:", [f"{s/(1-R):.2%}" for s in (0.015, 0.018, 0.0195)])

# ---------- 3) 例 24.3:Merton 模型联立求解 ----------
E0, sE, D, Tm = 3.0, 0.80, 10.0, 1.0
def merton(x):
    V, sV = x
    d1 = (np.log(V / D) + (r + sV**2 / 2) * Tm) / (sV * np.sqrt(Tm)); d2 = d1 - sV * np.sqrt(Tm)
    return [V * norm.cdf(d1) - D * np.exp(-r * Tm) * norm.cdf(d2) - E0,
            norm.cdf(d1) * sV * V - sE * E0]
V0, sV = fsolve(merton, [E0 + D, sE * E0 / (E0 + D)])
d2 = (np.log(V0 / D) + (r - sV**2 / 2) * Tm) / (sV * np.sqrt(Tm))
el = 1 - (V0 - E0) / (D * np.exp(-r * Tm))
print(f"Merton: V0={V0:.2f} sigmaV={sV:.4f} d2(距离违约)={d2:.4f} PD=N(-d2)={norm.cdf(-d2):.2%} "
      f"预期损失={el:.2%} 隐含回收率={1-el/norm.cdf(-d2):.0%}")

# ---------- 4) 例 24.6:远期合约的 CVA,解析期望敞口 + 蒙特卡洛核对 + 按月细分 ----------
F0, K, sig, Rc, Tf = 1600.0, 1500.0, 0.20, 0.30, 2.0
def w_exp(t):                         # 期望敞口在 t 时的值(折到 t),式 w(t)
    d1 = (np.log(F0 / K) + sig**2 * t / 2) / (sig * np.sqrt(t)); d2 = d1 - sig * np.sqrt(t)
    return np.exp(-r * (Tf - t)) * (F0 * norm.cdf(d1) - K * norm.cdf(d2))
v = lambda t: w_exp(t) * np.exp(-r * t) * (1 - Rc)
cva2 = 0.02 * v(0.5) + 0.03 * v(1.5)
print(f"CVA(两个区间) = {cva2:.2f}  无违约价值 {(F0-K)*np.exp(-r*Tf):.2f} -> 调整后 {(F0-K)*np.exp(-r*Tf)-cva2:.2f}")
Ft = F0 * np.exp(-sig**2 * 0.5 / 2 + sig * np.sqrt(0.5) * rng.standard_normal(200_000))
print(f"t=0.5 期望敞口: 解析 {w_exp(0.5):.2f}, 蒙特卡洛 {np.mean(np.exp(-r*1.5)*np.maximum(Ft-K,0)):.2f}")
tm = (np.arange(24) + 0.5) / 12                       # 按月:每月违约概率 = 年概率/12
q = np.where(tm < 1, 0.02 / 12, 0.03 / 12)
print(f"CVA(按月 24 个区间) = {np.sum(q * v(tm)):.2f}")

# ---------- 5) Gaussian copula:10 家公司 5 年违约次数分布 ----------
Qcum = np.array([0.01, 0.03, 0.06, 0.10, 0.15]); thr = norm.ppf(Qcum)
def sim_defaults(rho, n_sim=200_000, n=10):
    F = rng.standard_normal((n_sim, 1)); Z = rng.standard_normal((n_sim, n))
    x = np.sqrt(rho) * F + np.sqrt(1 - rho) * Z           # 两两相关 rho,式 (24.7)
    year = np.searchsorted(thr, x) + 1                    # 1..5 为违约年份,6 表示 5 年内不违约
    return (year <= 5).sum(axis=1)
for rho in (0.0, 0.2, 0.6):
    k = sim_defaults(rho)
    print(f"rho={rho}: P(0 次违约)={np.mean(k==0):.3f}  P(>=3 次)={np.mean(k>=3):.4f}  P(>=5 次)={np.mean(k>=5):.4f}  均值={k.mean():.3f}")

# ---------- 6) 例 24.7:Vasicek 信用 VaR,并用有限组合蒙特卡洛核对 ----------
PD, rho, Rr, X = 0.02, 0.10, 0.60, 0.999
WCDR = norm.cdf((norm.ppf(PD) + np.sqrt(rho) * norm.ppf(X)) / np.sqrt(1 - rho))
print(f"99.9% 最坏违约率 {WCDR:.4f}, 信用 VaR = {100*WCDR*(1-Rr):.2f} 百万美元")
n_loans, n_sim = 2000, 100_000
F = rng.standard_normal(n_sim)
p_F = norm.cdf((norm.ppf(PD) - np.sqrt(rho) * F) / np.sqrt(1 - rho))   # 式 (24.9)
frac = rng.binomial(n_loans, p_F) / n_loans                             # 条件独立 -> 二项
print(f"2000 笔贷款模拟:违约率 99.9% 分位 {np.quantile(frac, X):.4f},均值 {frac.mean():.4f}")

# ---------- 7) CreditMetrics:Aaa 与 Baa 一年评级迁移的相关模拟(表 24.5) ----------
row_aaa = np.array([90.59, 8.31, 0.89, 0.17, 0.03, 0, 0, 0, 0]) / 100
row_baa = np.array([0.04, 0.30, 4.58, 88.43, 5.35, 0.84, 0.14, 0.02, 0.30]) / 100
labels = ["Aaa", "Aa", "A", "Baa", "Ba", "B", "Caa", "Ca-C", "D"]
def cut(row):   # 原书约定:评级从好到坏对应 x 从左到右,违约在右尾
    return norm.ppf(np.clip(np.cumsum(row)[:-1], 1e-12, 1 - 1e-12))
cA, cB = cut(row_aaa), cut(row_baa)
print("Aaa 分界点:", np.round(cA[:3], 4), " Baa 分界点:", np.round(cB[:3], 4), "违约门槛", np.round(cB[-1], 4))
xA = rng.standard_normal(500_000); xB = 0.2 * xA + np.sqrt(1 - 0.2**2) * rng.standard_normal(500_000)
gA, gB = np.searchsorted(cA, xA), np.searchsorted(cB, xB)
print("Baa 模拟迁移频率:", " ".join(f"{l}:{p:.4f}" for l, p in zip(labels, np.bincount(gB, minlength=9) / len(gB))))
down_A, down_B = gA > 0, gB > 3
print(f"两家同时降级: 模拟 {np.mean(down_A & down_B):.4f} vs 独立假设 {np.mean(down_A)*np.mean(down_B):.4f}")

关键输出:

第t年无条件违约概率: [0.1645 0.1142 0.0904 0.0722 0.0624]
第t年条件违约概率  : [0.1645 0.1367 0.1253 0.1144 0.1116]
0~t 平均风险率     : [0.1797 0.1633 0.1535 0.1455 0.1401]
1年债: 价格 101.33, 无风险价 102.83, 违约损失现值 1.50, 第1年风险率 2.46%
2年债: 价格 101.99, 无风险价 105.52, 违约损失现值 3.53, 第2年风险率 3.48%
3年债: 价格 102.47, 无风险价 108.08, 违约损失现值 5.61, 第3年风险率 3.74%
式(24.2)近似: ['2.50%', '3.00%', '3.25%']
Merton: V0=12.40 sigmaV=0.2123 d2(距离违约)=1.1408 PD=N(-d2)=12.70% 预期损失=1.23% 隐含回收率=90%
CVA(两个区间) = 5.77  无违约价值 90.48 -> 调整后 84.71
t=0.5 期望敞口: 解析 135.73, 蒙特卡洛 135.80
CVA(按月 24 个区间) = 5.73
rho=0.0: P(0 次违约)=0.196  P(>=3 次)=0.1805  P(>=5 次)=0.0102  均值=1.504
rho=0.2: P(0 次违约)=0.318  P(>=3 次)=0.2203  P(>=5 次)=0.0505  均值=1.500
rho=0.6: P(0 次违约)=0.532  P(>=3 次)=0.2233  P(>=5 次)=0.1189  均值=1.497
99.9% 最坏违约率 0.1282, 信用 VaR = 5.13 百万美元
2000 笔贷款模拟:违约率 99.9% 分位 0.1345,均值 0.0200
Aaa 分界点: [1.3159 2.2904 2.8627]  Baa 分界点: [-3.3528 -2.7065 -1.6527] 违约门槛 2.7478
Baa 模拟迁移频率: Aaa:0.0004 Aa:0.0031 A:0.0455 Baa:0.8845 Ba:0.0536 B:0.0084 Caa:0.0014 Ca-C:0.0003 D:0.0029
两家同时降级: 模拟 0.0116 vs 独立假设 0.0063

读输出时注意几点:

  • Caa–C 的条件违约概率逐年下降(16.4% → 11.2%),印证了 24.2.1 节"低评级活得越久越安全"的规律;第 3 年条件违约概率 12.53% 与正文一致。
  • bootstrap 结果 2.46%、3.48%、3.74% 与原书完全一致,并与式 (24.2) 的近似值 2.50%、3.50%、3.75%(由平均值换算)非常接近。
  • Merton 模型的结果与例 24.3 一致;不对中间量取整时,隐含回收率约 90%。
  • 远期 CVA 两区间结果为 5.77,与原书一致;按月细分后为 5.73,差别很小——区间中点近似已经足够好。
  • 相关性不改变违约次数的均值(都是约 1.5 次),但把概率质量推向两端:\(\rho\) 从 0 升到 0.6,"一家都不违约"的概率从 0.20 升到 0.53,"至少 5 家违约"的概率从 1% 升到 12%。这正是第 25 章中权益档与高级档对相关性反向敏感的根源。
  • Vasicek 的 12.82% 是"无穷多笔贷款"的极限。2,000 笔贷款的模拟分位数 13.45% 略高,差别来自有限组合的特质风险(给定 \(F\) 时二项分布的抽样噪声)和 99.9% 分位数本身的模拟误差。
  • 相关 0.2 时,两家公司同时降级的概率(1.16%)几乎是独立假设下的两倍(0.63%)。

本章小结

违约概率可以从历史数据、债券价格和股价三种来源估计。风险率(违约强度)是核心概念,累计违约概率 \(Q(t)=1-e^{-\bar\lambda t}\);由利差得到 \(\bar\lambda\approx s/(1-R)\),更精确的做法是按债券价格 bootstrap。债券价格给出的是风险中性违约概率,历史数据给出的是现实世界违约概率,前者显著更高,主要原因是违约相关带来的系统性风险和难以分散的特质风险;估值用风险中性概率,情景分析和信用 VaR 用现实世界概率。Merton 模型把股权看作公司资产的看涨期权,由股价和股票波动率反推资产价值和违约概率 \(N(-d_2)\),排序能力好,经单调映射得到 EDF。在衍生品交易中,CVA 是银行因对手方可能违约而对衍生品组合价值的调减,DVA 是因自身可能违约而调增,二者都要用蒙特卡洛模拟未来期望敞口;净额结算、抵押品和降级触发是主要的缓释手段,补救期决定了有抵押时的残余敞口。违约相关性用 Gaussian copula 刻画:它把边缘违约分布与相关结构分开,单因子形式给出条件违约概率;Vasicek 公式由此得出大组合的最坏违约率,是监管资本的基础,CreditMetrics 则对评级迁移做相关模拟。

概念 / 公式 内容
风险率与累计违约概率 \(V(t)=e^{-\int_0^t\lambda}\),\(Q(t)=1-e^{-\bar\lambda(t)t}\)
无条件 vs 条件违约概率 第 \(t\) 年:\(Q(t)-Q(t-1)\) vs \(\frac{Q(t)-Q(t-1)}{1-Q(t-1)}\)
利差近似 \(\bar\lambda(T)\approx s(T)/(1-R)\)
债券 bootstrap 令"无风险价格 − 实际价格 = 违约损失现值"逐期解 \(\lambda_i\)
资产互换利差 其现值 = 无风险债券价格 − 公司债价格
两种概率 估值用风险中性(利差隐含);情景分析、信用 VaR 用现实世界(历史)
Merton 模型 \(E_0=V_0N(d_1)-De^{-rT}N(d_2)\),\(\sigma_EE_0=N(d_1)\sigma_VV_0\),PD \(=N(-d_2)\)
CVA / DVA \(\sum q_iv_i\) / \(\sum q_i^*v_i^*\),\(q_i=e^{-s_{i-1}t_{i-1}/(1-R)}-e^{-s_it_i/(1-R)}\)
单向支付衍生品 \(f=f_{nd}e^{-(y-y_{nd})T}\)
远期期望敞口 \(w(t)=e^{-r(T-t)}[F_0N(d_1(t))-KN(d_2(t))]\)
单因子 copula \(x_i=a_iF+\sqrt{1-a_i^2}Z_i\);\(Q(T\mid F)=N\big(\frac{N^{-1}[Q(T)]-\sqrt\rho F}{\sqrt{1-\rho}}\big)\)
Vasicek 最坏违约率 \(V(X,T)=N\big(\frac{N^{-1}[Q(T)]+\sqrt\rho N^{-1}(X)}{\sqrt{1-\rho}}\big)\),信用 VaR \(\approx L(1-R)V(X,T)\)
CreditMetrics 用迁移矩阵 + Gaussian copula 模拟评级变化与违约

练习

基础题

  1. 某公司 3 年期和 5 年期债券的利差分别为 210 bp 和 240 bp,回收率 40%。求 0–3 年、0–5 年的平均风险率,以及第 4–5 年的平均风险率(参考原书习题 24.1、24.2)。 提示:3.5%、4.0%;\((5\times4.0\%-3\times3.5\%)/2=4.75\%\)。

  2. 某公司风险率恒为每年 2.5%。求:(a) 5 年内违约的概率;(b) 第 5 年内违约的无条件概率;(c) 已存活 4 年时第 5 年内违约的条件概率。 提示:(a) \(1-e^{-0.125}=11.75\%\);(b) \(e^{-0.1}-e^{-0.125}=2.23\%\);(c) \(1-e^{-0.025}=2.47\%\)。风险率恒定时条件概率每年相同,无条件概率逐年下降。

  3. 用表 24.1 计算 Baa 债券 5 年的平均风险率,以及第 3 年内违约的无条件和条件概率(参考原书习题 24.5)。 提示:\(-\ln(1-0.01877)/5=0.379\%\);无条件 \(0.894\%-0.495\%=0.399\%\);条件 \(0.399\%/(1-0.495\%)=0.401\%\)。

  4. 银行与某对手方有三笔无抵押交易,价值 +8、−5、+3(百万美元)。(a) 有、无净额结算时,对手方立即违约(回收率 0)的损失各为多少?(b) 新增一笔价值 −4 的交易后呢?(参考原书习题 24.7) 提示:(a) 无净额 11,有净额 6;(b) 无净额仍为 11(新交易仍须照付),有净额降为 2。净额结算使与现有组合负相关的新交易可以降低信用敞口。

  5. 一个 3 年期无抵押欧式期权,无违约价值为 5 美元。期权卖方 3 年期零息债收益率比无风险利率高 2%。考虑违约风险后期权值多少? 提示:\(5e^{-0.02\times3}=4.71\) 美元。

  6. 说明在以下场合应使用风险中性还是现实世界违约概率:(a) 为一笔 CDS 定价;(b) 计算贷款组合 1 年 99.9% 信用 VaR;(c) 计算 CVA;(d) 估计峰值敞口(参考原书习题 24.3)。 提示:(a) 风险中性;(b) 现实世界;(c) 风险中性;(d) 原则上现实世界(情景分析),实务中常忽略区别。

进阶题

  1. 用 Merton 模型:\(E_0=4\),\(\sigma_E=60\%\),\(D=15\),\(T=2\),\(r=4\%\)。求 \(V_0\)、\(\sigma_V\)、风险中性违约概率,以及债务的信用利差(参考原书习题 24.21、24.27)。 提示:\(V_0\approx17.62\),\(\sigma_V\approx15.32\%\),\(d_2\approx1.004\),PD \(\approx15.8\%\);债务市值 \(17.62-4=13.62\),收益率 \(-\ln(13.62/15)/2\),利差约 82 bp,与公式 \(-\ln[N(d_2)+N(-d_1)/L]/T\)(\(L=De^{-rT}/V_0\))一致。

  2. 单因子 Gaussian copula,某公司 1 年违约概率 5%,copula 相关 \(\rho=0.3\)。求共同因子 \(F=-2\)(很差的经济状态)时的条件违约概率(参考原书习题 25.21 的前半部分)。 提示:\(N\big((-1.645+\sqrt{0.3}\times2)/\sqrt{0.7}\big)=N(-0.657)\approx25.6\%\),是无条件概率的 5 倍。

  3. 一笔 2 亿美元的贷款组合,1 年违约概率 1%,copula 相关 0.15,回收率 50%。求 99.9% 一年期信用 VaR(参考原书习题 24.28)。 提示:\(V(0.999,1)=11.03\%\),信用 VaR \(=200\times0.1103\times0.5\approx11.0\) 百万美元。

  4. 解释"银行的信用状况恶化可能让它报告的利润上升"这一 DVA 悖论;再举一个错向风险的例子,说明为什么独立性假设下算出的 CVA 会偏低(参考原书习题 24.8、24.23)。 提示:自身信用利差上升 → \(q_i^*\) 上升 → DVA 增大 → 价值 \(f_{nd}-\text{CVA}+\text{DVA}\) 上升。错向风险例子:向一家银行买入以该银行所在国货币贬值为赔付的保护;对手方最可能违约的情景正是敞口最大的情景,独立假设把高违约概率配上了平均敞口,从而低估 CVA。

  5. 编程:修改代码第 (4) 步,用蒙特卡洛模拟 \(F_t\) 的路径,在每月中点计算银行敞口,并假设银行自身每年违约概率为 1%、\(R=30\%\),同时计算 CVA 和 DVA(原书习题 24.29、24.30)。 提示:DVA 用 \(\max(K-F_t,0)\) 的期望(看跌期权形),远期价格高于 \(K\) 时 DVA 较小。

原书推荐习题:24.1、24.2(利差→风险率,平均与远期风险率);24.12 或 24.25(按债券价格 bootstrap 风险中性违约概率,复现例 24.2);24.27(Merton 模型联立求解);24.28(Vasicek 信用 VaR);24.29、24.30(远期 CVA/DVA 细分计算);24.14、24.7(净额结算与敞口的非可加性);24.21(Merton 模型信用利差公式推导)。其他:24.9(Gaussian copula 与 CreditMetrics 的区别);24.10、24.20(资产互换);24.15–24.19(信用风险下的远期、互换和买卖权平价);24.22(违约方卖出期权的估值);24.26(用迁移矩阵为降级相关衍生品估值)。


原书对照

本章小节 原书小节 PDF 页码 原书页码
24.0 引言 Chapter 24 引言 567 566
24.1 信用评级 24.1 Credit Ratings 567 566
24.2 历史违约概率 24.2 Historical Default Probabilities 568–569 567–568
24.3 回收率 24.3 Recovery Rates 569–570 568–569
24.4 从债券利差估计违约概率 24.4 Estimating Default Probabilities from Bond Yield Spreads 570–573 569–572
24.5 违约概率估计的比较 24.5 Comparison of Default Probability Estimates 573–576 572–575
24.6 Merton 模型 24.6 Using Equity Prices to Estimate Default Probabilities 576–578 575–577
24.7 衍生品交易中的信用风险 24.7 Credit Risk in Derivatives Transactions 578–584 577–583
24.8 违约相关性 24.8 Default Correlation 584–587 583–586
24.9 信用 VaR 24.9 Credit VaR 587–590 586–589
小结与习题 Summary, Further Reading, Practice Questions 590–593 589–592

延伸阅读:Altman (1989) 公司债违约率;Altman 等 (2005) 违约率与回收率的关系;Duffie & Singleton (1999) 简约式模型;Finger (2000) 违约相关模型比较;Gregory (2012) CVA 专著;Hull, Predescu & White (2004) 债券利差、CDS 利差与无风险利率;Kealhofer (2003a,b) KMV 模型实证;Li (2000) Gaussian copula 用于违约相关;Merton (1974) 结构模型原始论文;Vasicek (2002) 贷款组合价值分布。