跳到正文

高斯 Copula:为什么相关性本身不够

从多元正态里抽出高斯 copula,看清一个相关矩阵到底买到了什么、买不到什么——尾部相依恒为零的推导,以及它为什么在结构化信用上出了大事。

第 1 篇 · 共 12 篇 约 9 分钟

2008 年之前,结构化信用的定价核心是 David X. Li 引入的高斯 copula (Li, 2000)。危机之后,这个公式和它背后那个让人安心的假设——“相关性是资产间相依关系的完整描述”——一起成了众矢之的,Wired 甚至给它配了标题《毁掉华尔街的公式》(Salmon, 2009)。

这篇文章不打算批斗 Li。高斯 copula 在多元分布的中心部分是个完全体面的模型;出事的是把它用在尾部敏感的证券上、并由此系统性低估联合违约概率的那些应用。真正的教训比”Li 错了”更尖锐:相依这件事在分布中心和分布尾部长得完全不一样,所以没有任何单一参数能把它描述完。整篇文章就围绕这一个问题展开——一个相关矩阵到底买到了什么,又买不到什么。要回答它,得先把 copula 这个对象本身立起来。

把边际和相依拆开

设 nn 个资产的随机收益为 X=(X1,…,Xn)T\mathbf{X} = (X_1, \ldots, X_n)^T。经典的多元模型是

X∼N(μ,Σ)\mathbf{X} \sim \mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma})

均值向量 μ\boldsymbol{\mu},协方差矩阵 Σ\boldsymbol{\Sigma}。风险管理真正需要的是两样可以分开指定的东西:每个资产各自的边际分布 FXiF_{X_i},以及一个独立于边际形状的相依结构——刻画资产如何一起动。多元正态把这两样焊死在一起了:边际必须是正态,相依由相关矩阵给定。可金融收益的边际明明是肥尾的,难道为了保住相依结构就得接受正态边际?

Sklar (1959) 的定理说不必:任何多元分布都能拆成”边际部分”和”copula 部分”,

F(x1,…,xn)=C(F1(x1),…,Fn(xn))F(x_1, \ldots, x_n) = C(F_1(x_1), \ldots, F_n(x_n))

其中 CC 是 copula——一个 [0,1]n[0,1]^n 上、边际为均匀分布的 CDF。copula 管相依,边际管边际,两者可以分别指定再拼成合法的多元分布。这一步拆分是整个 copula 方法的地基,也把本文的问题变得可操作:既然相依被单独隔离成了 CC,我们就能追问某个具体的 CC 携带了多少信息。

高斯 Copula 的定义

高斯 copula 就是从多元正态里抽出来的那个 CC。设 Φρ\boldsymbol{\Phi}_\rho 是相关矩阵为 ρ\rho 的多元标准正态 CDF,定义

CGa(u;ρ)=Φρ(Φ−1(u1),…,Φ−1(un))C^{\text{Ga}}(\mathbf{u}; \boldsymbol{\rho}) = \boldsymbol{\Phi}_\rho(\Phi^{-1}(u_1), \ldots, \Phi^{-1}(u_n))

其中 Φ−1\Phi^{-1} 是标准正态分位数函数。构造性地说:取相关矩阵为 ρ\boldsymbol{\rho} 的相关标准正态 Z1,…,ZnZ_1, \ldots, Z_n,用 Ui=Φ(Zi)U_i = \Phi(Z_i) 压到均匀分布,U\mathbf{U} 的联合分布就是高斯 copula。要装上任意边际 FiF_i,再做一步 Xi=Fi−1(Ui)X_i = F_i^{-1}(U_i)——概率积分变换的逆过程。

这样得到的模型里,每个 XiX_i 的边际可以是肥尾的、经验的、任何东西,而 XiX_i 与 XjX_j 之间的相依完全由底层正态的 ρij\rho_{ij} 决定。注意这个”决定”是通过整个高斯联合分布起作用的,不是把 ρ\rho 直接套在边际上。相关矩阵是唯一的相依参数——这句话此刻听起来像优点,本文剩下的部分要说明它同时是致命弱点。

它为什么成了默认选择

到 2000 年,高斯 copula 已经是金融里的主流相依模型,理由都很实际。计算上,从这个 copula 抽样只需要对相关矩阵做一次 O(n3)O(n^3) 的 Cholesky 分解,之后每条样本路径都便宜——对上千个名字的 CDO 定价,这在算力普及之前就已经跑得动,而任意边际的概率积分变换只是一行代码。参数上,相依全部压缩进一个相关矩阵,解释自然、校准直接。于是 Li (2000) 把它推广到首次违约时间建模:两个名字在一年内同时违约的概率由它们的 copula 相关决定,相关通常拿历史股票相关性来校准。结构化信用的整条流水线就搭在这上面。

麻烦也从这里开始。高斯 copula 假设只有相关性对联合行为起作用:两个相关性 0.5 的资产,不管边际是正态、Student-tt 还是经验分布,联合行为一模一样。这意味着极端情形下的联合行为——恰恰是信用衍生品最敏感的部分——也被相关性一个参数钉死了。钉死在什么值上?下面算给你看:零。

尾部相依:高斯 Copula 恒为零的那个量

刻画”极端情形一起出现”的标准量是尾部相依系数。对上尾:

lim⁡u→1P(U1>u∣U2>u)=0\lim_{u \to 1} P(U_1 > u \mid U_2 > u) = 0

上式就是高斯 copula 的答案:只要 ρ<1\rho < 1,上尾相依系数 λu=0\lambda_u = 0,下尾对称同理。翻译成人话:在高斯 copula 的世界里,两个资产可以温和地一起涨跌,但不能一起走极端——不管你把相关性调到 0.9 还是 0.99。

推导为什么。考虑相关为 ρ\rho 的标准正态 Z1,Z2Z_1, Z_2,上尾相依是

λu=lim⁡u→∞P(Z2>u∣Z1>u)\lambda_u = \lim_{u \to \infty} P(Z_2 > u \mid Z_1 > u)

条件分布是打开它的钥匙:给定 Z1=z1Z_1 = z_1,Z2Z_2 是均值 ρz1\rho z_1、方差 1−ρ21 - \rho^2 的正态,所以

P(Z2>u∣Z1=z1)=1−Φ(u−ρz11−ρ2)P(Z_2 > u \mid Z_1 = z_1) = 1 - \Phi\left(\frac{u - \rho z_1}{\sqrt{1 - \rho^2}}\right)

对固定的 z1z_1,uu 增大时这个概率指数衰减到 0——所以要让条件概率不退化,z1z_1 必须跟着 uu 一起跑。看最有利的情形,设 z1=uz_1 = u:

P(Z2>u∣Z1=u)=1−Φ(u−ρu1−ρ2)=1−Φ(u1−ρ1−ρ2)=1−Φ(u1−ρ1+ρ)P(Z_2 > u \mid Z_1 = u) = 1 - \Phi\left(\frac{u - \rho u}{\sqrt{1 - \rho^2}}\right) = 1 - \Phi\left(u \frac{1 - \rho}{\sqrt{1 - \rho^2}}\right) = 1 - \Phi\left(u \sqrt{\frac{1 - \rho}{1 + \rho}}\right)

只要 ρ<1\rho < 1,括号里的系数 (1−ρ)/(1+ρ)\sqrt{(1-\rho)/(1+\rho)} 严格为正,整个表达式随 u→∞u \to \infty 仍趋于 0(这是完整极限计算的骨架,结论一致)。即便条件在”Z1Z_1 恰好也处在极端”这个对 Z2Z_2 最有利的位置上,条件概率照样归零。唯一的例外是 ρ=1\rho = 1,即 Z1=Z2Z_1 = Z_2 完全同体。对任何 ρ<1\rho < 1,两个变量在极端处渐近独立。

经验金融数据把这个结论直接证伪。对股票收益的研究一致发现股票对之间存在正的下尾相依——两只股票同一天都落进各自最差 1% 的概率,远高于高斯 copula 的预测 (Ang & Bekaert, 2002)。信用市场同理:一家公司违约时,同行的条件违约概率会跳升,用高斯 copula 校准出的相关性系统性低估这种跳升。经验规律是相依呈”微笑”形态——两个尾部都比躯干高;在高斯 copula 下,这条微笑曲线被压成贴着零的直线。

一个容易踩的细节:密度发散,尾部相依仍是零

有个微妙之处值得单独讲清楚,因为它经常被讲反。二元高斯 copula 的密度是

c(u,v;ρ)=11−ρ2exp⁡(−ρ2(x2+y2)−2ρxy2(1−ρ2))c(u, v; \rho) = \frac{1}{\sqrt{1 - \rho^2}} \exp\left(-\frac{\rho^2 (x^2 + y^2) - 2\rho xy}{2(1 - \rho^2)}\right)

其中 x=Φ−1(u)x = \Phi^{-1}(u),y=Φ−1(v)y = \Phi^{-1}(v)。取 ρ>0\rho > 0,沿对角线走向角落(u=v→0u = v \to 0 或 u=v→1u = v \to 1,即 x=y→±∞x = y \to \pm\infty),指数里变成 ρx2/(1+ρ)→+∞\rho x^2 / (1+\rho) \to +\infty——密度在 (0,0)(0,0) 和 (1,1)(1,1) 两个角上是发散的(在反对角的两个角 (0,1)(0,1)、(1,0)(1,0) 才趋于 0)。

所以”高斯 copula 尾部没有相依”不能理解成”角落里没有质量堆积”——角落里明明堆了无穷大的密度。正确的理解是:这种堆积相对于门槛收紧的速度太慢。条件概率 P(U1<q∣U2<q)P(U_1 < q \mid U_2 < q) 虽然一路高于独立情形的 qq,却仍然随 q→0q \to 0 缓慢地滑向零,永远到不了一个正的极限。尾部相依系数量的是极限行为,不是有限深度处的密度高低——这正是它比”看图上角落密不密”更严格的地方。

亲手模拟一遍

上面这个”有限深度 vs 极限”的区分,用模拟看最直观:

import numpy as np
from scipy.stats import norm, t as t_dist

# 两个资产,高斯 copula,肥尾边际
np.random.seed(1)
n = 5000
rho = 0.6
Sigma = np.array([[1, rho], [rho, 1]])

# 第一步:模拟相关正态
Z = np.random.multivariate_normal([0, 0], Sigma, size=n)
U = norm.cdf(Z)              # 从 CDF 得到均匀

# 第二步:变换到指定边际(这里:df=5 的 t)
X1 = t_dist.ppf(U[:, 0], df=5) * 0.02
X2 = t_dist.ppf(U[:, 1], df=5) * 0.02

# 通过下尾的秩相关估计经验尾部相依
both_low = (U[:, 0] < 0.05) & (U[:, 1] < 0.05)
print(f"P(both < 5%): {both_low.mean():.5f}  Gaussian copula predicts {0.05*0.05:.5f}")

跑出来会看到:经验联合概率 P(U1<0.05,U2<0.05)P(U_1 < 0.05, U_2 < 0.05) 在高斯 copula 下等于 Φρ(−1.645,−1.645)\Phi_\rho(-1.645, -1.645),ρ>0\rho > 0 时明显大于独立情形的 0.052=0.00250.05^2 = 0.0025。也就是说在 5% 这个深度上,copula 确实捕捉到了联合结构——它不是在这里出错的。出错的是极限行为。干净的诊断是算经验条件尾部相依:

λ^L(q)=P(U1<q∣U2<q)=P(U1<q,U2<q)q\hat\lambda_L(q) = P(U_1 < q \mid U_2 < q) = \frac{P(U_1 < q, U_2 < q)}{q}

把 qq 从 0.05 一路收紧到 0.01、0.005,高斯 copula 下 λ^L(q)\hat\lambda_L(q) 单调滑向 0;而真实金融数据下它稳定在一个正的常数 λL>0\lambda_L > 0 附近。两条曲线的分岔就是全部分歧所在,也是尾部相依 copula(t-copula、Clayton)存在的全部理由。

校准,以及它在肥尾数据下的坑

把高斯 copula 拟合到数据原则上是三步:先用边际 CDF 把每个资产的收益变换到均匀(边际未知就用经验 CDF),再做标准正态反变换 Zi=Φ−1(Ui)Z_i = \Phi^{-1}(U_i),最后算 ZZ 值的样本相关矩阵——这就是 copula 相关矩阵。10 年日数据、100 个资产,整个流程一步到位。

这套基于秩的做法对 copula 参数是一致的——因为第一步的均匀变换已经把边际形状洗掉了。坑在效率上:直接在原始收益 XX 上算 Pearson 相关然后当成 copula 相关来用,会被肥尾边际污染;即便走了正确的变换流程,肥尾数据下相关估计量的方差也更大。稳健的替代是从秩相关反推:高斯 copula 下 Kendall 的 τ\tau 与相关有精确关系 ρ=sin⁡(πτ/2)\rho = \sin(\pi\tau/2),先估 τ\tau 再换算 ρ\rho,对离群点的敏感度低得多。

它还管用的地方

批评到这里,得把公道话说完,否则结论会被读过头。高斯 copula 在分布的中心躯干——联合分布绝大部分概率质量所在的地方——是个合格的模型:90% 或 95% 置信水平的 VaR 建模用它没有问题,出问题的门槛在更深的尾部。高维场景下它常常是唯一可行的选择:nn 到几百时,更灵活的 copula 在统计上和计算上都撑不住,而高斯 copula 的估计和抽样都还跑得动。还有一点容易被忽略:copula 和边际是两个独立的旋钮,如果你的问题主要出在肥尾边际上,在高斯 copula 上装 t 边际或经验边际就是正确的修复——对不少 VaR/ES 计算,边际形状比 copula 相依更要紧。

所以高斯 copula 不是笼统意义上的”错”。它错在特定的应用上:尾部相依的损失建模——信用 CDO、系统性风险、portfolio insurance——这些场景的损益恰好集中在它唯一失明的区域。回到开头的问题:一个相关矩阵买到了中心躯干的全部相依结构和无与伦比的计算便利,买不到的只有一样东西——极端情形一起出现的能力。不巧的是,风险管理最关心的正是这样东西。

下两篇讲 t-copula(对称的尾部相依)和 Archimedean copula(不对称的尾部相依),合起来覆盖金融里 copula 的大部分实际应用。

参考文献

Ang, A., & Bekaert, G. (2002). International asset allocation with time-varying correlations. Review of Financial Studies, 15(4), 1137-1187.

Embrechts, P., McNeil, A. J., & Straumann, D. (2002). Correlation and dependency in risk management: properties and pitfalls. In M. Dempster (Ed.), Risk Management: Value at Risk and Beyond (pp. 176-223). Cambridge University Press.

Li, D. X. (2000). On default correlation: a copula function approach. Journal of Fixed Income, 9(4), 43-54.

McNeil, A. J., Frey, R., & Embrechts, P. (2015). Quantitative Risk Management: Concepts, Techniques and Tools (rev. ed.). Princeton University Press. Chs. 7, 9.

Nelsen, R. B. (2006). An Introduction to Copulas (2nd ed.). Springer.

Salmon, F. (2009, February 27). Recipe for disaster: the formula that killed Wall Street. Wired Magazine.

Sklar, A. (1959). Fonctions de répartition à nn dimensions et leurs marges. Publications de l’Institut Statistique de l’Université de Paris, 8, 229-231.