量化交易中文教材

第 10 章 多元波动率模型

本章对应 Tsay 原书第 10 章。第 03a、03b 章的 GARCH 类模型描述了单个资产波动率的时变性;本章把它推广到多个资产,研究条件协方差矩阵 \(\boldsymbol\Sigma_t\) 如何随时间演化。组合风险、动态对冲比、多资产 VaR、风险平价与最小方差组合都需要 \(\boldsymbol\Sigma_t\) 的预测;而"危机时相关性上升、分散化失效"这一现象,也只有在时变相关的框架里才能被正确刻画。本章的重点是 EWMA、DCC 和 Tsay 的 Cholesky 参数化。第 08 册第 23 章用 EWMA 与 GARCH(1,1) 逐日更新协方差和相关系数,是本章 10.2 节的实务版本,可对照阅读。

学习目标

  1. 理解多元波动率建模的两大难点——维数灾难与正定约束,能计算各类模型的参数个数。
  2. 掌握 EWMA 协方差估计(RiskMetrics),会用极大似然估计衰减因子 \(\lambda\)。
  3. 了解 DVEC 与 BEKK 模型的形式、优缺点。
  4. 掌握两种重参数化:\(\boldsymbol\Sigma_t=\boldsymbol D_t\boldsymbol\rho_t\boldsymbol D_t\) 与 Cholesky 分解 \(\boldsymbol\Sigma_t=\boldsymbol L_t\boldsymbol G_t\boldsymbol L_t'\),理解 Cholesky 参数的回归含义(\(q_{21,t}\) 就是时变 β)。
  5. 掌握常相关(CCC)模型、时变相关模型和动态条件相关(DCC)模型,会用两步法估计 DCC。
  6. 会用多元波动率模型计算组合 VaR、时变对冲比,了解高维时的序贯 Cholesky 建模和因子–波动率模型。

读前导读

这一章在解决什么问题。 单变量 GARCH 告诉你"明天这只股票的波动率是多少";做组合风险、VaR 或对冲,你还需要"明天这几只资产之间的协方差和相关系数是多少"。本章就是把 GARCH 从一个数(方差)推广到一个矩阵(协方差矩阵 \(\boldsymbol\Sigma_t\))。你在 FRM/CFA 里见过 RiskMetrics 的 EWMA 波动率和组合 VaR 公式 \(\sqrt{\boldsymbol w'\boldsymbol\Sigma\boldsymbol w}\);本章讲的是 \(\boldsymbol\Sigma\) 应该怎样每天更新,以及为什么"危机时相关性上升"必须用时变相关模型才能抓住。

推广的难点只有两个:矩阵元素太多(维数灾难),以及每天的矩阵都必须"合法"——任何组合的方差都要为正(正定约束)。本章所有模型都是在这两个难点之间找平衡:EWMA 最省参数;DVEC、BEKK 是"直接推广",参数很多;CCC、DCC 把"波动率"和"相关系数"拆开分别建模;Cholesky 参数化把协方差矩阵变成一串回归——其中的回归系数就是你熟悉的时变 β 和最小方差对冲比 \(h^*=\mathrm{Cov}(\Delta S,\Delta F)/\mathrm{Var}(\Delta F)\)。

需要先想起来的数学。

  • 正定矩阵。 对任意非零向量 \(\boldsymbol w\) 都有 \(\boldsymbol w'\boldsymbol\Sigma\boldsymbol w>0\),即"任何组合的方差都为正"。半正定允许等于 0。两个有用的事实:正定加半正定仍正定;\(\boldsymbol A\boldsymbol S\boldsymbol A'\) 在 \(\boldsymbol S\) 半正定时也半正定(因为 \(\boldsymbol w'\boldsymbol A\boldsymbol S\boldsymbol A'\boldsymbol w=(\boldsymbol A'\boldsymbol w)'\boldsymbol S(\boldsymbol A'\boldsymbol w)\ge0\))。见 第 00 册第 06 章 线性代数速成。
  • Cholesky(LDL)分解。 正定矩阵可写成"单位下三角 × 正对角 × 单位上三角"。2×2 时 \(\begin{bmatrix}4&3\\3&9\end{bmatrix}=\begin{bmatrix}1&0\\0.75&1\end{bmatrix}\begin{bmatrix}4&0\\0&6.75\end{bmatrix}\begin{bmatrix}1&0.75\\0&1\end{bmatrix}\)。本章会说明它其实就是一次回归。见第 00 册第 06 章。
  • 多元正态的对数似然。 单变量是 \(-\frac12[\ln\sigma^2+a^2/\sigma^2]\)(省略常数);多元版本把 \(\sigma^2\) 换成行列式 \(|\boldsymbol\Sigma|\)、把 \(a^2/\sigma^2\) 换成二次型 \(\boldsymbol a'\boldsymbol\Sigma^{-1}\boldsymbol a\)。估计所有多元 GARCH 都是最大化这个式子。见第 00 册第 06 章与 第 00 册第 07 章 概率中的分析工具。
  • 条件期望与条件方差。 \(F_{t-1}\) 表示"截至 \(t-1\) 的全部信息",\(\mathrm{Cov}(\boldsymbol a_t|F_{t-1})\) 就是"站在昨天收盘时看,今天收益的协方差矩阵"。见第 00 册第 07 章。
  • 几个记号。 \(\odot\) 是逐元素相乘(Hadamard 积),如 \(\begin{bmatrix}1&2\\3&4\end{bmatrix}\odot\begin{bmatrix}5&6\\7&8\end{bmatrix}=\begin{bmatrix}5&12\\21&32\end{bmatrix}\);\(\mathrm{diag}\{\cdot\}\) 是以括号内各数为对角元的对角阵;\(\boldsymbol\Sigma^{1/2}\) 是满足 \(\boldsymbol\Sigma^{1/2}(\boldsymbol\Sigma^{1/2})'=\boldsymbol\Sigma\) 的矩阵"平方根"(可以取 Cholesky 因子)。

怎么读这一章。 核心必读:10.1、10.2(EWMA)、10.4(两种重参数化,尤其 10.4.2 Cholesky 的回归解释)、10.6(DCC 与两步估计)、10.9(多资产 VaR)。10.3 的 DVEC 和 BEKK 只需记住形式和优缺点,看懂参数个数表即可。10.5 的 CCC 要读,时变相关的两种方法可以先看结论("不同模型的相关预测差别很大")。10.7、10.8 适合处理高维问题的读者,10.10 多元 t 第一次可以跳过公式。建议顺序:10.1 → 10.2 → 10.4 → 10.6 → 10.9 → 示例一、二 → 其余各节。


10.1 问题设定

记 \(\boldsymbol r_t=\boldsymbol\mu_t+\boldsymbol a_t\),\(\boldsymbol\mu_t=E(\boldsymbol r_t|F_{t-1})\) 是条件均值,通常用第 08a 章的 VARMA(可加外生变量)刻画:

\[\boldsymbol\mu_t=\boldsymbol\Upsilon\boldsymbol x_t+\sum_{i=1}^p\boldsymbol\Phi_i\boldsymbol r_{t-i}-\sum_{i=1}^q\boldsymbol\Theta_i\boldsymbol a_{t-i}.\tag{10.1}\]

多元波动率指新息的条件协方差矩阵 \(\boldsymbol\Sigma_t=\mathrm{Cov}(\boldsymbol a_t|F_{t-1})\)。建模就是刻画 \(\boldsymbol\Sigma_t\) 的时间演化。两大难点:

  • 维数灾难:\(\boldsymbol\Sigma_t\) 有 \(k(k+1)/2\) 个不同元素(\(k=5\) 时 15 个,\(k=100\) 时 5050 个),每个元素都要一条动态方程。
  • 正定约束:每个时点的 \(\boldsymbol\Sigma_t\) 都必须正定,否则组合方差可能为负。

本章介绍几类相对简单、实用的模型,特别是允许时变相关系数的模型——它们可以用来估计时变的市场 β 和对冲比。


10.2 指数加权估计(EWMA)

最朴素的估计是等权样本协方差 \(\hat{\boldsymbol\Sigma}=\frac1{t-1}\sum_{j=1}^{t-1}\boldsymbol a_j\boldsymbol a_j'\)。为强调近期信息,用指数平滑:

\[\hat{\boldsymbol\Sigma}_t=\frac{1-\lambda}{1-\lambda^{t-1}}\sum_{j=1}^{t-1}\lambda^{j-1}\boldsymbol a_{t-j}\boldsymbol a_{t-j}',\qquad0<\lambda<1,\tag{10.2}\]

权重和为 1。\(t\) 足够大时化为递推

\[\boxed{\ \hat{\boldsymbol\Sigma}_t=(1-\lambda)\boldsymbol a_{t-1}\boldsymbol a_{t-1}'+\lambda\hat{\boldsymbol\Sigma}_{t-1}\ }\]

这就是 EWMA 协方差。它只有一个参数,自动正定(只要初值正定),计算极快,是业界最常用的基准(RiskMetrics 日频取 \(\lambda=0.94\))。若 \(\boldsymbol a_t|F_{t-1}\sim N(\boldsymbol 0,\boldsymbol\Sigma_t)\),可以用极大似然联合估计 \(\lambda\) 和均值参数:

\[\ln L\propto-\frac12\sum_{t=1}^T\ln|\boldsymbol\Sigma_t|-\frac12\sum_{t=1}^T(\boldsymbol r_t-\boldsymbol\mu_t)'\boldsymbol\Sigma_t^{-1}(\boldsymbol r_t-\boldsymbol\mu_t),\]

用递推得到的 \(\hat{\boldsymbol\Sigma}_t\) 代替 \(\boldsymbol\Sigma_t\)。

推导拆解:(10.2) 怎么变成递推式。 第一步,\(t\) 很大时 \(\lambda^{t-1}\approx0\),归一化常数 \(\frac{1-\lambda}{1-\lambda^{t-1}}\approx1-\lambda\),于是 \(\hat{\boldsymbol\Sigma}_t\approx(1-\lambda)\sum_{j\ge1}\lambda^{j-1}\boldsymbol a_{t-j}\boldsymbol a_{t-j}'\)。权重 \((1-\lambda)\lambda^{j-1}\) 是几何级数,加起来等于 1。 第二步,把 \(j=1\) 这一项单独拿出来:\((1-\lambda)\boldsymbol a_{t-1}\boldsymbol a_{t-1}'+\lambda\cdot\left[(1-\lambda)\sum_{j\ge2}\lambda^{j-2}\boldsymbol a_{t-j}\boldsymbol a_{t-j}'\right]\)。方括号里正是 \(\hat{\boldsymbol\Sigma}_{t-1}\)。 第三步,似然函数是多元正态对数密度逐日相加:\(\ln|\boldsymbol\Sigma_t|\) 惩罚"把协方差估得太大",二次型 \(\boldsymbol a_t'\boldsymbol\Sigma_t^{-1}\boldsymbol a_t\) 惩罚"实际冲击相对估计太大"。哪个 \(\lambda\) 让两者平衡得最好,就选哪个。

金融直觉:\(\lambda=0.94\) 时,昨天的冲击权重 6%,一个月(约 21 个交易日)前的冲击权重只剩 \(0.06\times0.94^{20}\approx1.7\%\);权重衰减到一半大约需要 \(\ln0.5/\ln0.94\approx11\) 天。所以 EWMA 本质上是"有效窗口约一两个月、越近越重要"的滚动协方差。它没有常数项把预测拉回长期均值,这就是正文说的"IGARCH 结构"。

例 10.1(恒生指数与日经 225)。 2006-01-04 至 2008-12-30 的日对数收益(%),只取两市同时开市的日子,713 个观测。单变量 GARCH(1,1):

\[\sigma_{1t}^2=0.038+0.143a_{1,t-1}^2+0.855\sigma_{1,t-1}^2,\qquad\sigma_{2t}^2=0.044+0.127a_{2,t-1}^2+0.861\sigma_{2,t-1}^2,\]

两者都接近 IGARCH(\(\alpha+\beta\approx1\)),这是次贷危机推高波动所致。二元 EWMA 的估计为 \(\hat\lambda=1-0.0695\approx0.9305\),处于实务常见范围。EWMA 波动率比单变量 GARCH 更平滑,但形态相似。

EWMA 的局限也很明显:所有元素共用一个 \(\lambda\);没有均值回复(\(\alpha+\beta=1\) 的 IGARCH 结构),长期预测停留在当前水平,不会回到无条件水平。


10.3 多元 GARCH 模型

综述见 Bauwens, Laurent & Rombouts (2004)。

10.3.1 对角 VEC(DVEC)模型

Bollerslev, Engle & Wooldridge (1988) 把 EWMA 推广为

\[\boldsymbol\Sigma_t=\boldsymbol A_0+\sum_{i=1}^m\boldsymbol A_i\odot(\boldsymbol a_{t-i}\boldsymbol a_{t-i}')+\sum_{j=1}^s\boldsymbol B_j\odot\boldsymbol\Sigma_{t-j},\tag{10.5}\]

\(\boldsymbol A_i,\boldsymbol B_j\) 对称,\(\odot\) 是 Hadamard(逐元素)积。二元 DVEC(1,1) 写开就是逐元素的 GARCH(1,1):

\[\sigma_{11,t}=A_{11,0}+A_{11,1}a_{1,t-1}^2+B_{11,1}\sigma_{11,t-1},\]
\[\sigma_{21,t}=A_{21,0}+A_{21,1}a_{1,t-1}a_{2,t-1}+B_{21,1}\sigma_{21,t-1},\]
\[\sigma_{22,t}=A_{22,0}+A_{22,1}a_{2,t-1}^2+B_{22,1}\sigma_{22,t-1}.\]

EWMA 是其特例:\(\boldsymbol A_0=\boldsymbol 0\),\(\boldsymbol A_1=(1-\lambda)\boldsymbol J\),\(\boldsymbol B_1=\lambda\boldsymbol J\)(\(\boldsymbol J\) 为全 1 矩阵)。优点是简单;缺点是不保证 \(\boldsymbol\Sigma_t\) 正定,且不允许波动率之间的动态依赖(波动溢出)。

例 10.2(辉瑞与默克月收益,1965–2008,528 个观测)。

\[\sigma_{11,t}=0.00075+0.071a_{1,t-1}^2+0.786\sigma_{11,t-1},\quad\sigma_{21,t}=0.00008+0.025a_{1,t-1}a_{2,t-1}+0.950\sigma_{21,t-1},\]
\[\sigma_{22,t}=0.00008+0.041a_{2,t-1}^2+0.945\sigma_{22,t-1}.\]

拟合的时变相关在 0.37 到 0.83 之间变动。(原书正文报告的 PFE 平方残差 \(Q(12)=12.35(0.42)\) 与软件输出不符,输出中 PFE 平方残差为 22.08(0.037),12.35 是 MRK 标准化残差的统计量。)

10.3.2 BEKK 模型

Engle & Kroner (1995):

\[\boldsymbol\Sigma_t=\boldsymbol A\boldsymbol A'+\sum_{i=1}^m\boldsymbol A_i(\boldsymbol a_{t-i}\boldsymbol a_{t-i}')\boldsymbol A_i'+\sum_{j=1}^s\boldsymbol B_j\boldsymbol\Sigma_{t-j}\boldsymbol B_j',\tag{10.6}\]

\(\boldsymbol A\) 下三角。每一项都是"矩阵 × 半正定矩阵 × 转置"的形式,所以只要 \(\boldsymbol A\boldsymbol A'\) 正定,\(\boldsymbol\Sigma_t\) 就正定;\(\boldsymbol A_i,\boldsymbol B_j\) 的非对角元允许波动溢出。缺点:参数对滞后冲击和波动的影响没有直接解释(要做矩阵乘法才看得出);参数个数 \(k^2(m+s)+k(k+1)/2\) 增长很快,经验上许多估计不显著。

推导拆解:为什么 DVEC 不保证正定、BEKK 保证? BEKK:任取组合 \(\boldsymbol w\),\(\boldsymbol w'\boldsymbol A_1(\boldsymbol a\boldsymbol a')\boldsymbol A_1'\boldsymbol w=(\boldsymbol w'\boldsymbol A_1\boldsymbol a)^2\ge0\),是一个数的平方;\(\boldsymbol w'\boldsymbol B_1\boldsymbol\Sigma_{t-1}\boldsymbol B_1'\boldsymbol w=(\boldsymbol B_1'\boldsymbol w)'\boldsymbol\Sigma_{t-1}(\boldsymbol B_1'\boldsymbol w)\ge0\),是另一个组合的方差。再加上严格为正的 \(\boldsymbol w'\boldsymbol A\boldsymbol A'\boldsymbol w\),总和必为正。 DVEC:逐元素相乘没有这种"平方"结构。比如 \(\boldsymbol A_1\) 的非对角元比对角元大很多时,协方差的更新幅度会超过两个方差的更新幅度,隐含的相关系数可能超过 1,矩阵就不再正定。

金融直觉:"波动溢出"指一个市场昨天的大波动会推高另一个市场今天的波动,比如美股暴跌后亚洲市场次日波动加大。DVEC 里 \(\sigma_{11,t}\) 只看 \(a_{1,t-1}^2\),没有这个渠道;BEKK 通过矩阵乘法把各资产的冲击混在一起,能表达溢出,代价是参数多、难以直接解读。

例 10.3(同辉瑞/默克数据,BEKK(1,1))。 ARCH 矩阵 \(\begin{bmatrix}0.213&0.063\\0.100&0.182\end{bmatrix}\)、GARCH 矩阵 \(\begin{bmatrix}0.909&-0.008\\-0.059&0.982\end{bmatrix}\),非对角元均不显著(原书拟合方程中 GARCH 矩阵左上角印为 0.901,与参数表的 0.909 不一致)。与 DVEC 相比,BEKK 的时变相关波动更大。

参数个数比较(GARCH(1,1) 型):

模型 一般 \(k\) \(k=3\) \(k=50\)
DVEC \(3k(k+1)/2\) 18 3825
BEKK \(k(k+1)/2+2k^2\) 24 6275
CCC \(3k+k(k-1)/2\) 12 1375
DCC(相关矩阵用样本值) \(3k+2\) 11 152
EWMA 1 1 1

10.4 两种重参数化

利用 \(\boldsymbol\Sigma_t\) 的对称性,把它换成一组更易建模的量。

10.4.1 用相关系数

\[\boldsymbol\Sigma_t=\boldsymbol D_t\boldsymbol\rho_t\boldsymbol D_t,\qquad\boldsymbol D_t=\mathrm{diag}\{\sqrt{\sigma_{11,t}},\dots,\sqrt{\sigma_{kk,t}}\}.\tag{10.7}\]

\(\boldsymbol\Sigma_t\) 的演化由 \(k\) 个条件方差和 \(k(k-1)/2\) 个条件相关系数决定,合起来记为 \(k(k+1)/2\) 维向量 \(\boldsymbol\Xi_t\)(\(k=2\) 时 \(\boldsymbol\Xi_t=(\sigma_{11,t},\sigma_{22,t},\rho_{21,t})'\))。二元正态下对数似然为

\[\ell_t=-\frac12\left\{\ln[\sigma_{11,t}\sigma_{22,t}(1-\rho_{21,t}^2)]+\frac{1}{1-\rho_{21,t}^2}\left(\frac{a_{1t}^2}{\sigma_{11,t}}+\frac{a_{2t}^2}{\sigma_{22,t}}-\frac{2\rho_{21,t}a_{1t}a_{2t}}{\sqrt{\sigma_{11,t}\sigma_{22,t}}}\right)\right\}.\tag{10.11}\]

优点是直接建模方差和相关;缺点是 \(k\ge3\) 时似然复杂,且要用约束保证 \(\boldsymbol\rho_t\) 正定。

10.4.2 Cholesky 分解

\(\boldsymbol\Sigma_t\) 正定,所以存在单位下三角阵 \(\boldsymbol L_t\) 和正对角阵 \(\boldsymbol G_t\) 使

\[\boldsymbol\Sigma_t=\boldsymbol L_t\boldsymbol G_t\boldsymbol L_t'.\tag{10.12}\]

二元情形。 \(\boldsymbol L_t=\begin{bmatrix}1&0\\q_{21,t}&1\end{bmatrix}\),\(\boldsymbol G_t=\mathrm{diag}(g_{11,t},g_{22,t})\),展开得

\[\sigma_{11,t}=g_{11,t},\quad\sigma_{21,t}=q_{21,t}g_{11,t},\quad\sigma_{22,t}=g_{22,t}+q_{21,t}^2g_{11,t},\tag{10.13}\]
\[g_{11,t}=\sigma_{11,t},\quad q_{21,t}=\frac{\sigma_{21,t}}{\sigma_{11,t}},\quad g_{22,t}=\sigma_{22,t}-\frac{\sigma_{21,t}^2}{\sigma_{11,t}}.\tag{10.14}\]

回归解释是这一参数化的精髓。考虑条件回归 \(a_{2t}=\beta a_{1t}+b_{2t}\):最小二乘系数 \(\beta=\sigma_{21,t}/\sigma_{11,t}\),残差方差 \(\sigma_{22,t}-\sigma_{21,t}^2/\sigma_{11,t}\),且 \(b_{2t}\perp a_{1t}\)。所以

  • \(g_{11,t}\) 是 \(a_{1t}\) 的条件方差;
  • \(q_{21,t}\) 是 \(a_{2t}\) 对 \(a_{1t}\) 的条件回归系数——若 \(a_{1t}\) 是市场、\(a_{2t}\) 是个股,\(q_{21,t}\) 就是时变 β,也就是最小方差对冲比;
  • \(g_{22,t}\) 是回归残差(特质)的条件方差。

Cholesky 分解等价于正交变换 \(b_{1t}=a_{1t}\),\(b_{2t}=a_{2t}-q_{21,t}a_{1t}\)。

推导拆解:(10.13) 到 (10.14) 以及回归解释。 第一步,乘开 \(\boldsymbol L_t\boldsymbol G_t\boldsymbol L_t'\):\(\begin{bmatrix}1&0\\q&1\end{bmatrix}\begin{bmatrix}g_{11}&0\\0&g_{22}\end{bmatrix}\begin{bmatrix}1&q\\0&1\end{bmatrix}=\begin{bmatrix}g_{11}&qg_{11}\\qg_{11}&q^2g_{11}+g_{22}\end{bmatrix}\),逐元素对照 \(\boldsymbol\Sigma_t\) 就是 (10.13)。 第二步,从上往下解:第一个式子直接给 \(g_{11}\);第二个除以 \(g_{11}\) 得 \(q\);第三个移项得 \(g_{22}=\sigma_{22}-q^2\sigma_{11}=\sigma_{22}-\sigma_{21}^2/\sigma_{11}\)。 第三步,为什么这是回归:\(\mathrm{Cov}(b_{2t},a_{1t})=\mathrm{Cov}(a_{2t},a_{1t})-q\mathrm{Var}(a_{1t})=\sigma_{21}-q\sigma_{11}=0\)。所以 \(q=\sigma_{21}/\sigma_{11}\) 恰好是让残差与解释变量不相关的系数,即 OLS 的 β;\(g_{22}=\sigma_{22}(1-\rho^2)\) 就是"总方差 ×(1 − \(R^2\))",即残差方差。 数值例子(练习 4):\(\sigma_{11}=4\)、\(\sigma_{22}=9\)、\(\sigma_{21}=3\),得 \(q=0.75\)、\(g_{22}=9-9/4=6.75\)。读法:资产 1 涨 1%,资产 2 平均跟涨 0.75%;资产 2 的 9 个单位方差里,2.25 个来自资产 1,6.75 个是"特质"部分。

金融直觉:期货套保里的最小方差对冲比就是现货对期货回归的斜率。若 \(a_{1t}\) 是期货、\(a_{2t}\) 是现货,\(q_{21,t}\) 就是每天更新的最优对冲比,\(g_{22,t}\) 是对冲后剩余的基差风险。这一参数化让模型直接输出交易员关心的量。

一般情形:令 \(b_{1t}=a_{1t}\),对 \(i=2,\dots,k\) 做逐次回归

\[a_{it}=q_{i1,t}b_{1t}+\cdots+q_{i(i-1),t}b_{(i-1)t}+b_{it},\tag{10.16}\]

即 \(\boldsymbol b_t=\boldsymbol L_t^{-1}\boldsymbol a_t\),\(\mathrm{Cov}(\boldsymbol b_t)=\boldsymbol G_t\) 对角。由正交性,\(\sigma_{ii,t}=\sum_{v=1}^iq_{iv,t}^2g_{vv,t}\),\(\sigma_{ij,t}=\sum_{v=1}^jq_{iv,t}q_{jv,t}g_{vv,t}\)(\(j<i\),\(q_{vv,t}=1\))。

似然大大简化。 \(|\boldsymbol L_t|=1\),所以 \(|\boldsymbol\Sigma_t|=\prod_ig_{ii,t}\);在正态假设下 \(\boldsymbol b_t\sim N(\boldsymbol 0,\boldsymbol G_t)\),

\[\ell_t=-\frac12\sum_{i=1}^k\left[\ln g_{ii,t}+\frac{b_{it}^2}{g_{ii,t}}\right],\tag{10.20}\]

不需要矩阵求逆,变成 \(k\) 个单变量似然之和。

推导拆解:(10.20) 从多元正态似然 \(-\frac12[\ln|\boldsymbol\Sigma_t|+\boldsymbol a_t'\boldsymbol\Sigma_t^{-1}\boldsymbol a_t]\) 来。 行列式:\(|\boldsymbol\Sigma_t|=|\boldsymbol L_t||\boldsymbol G_t||\boldsymbol L_t'|\)(乘积的行列式等于行列式的乘积)。三角阵的行列式是对角元之积,\(\boldsymbol L_t\) 对角全是 1,所以 \(|\boldsymbol L_t|=1\),剩下 \(|\boldsymbol G_t|=\prod_ig_{ii,t}\),取对数变成求和。 二次型:\(\boldsymbol\Sigma_t^{-1}=(\boldsymbol L_t')^{-1}\boldsymbol G_t^{-1}\boldsymbol L_t^{-1}\),所以 \(\boldsymbol a_t'\boldsymbol\Sigma_t^{-1}\boldsymbol a_t=(\boldsymbol L_t^{-1}\boldsymbol a_t)'\boldsymbol G_t^{-1}(\boldsymbol L_t^{-1}\boldsymbol a_t)=\boldsymbol b_t'\boldsymbol G_t^{-1}\boldsymbol b_t=\sum_ib_{it}^2/g_{ii,t}\),因为 \(\boldsymbol G_t\) 是对角阵。 两部分合起来,每个 \(i\) 贡献一项 \(\ln g_{ii,t}+b_{it}^2/g_{ii,t}\),正好是单变量 GARCH 似然的形式。

三个优点:(1) 只要 \(g_{ii,t}>0\) 就正定,对 \(\ln g_{ii,t}\) 建模即可完全去掉约束;(2) 参数有清晰的回归解释;(3) 相关系数 \(\rho_{21,t}=q_{21,t}\sqrt{\sigma_{11,t}/\sigma_{22,t}}\)——即使 \(q_{21,t}\) 是常数,只要方差比时变,相关仍是时变的,这是它与相关系数参数化的主要区别。主要缺点:结果依赖分量排序(\(a_{1t}\) 不被变换),推断稍复杂。实践中通常把市场指数或最"外生"的资产排第一。


10.5 二元 GARCH 模型

多元 GARCH 用不含随机冲击的"确定性方程"描述 \(\boldsymbol\Xi_t\) 的演化。

10.5.1 常相关(CCC)模型

Bollerslev (1990) 假设 \(\rho_{21,t}\equiv\rho_{21}\),只需对两个方差建模:

\[\begin{bmatrix}\sigma_{11,t}\\\sigma_{22,t}\end{bmatrix}=\begin{bmatrix}\alpha_{10}\\\alpha_{20}\end{bmatrix}+\begin{bmatrix}\alpha_{11}&\alpha_{12}\\\alpha_{21}&\alpha_{22}\end{bmatrix}\begin{bmatrix}a_{1,t-1}^2\\a_{2,t-1}^2\end{bmatrix}+\begin{bmatrix}\beta_{11}&\beta_{12}\\\beta_{21}&\beta_{22}\end{bmatrix}\begin{bmatrix}\sigma_{11,t-1}\\\sigma_{22,t-1}\end{bmatrix}.\tag{10.22}\]

令 \(\boldsymbol\eta_t=\boldsymbol a_t^2-\boldsymbol\Xi_t^*\),可写成 \(\boldsymbol a_t^2=\boldsymbol\alpha_0+(\boldsymbol\alpha_1+\boldsymbol\beta_1)\boldsymbol a_{t-1}^2+\boldsymbol\eta_t-\boldsymbol\beta_1\boldsymbol\eta_{t-1}\),即平方新息的二元 ARMA(1,1)——单变量 GARCH(1,1) 的直接推广。由此:

推导拆解:这里 \(\boldsymbol\Xi_t^*=(\sigma_{11,t},\sigma_{22,t})'\) 是两个条件方差组成的向量,\(\boldsymbol a_t^2=(a_{1t}^2,a_{2t}^2)'\)。\(\boldsymbol\eta_t\) 是"实际平方冲击 − 条件方差",即方差的预测误差,它的条件均值为 0。 第一步,在 (10.22) 中把 \(\boldsymbol\Xi_t^*\) 换成 \(\boldsymbol a_t^2-\boldsymbol\eta_t\),\(\boldsymbol\Xi_{t-1}^*\) 换成 \(\boldsymbol a_{t-1}^2-\boldsymbol\eta_{t-1}\): \(\boldsymbol a_t^2-\boldsymbol\eta_t=\boldsymbol\alpha_0+\boldsymbol\alpha_1\boldsymbol a_{t-1}^2+\boldsymbol\beta_1(\boldsymbol a_{t-1}^2-\boldsymbol\eta_{t-1})\)。 第二步,整理即得正文的式子。\(\boldsymbol a_{t-1}^2\) 的系数 \(\boldsymbol\alpha_1+\boldsymbol\beta_1\) 起 AR 作用,\(-\boldsymbol\beta_1\boldsymbol\eta_{t-1}\) 起 MA 作用。 第三步,无条件方差:两边取期望,平稳时 \(E(\boldsymbol a_t^2)=E(\boldsymbol a_{t-1}^2)\),\(E(\boldsymbol\eta)=\boldsymbol 0\),解得 \((\boldsymbol I-\boldsymbol\alpha_1-\boldsymbol\beta_1)^{-1}\boldsymbol\alpha_0\),对应单变量的 \(\omega/(1-\alpha-\beta)\)。 验算例 10.4(对角 CCC):恒生 \(0.079/(1-0.145-0.833)=0.079/0.022\approx3.6\),即日波动率约 1.9%。

  1. 若 \(\boldsymbol\alpha_1+\boldsymbol\beta_1\) 的特征值都在 (0,1) 内,\(\boldsymbol a_t^2\) 弱平稳,无条件方差为 \((\boldsymbol I-\boldsymbol\alpha_1-\boldsymbol\beta_1)^{-1}\boldsymbol\alpha_0\),协方差 \(\rho_{21}\sigma_1\sigma_2\)。
  2. \(\alpha_{12}=\beta_{12}=0\) 时 \(a_{1t}\) 的波动不依赖 \(a_{2t}\) 的过去波动,反之亦然;\(\boldsymbol\alpha_1,\boldsymbol\beta_1\) 都对角时退化为两个独立的单变量 GARCH。
  3. 预测:\(\boldsymbol\Xi_h^*(1)=\boldsymbol\alpha_0+\boldsymbol\alpha_1\boldsymbol a_h^2+\boldsymbol\beta_1\boldsymbol\Xi_h^*\),\(\boldsymbol\Xi_h^*(\ell)=\boldsymbol\alpha_0+(\boldsymbol\alpha_1+\boldsymbol\beta_1)\boldsymbol\Xi_h^*(\ell-1)\);协方差预测为 \(\hat\rho_{21}\sqrt{\sigma_{11,h}(\ell)\sigma_{22,h}(\ell)}\)。

例 10.4(恒生/日经,对角 CCC)。 \(\sigma_{11,t}=0.079+0.145a_{1,t-1}^2+0.833\sigma_{11,t-1}\),\(\sigma_{22,t}=0.054+0.105a_{2,t-1}^2+0.875\sigma_{22,t-1}\),常相关 0.668。标准化残差的 \(Q_2(4)=17.29\)、\(Q_2(12)=48.21\),拟合合理。

例 10.5(IBM 与 S&P 500 月收益,1926–1999)。

\[\begin{bmatrix}\sigma_{11,t}\\\sigma_{22,t}\end{bmatrix}=\begin{bmatrix}2.98\\2.09\end{bmatrix}+\begin{bmatrix}0.079&0\\0.042&0.045\end{bmatrix}\boldsymbol a_{t-1}^2+\begin{bmatrix}0.873&-0.031\\-0.066&0.913\end{bmatrix}\boldsymbol\Xi_{t-1}^*,\tag{10.24}\]

常相关 0.614(标准误 0.020)。非对角元显著,两收益的波动率之间存在反馈关系。

10.5.2 时变相关模型

常相关假设常被数据拒绝:IBM 与 S&P 500 的 120 个月滚动相关随时间明显变化,且近年下降。Tse (2000) 给出了检验常相关的 LM 统计量。

方法一:直接建模相关系数。 相关为正时用 logistic 变换保证 \(\rho\in(0,1)\):

\[\rho_{21,t}=\frac{\exp(q_t)}{1+\exp(q_t)},\qquad q_t=\varpi_0+\varpi_1\rho_{21,t-1}+\varpi_2\frac{a_{1,t-1}a_{2,t-1}}{\sqrt{\sigma_{11,t-1}\sigma_{22,t-1}}}.\tag{10.25}\]

驱动项是上期标准化新息的乘积("实现相关"),这是相关系数的 GARCH(1,1)。符号未知时用 Fisher 变换 \(q_t=\ln\frac{1+\rho_t}{1-\rho_t}\)。

白话解释:相关系数必须落在 \((-1,1)\) 内,直接对 \(\rho_t\) 写线性方程,某一天就可能算出 1.2。做法是让一个可以取任意实数的 \(q_t\) 去跟随线性方程,再用一个"压缩函数"把它映射到允许的区间。logistic 函数 \(e^q/(1+e^q)\) 把整条实数轴压到 \((0,1)\):\(q=0\) 时 \(\rho=0.5\),\(q=2\) 时 \(\rho\approx0.88\),\(q\to-\infty\) 时 \(\rho\to0\)。Fisher 变换反解出来是 \(\rho=(e^q-1)/(e^q+1)\),把实数轴压到 \((-1,1)\)。这和信用模型里用 logit 保证违约概率在 0 到 1 之间是同一个技巧。 驱动项 \(a_{1}a_{2}/\sqrt{\sigma_{11}\sigma_{22}}\) 是两个标准化冲击的乘积:两个市场昨天同向大幅波动时它为大的正数,把今天的相关往上推。

例 10.5 中估计为 \(q_t=-2.024+3.983\rho_{t-1}+0.088\frac{a_{1,t-1}a_{2,t-1}}{\sqrt{\sigma_{11,t-1}\sigma_{22,t-1}}}\),全部高度显著。拟合相关平均 0.612(接近常相关 0.614),但随时间波动、近年变小;最大对数似然从 −3691.21 升至 −3679.64,显著改进。1 步预测:常相关模型 \(\hat{\boldsymbol\Sigma}(1)=\begin{bmatrix}71.09&21.83\\21.83&17.79\end{bmatrix}\);时变相关模型 \(\begin{bmatrix}75.15&23.48\\23.48&24.70\end{bmatrix}\),相关预测 0.545。

方法二:Cholesky 参数化。 二元时 \(\boldsymbol\Xi_t=(g_{11,t},g_{22,t},q_{21,t})'\):

\[g_{11,t}=\alpha_{10}+\alpha_{11}b_{1,t-1}^2+\beta_{11}g_{11,t-1},\]
\[q_{21,t}=\gamma_0+\gamma_1q_{21,t-1}+\gamma_2a_{2,t-1},\tag{10.28}\]
\[g_{22,t}=\alpha_{20}+\alpha_{21}b_{1,t-1}^2+\alpha_{22}b_{2,t-1}^2+\beta_{21}g_{11,t-1}+\beta_{22}g_{22,t-1}.\]

\(b_{1t}\) 是单变量 GARCH,\(b_{2t}\) 是二元 GARCH,\(q_{21,t}\) 自相关并以 \(a_{2,t-1}\) 为解释变量,似然用 (10.20)。例 10.5 的估计:

\[g_{11,t}=3.714+0.113b_{1,t-1}^2+0.804g_{11,t-1},\qquad q_{21,t}=0.0029+0.9915q_{21,t-1}-0.0041a_{2,t-1},\]
\[g_{22,t}=1.023+0.021b_{1,t-1}^2+0.052b_{2,t-1}^2-0.040g_{11,t-1}+0.937g_{22,t-1},\]

时变相关 \(\rho_t=q_{21,t}\sqrt{g_{11,t}}/\sqrt{g_{22,t}+q_{21,t}^2g_{11,t}}\)(10.30)。相关有很强的持续性(0.9915),路径比方法一更平滑,同样显示下降趋势;两种时变相关模型的最大似然都约为 −3672。但 1 步相关预测只有 0.203(\(\hat{\boldsymbol\Sigma}(1)=\begin{bmatrix}73.45&7.34\\7.34&17.87\end{bmatrix}\)),远低于前两个模型的 0.55 左右。不同多元波动率模型对相关的预测可以差很多,而相关预测直接决定组合风险和对冲比——模型选择本身就是一种风险。


10.6 动态条件相关(DCC)模型

基于 \(\boldsymbol\Sigma_t=\boldsymbol D_t\boldsymbol\rho_t\boldsymbol D_t\),先用单变量 GARCH 刻画每个 \(\sigma_{ii,t}\),再对相关矩阵 \(\boldsymbol\rho_t\) 建立极简的动态方程——所有相关对共用两个参数。

Tse & Tsui (2002):

\[\boldsymbol\rho_t=(1-\theta_1-\theta_2)\bar{\boldsymbol\rho}+\theta_1\boldsymbol\rho_{t-1}+\theta_2\boldsymbol\psi_{t-1},\]

\(\bar{\boldsymbol\rho}\) 为单位对角正定阵(常取样本相关矩阵),\(\boldsymbol\psi_{t-1}\) 是用最近 \(m\) 期标准化新息算出的局部样本相关矩阵。\(\theta_i\ge0\)、\(\theta_1+\theta_2<1\) 时 \(\boldsymbol\rho_t\) 是正定矩阵的凸组合,自动正定。

Engle (2002):

\[\boldsymbol Q_t=(1-\theta_1-\theta_2)\bar{\boldsymbol Q}+\theta_1\boldsymbol\epsilon_{t-1}\boldsymbol\epsilon_{t-1}'+\theta_2\boldsymbol Q_{t-1},\qquad\boldsymbol\rho_t=\boldsymbol J_t\boldsymbol Q_t\boldsymbol J_t,\]

\(\epsilon_{it}=a_{it}/\sqrt{\sigma_{ii,t}}\) 是标准化新息,\(\bar{\boldsymbol Q}\) 是其无条件协方差,\(\boldsymbol J_t=\mathrm{diag}\{q_{11,t}^{-1/2},\dots,q_{kk,t}^{-1/2}\}\) 把 \(\boldsymbol Q_t\) 归一化为相关矩阵。\(\boldsymbol Q_t\) 本身就是标准化新息协方差的"GARCH(1,1)"。

两步估计(本教材补充,Engle 2002)。正态下 \(-2\ln L\) 可以拆成两部分:

\[-2\ln L=\underbrace{\sum_t\left[k\ln2\pi+2\ln|\boldsymbol D_t|+\boldsymbol a_t'\boldsymbol D_t^{-2}\boldsymbol a_t\right]}_{\text{波动部分:}k\text{ 个单变量 GARCH 似然之和}}+\underbrace{\sum_t\left[\ln|\boldsymbol\rho_t|+\boldsymbol\epsilon_t'\boldsymbol\rho_t^{-1}\boldsymbol\epsilon_t-\boldsymbol\epsilon_t'\boldsymbol\epsilon_t\right]}_{\text{相关部分:只含 }\theta_1,\theta_2}.\]

于是第一步逐个拟合单变量 GARCH 得到 \(\boldsymbol\epsilon_t\),第二步固定 \(\boldsymbol\epsilon_t\)、用样本协方差代替 \(\bar{\boldsymbol Q}\),只对 \((\theta_1,\theta_2)\) 最大化相关部分。两步估计相合但非完全有效,好处是无论 \(k\) 多大,第二步都只有两个参数。

推导拆解:分解式怎么来的。正态下每期 \(-2\ell_t=k\ln2\pi+\ln|\boldsymbol\Sigma_t|+\boldsymbol a_t'\boldsymbol\Sigma_t^{-1}\boldsymbol a_t\)。 行列式:\(|\boldsymbol\Sigma_t|=|\boldsymbol D_t|\,|\boldsymbol\rho_t|\,|\boldsymbol D_t|\),取对数得 \(2\ln|\boldsymbol D_t|+\ln|\boldsymbol\rho_t|\)。 二次型:\(\boldsymbol\Sigma_t^{-1}=\boldsymbol D_t^{-1}\boldsymbol\rho_t^{-1}\boldsymbol D_t^{-1}\),而 \(\boldsymbol D_t^{-1}\boldsymbol a_t=\boldsymbol\epsilon_t\),所以 \(\boldsymbol a_t'\boldsymbol\Sigma_t^{-1}\boldsymbol a_t=\boldsymbol\epsilon_t'\boldsymbol\rho_t^{-1}\boldsymbol\epsilon_t\)。 技巧在于"加一项再减一项":\(\boldsymbol\epsilon_t'\boldsymbol\rho_t^{-1}\boldsymbol\epsilon_t=\boldsymbol\epsilon_t'\boldsymbol\epsilon_t+(\boldsymbol\epsilon_t'\boldsymbol\rho_t^{-1}\boldsymbol\epsilon_t-\boldsymbol\epsilon_t'\boldsymbol\epsilon_t)\),其中 \(\boldsymbol\epsilon_t'\boldsymbol\epsilon_t=\boldsymbol a_t'\boldsymbol D_t^{-2}\boldsymbol a_t=\sum_ia_{it}^2/\sigma_{ii,t}\)。把只含方差的项归到第一组,就得到"\(k\) 个单变量 GARCH 似然之和";剩下的只含 \(\boldsymbol\rho_t\)。 为什么"相合但非有效":第二步把第一步的估计当成真值,忽略了第一步的估计误差,标准误需要修正;但两步都瞄准正确的参数,样本足够大时都会收敛到真值。

白话解释:\(\boldsymbol Q_t\) 的递推保证它正定,但对角元不一定等于 1,所以要用 \(\boldsymbol J_t\boldsymbol Q_t\boldsymbol J_t\) 归一化——相当于把协方差除以两边标准差得到相关系数,\(\rho_{ij,t}=q_{ij,t}/\sqrt{q_{ii,t}q_{jj,t}}\)。\(\theta_1\) 决定相关对新冲击的反应速度,\(\theta_2\) 决定持续性,\(\theta_1+\theta_2\) 越接近 1,相关偏离长期水平后回归得越慢。

共同缺点:\(\theta_1,\theta_2\) 是标量,所有相关对的动态完全相同,\(k\) 大时难以自圆其说。

Tsay (2006) 的推广:(1) 标准化新息服从多元 Student-t(10.8 节);(2) 边际波动率含杠杆效应:

\[\boldsymbol D_t^2=\boldsymbol\Lambda_0+\boldsymbol\Lambda_1\boldsymbol D_{t-1}^2+\boldsymbol\Lambda_2\boldsymbol A_{t-1}^2+\boldsymbol\Lambda_3\boldsymbol L_{t-1}^2,\tag{10.31}\]

\(\boldsymbol\Lambda_i\) 对角,\(\boldsymbol A_{t-1}=\mathrm{diag}\{a_{1,t-1},\dots,a_{k,t-1}\}\),\(\boldsymbol L_{t-1}\) 的对角元在 \(a_{i,t-1}<0\) 时等于 \(a_{i,t-1}\)、否则为 0;相关方程为 \(\boldsymbol\rho_t=(1-\theta_1-\theta_2)\hat{\boldsymbol\rho}+\theta_1\boldsymbol\psi_{t-1}+\theta_2\boldsymbol\rho_{t-1}\)(10.32)。

例 10.6(美元/欧元、日元/美元汇率与 IBM、Dell 日收益)。 1999–2004 年,1496 个观测,四个序列都有厚尾(超额峰度 2.0–6.2)。全模型对数似然 −9175.80;限制 \(\boldsymbol\Lambda_1=\lambda\boldsymbol I\) 后 −9176.62;最终限制模型(两只股票共用 ARCH 系数、两种汇率共用常数与 ARCH 系数)−9177.44,只用 9 个参数刻画四维收益的时变波动与相关:\(\lambda=0.9603\),ARCH 系数 0.0248(汇率)与 0.0372(股票),多元 t 自由度 \(v=7.918\),相关方程系数 0.9809 与 0.0137。

记号说明:原书表中把 0.98 记为 \(\theta_1\),但按 (10.32) 的写法 \(\theta_1\) 乘的是局部相关 \(\boldsymbol\psi_{t-1}\)。从数值看,0.98 应是滞后相关矩阵 \(\boldsymbol\rho_{t-1}\) 的系数(高持续性),0.014 是 \(\boldsymbol\psi_{t-1}\) 的系数,这与 Engle 型 DCC 的典型估计(新息系数小、持续性系数接近 1)一致。

结论:LR 检验不能拒绝最终限制模型;两只股票 \(0.0372+0.9603=0.9975\approx1\),呈 IGARCH;与 69 日滚动窗口相比,模型波动率对大冲击反应更快、相关更平滑。加入杠杆项后对数似然升至 −9169.04,杠杆效应只对股票显著(\(\boldsymbol\Lambda_3=\mathrm{diag}\{0,0,0.0159,0.0114\}\)),LR=15.16,p=0.0005。


10.7 高维波动率模型

10.7.1 序贯 Cholesky 建模

Cholesky 变换有嵌套结构:\(b_{it}\) 只依赖 \(b_{jt}\)(\(j<i\)),因此可以一个一个地加入资产:

  1. 选最关心的市场指数(或股票),建单变量波动率模型;
  2. 加入第二个序列,做正交变换,建二元模型(以第 1 步估计为初值);
  3. 加入第三个序列,同样处理(以二元估计为初值);
  4. 重复直到包含所有序列,每步都做模型检验。

经验表明这能大幅简化高维建模、显著减少计算时间。

例 10.7(S&P 500、Cisco、Intel 日收益,1991–1999,2275 个观测)。 排序为 (SP5, CSCO, INTC)。均值方程显示:指数不依赖两只个股的过去收益,Cisco 依赖指数滞后 2 期,Intel 依赖指数滞后 1 期——与第 08a 章 IBM 的结论一致。最终三维模型中,\(q_{ij,t}\) 都有很高的持续性(AR(1) 系数 0.82–0.98),例如

\[q_{21,t}=0.277+0.824q_{21,t-1}-0.035a_{2,t-1},\qquad g_{33,t}=1.188+0.053b_{3,t-1}^2+0.687g_{33,t-1}-0.019g_{22,t-1}.\]

特征:指数的波动不依赖个股的过去波动,经 Cholesky 逆变换后个股的波动依赖市场的过去波动;收益波动大时相关系数上升,与"金融危机期间市场间相关上升"的国际实证一致。

10.7.2 通向多元随机波动率

令 \(\boldsymbol v_t=(\ln g_{11,t},\ln g_{22,t},\ln g_{33,t})'\),\(\boldsymbol q_t=(q_{21,t},q_{31,t},q_{32,t})'\),确定性模型 \(\boldsymbol v_t=\boldsymbol c_1+\boldsymbol\beta_1\boldsymbol v_{t-1}\)、\(\boldsymbol q_t=\boldsymbol c_2+\boldsymbol\beta_2\boldsymbol q_{t-1}\) 加上噪声项,就得到简单的多元随机波动率(SV)模型,需要用 MCMC 估计(第 12a、12b 章;Chib, Nardari & Shephard 1999)。


10.8 因子–波动率模型

另一条降维路线是用第 09 章的因子:

  1. 对新息 \(\boldsymbol a_t\) 做 PCA,选出解释大部分变异的前几个主成分;
  2. 对这些主成分建(少数几个)波动率模型;
  3. 把每个 \(a_{it}\) 的波动率表示为主成分波动率的函数。

例 10.8(IBM 与 S&P 500 月收益)。 第一主成分解释约 82.5% 的方差,\(x_t=0.796r_{1t}+0.605r_{2t}\)。对它拟合 GARCH:\(\sigma_t^2=3.834+0.110a_{t-1}^2+0.825\sigma_{t-1}^2\)。再以 \(\sigma_t^2\) 为共同波动率因子:

\[\begin{bmatrix}\sigma_{11,t}\\\sigma_{22,t}\end{bmatrix}=\begin{bmatrix}19.08\\-5.62\end{bmatrix}+\begin{bmatrix}0.098&0\\0&0\end{bmatrix}\boldsymbol a_{t-1}^2+\begin{bmatrix}0.333\\0.596\end{bmatrix}\sigma_t^2,\]

相关方程与 10.5.2 节方法一几乎相同。均值方程无序列相关,但平方残差 \(Q_2^*(8)=61.95\)(p=0.0004)显示高阶条件异方差没处理好——单一因子只解释 82.5% 的方差。总体是参数更少的合理近似。原书用两步估计(先估因子波动再视为已知),简单但未必有效;若共同因子已知,可联合估计。(原书一处把系数 0.796 误印为 0.769。)


10.9 应用:多资产 VaR

投资者持有 Cisco 与 Intel 各 100 万美元多头,用日收益数据末端的 1 步预测和 5% 分位数计算日 VaR。组合 VaR(第 07a 章)为

\[\mathrm{VaR}=\sqrt{\mathrm{VaR}_1^2+\mathrm{VaR}_2^2+2\rho\,\mathrm{VaR}_1\mathrm{VaR}_2}.\]

金融直觉:这就是两资产组合标准差公式 \(\sigma_p^2=w_1^2\sigma_1^2+w_2^2\sigma_2^2+2\rho w_1w_2\sigma_1\sigma_2\) 两边乘以分位数 \(z_\alpha\) 后的形式:均值为零的正态下,\(\mathrm{VaR}_i=z_\alpha\times\)头寸\(_i\times\sigma_i\),组合 VaR 同理,于是 \(z_\alpha\) 可以整体提出根号。\(\rho=1\) 时组合 VaR 等于简单加总(没有分散化),\(\rho<1\) 时小于加总。所以相关预测从 0.475 降到 0.345,抵消了 Cholesky 模型较高的单资产 VaR。

方法 \(\hat\sigma_1^2\) \(\hat\sigma_2^2\) \(\hat\rho\) \(\mathrm{VaR}_1\) \(\mathrm{VaR}_2\) 组合 VaR
单变量 GARCH + 样本相关 4.152 6.087 0.473 27,360 38,840 57,117
常相关二元 GARCH 4.287 5.706 0.475 30,432 37,195 58,180
时变相关(Cholesky) 4.252 6.348 0.345 30,504 39,512 57,648

以第一行为例:\(\hat r_1=0.626\),\(q_1=0.626-1.65\sqrt{4.152}=-2.736\%\),\(\mathrm{VaR}_1=\$27{,}360\);同理 \(\mathrm{VaR}_2=\$38{,}840\),代入公式得 $57,117(本教材已核算三行组合 VaR)。三种方法结果相近,差距约 1100 美元。注意:单资产 VaR 中包含了非零均值,而上述合成公式严格成立需要均值为零(或对组合整体计算分位数),所以这里只是近似。Cholesky 模型的两个单资产 VaR 之和最大,但相关预测低得多(0.345),组合 VaR 反而居中——相关预测对组合风险的影响不亚于方差预测。


10.10 多元 Student-t 分布

多元高斯新息常无法刻画收益的厚尾。\(k\) 维、自由度 \(v\)、均值 0、尺度阵 \(\boldsymbol I\) 的多元 t 密度为

\[f(\boldsymbol x|v)=\frac{\Gamma[(v+k)/2]}{(\pi v)^{k/2}\Gamma(v/2)}\left(1+v^{-1}\boldsymbol x'\boldsymbol x\right)^{-(v+k)/2}.\tag{10.41}\]

各分量方差为 \(v/(v-2)\),标准化 \(\boldsymbol\epsilon_t=\sqrt{(v-2)/v}\,\boldsymbol x\) 使协方差为 \(\boldsymbol I\)。在波动率模型中 \(\boldsymbol a_t=\boldsymbol\Sigma_t^{1/2}\boldsymbol\epsilon_t\),

\[f(\boldsymbol a_t|v,\boldsymbol\Sigma_t)=\frac{\Gamma[(v+k)/2]}{[\pi(v-2)]^{k/2}\Gamma(v/2)|\boldsymbol\Sigma_t|^{1/2}}\left[1+(v-2)^{-1}\boldsymbol a_t'\boldsymbol\Sigma_t^{-1}\boldsymbol a_t\right]^{-(v+k)/2}.\]

用 Cholesky 分解时 \(|\boldsymbol\Sigma_t|^{1/2}=\prod_jg_{jj,t}^{1/2}\),\(\boldsymbol a_t'\boldsymbol\Sigma_t^{-1}\boldsymbol a_t=\sum_jb_{jt}^2/g_{jj,t}\),无需矩阵求逆。但要注意:多元 t 下 \(b_{jt}\) 不相关但不独立,似然不能像正态那样拆成单变量似然的乘积。

白话解释:多元 t 可以理解为"多元正态再乘上一个所有分量共用的随机放大倍数"——市场平静的日子倍数小,恐慌的日子倍数大。因为这个倍数是共用的,一个分量出现极端值时,其他分量也更可能出现极端值,所以即使它们的相关系数为 0,也不独立。\(\Gamma(\cdot)\) 是伽马函数(阶乘向实数的推广,\(\Gamma(n)=(n-1)!\)),在这里只起归一化常数的作用,让密度积分为 1。 对风险管理的含义:多元 t 下资产会"一起出极端值",这正是危机时分散化失效的统计表现;自由度 \(v\) 越小,这种尾部共振越强。例 10.6 估计 \(v\approx7.9\),尾部明显厚于正态。

估计说明(原书附录)。 原书用 RATS 实现例 10.5 的常相关、logistic 时变相关和 Cholesky 模型,以及例 10.7 的三维 Cholesky 模型:用 nonlin 声明参数、frml 写方差递推和对数似然、maximize(method=bhhh) 求解。本章的 Python 示例用 scipy.optimize 实现相同的思路。


量化实战

应用场景

风险管理。 组合 VaR/ES 的核心输入是 \(\boldsymbol\Sigma_t\) 的 1 步(或多步)预测。EWMA 是行业标准的基准;DCC 允许均值回复和时变相关,是更精细的选择。压力测试应使用危机情景下的条件相关,而不是长期平均相关——10.7 节"波动大时相关上升"意味着分散化恰在最需要的时候失效。

组合优化与资产配置。 最小方差、风险平价、均值–方差组合的权重都由 \(\boldsymbol\Sigma_t\) 决定,用 DCC 预测替代滚动样本协方差可以更快适应市场状态。高维时(数百只股票)一般先用第 09 章的因子模型把问题降到几十个因子,再对因子协方差用 EWMA 或 DCC,特质方差用单变量 GARCH——这就是商业风险模型的做法。

动态对冲与时变 β。 Cholesky 参数中的 \(q_{21,t}=\sigma_{21,t}/\sigma_{11,t}\) 就是时变回归系数:个股对市场的时变 β、期货最优对冲比(最小方差对冲比 \(h^*=\mathrm{Cov}(\Delta S,\Delta F)/\mathrm{Var}(\Delta F)\),见第 08 册)、配对交易中动态的对冲比 \(\gamma_t\)。

工程注意。 排序依赖性:把市场指数放第一位;数值稳定性:Cholesky 似然无需求逆,对 \(\ln g\) 建模免去约束;估计初值:用序贯法逐个加入资产。

Python 示例一:DCC 两步估计、模型比较与组合 VaR

模拟 3 资产 DCC-GARCH(1,1) 日收益(真值 \(\theta_1=0.04\)、\(\theta_2=0.94\)),比较 EWMA、CCC、DCC 和 60 日滚动窗口对真实相关路径的估计精度,最后计算下一日的组合 VaR。

import numpy as np
from scipy.optimize import minimize, minimize_scalar
from arch import arch_model

rng = np.random.default_rng(10)

# ---------- 1. 模拟 3 资产 DCC-GARCH(1,1) 日收益(%),Engle (2002) 设定 ----------
T, k = 2500, 3
omega = np.array([0.02, 0.03, 0.05]); alp = np.array([0.08, 0.10, 0.06]); bet = np.array([0.90, 0.87, 0.92])
Qbar = np.array([[1.0, 0.5, 0.3], [0.5, 1.0, 0.6], [0.3, 0.6, 1.0]])
th1, th2 = 0.04, 0.94                                     # 真值:Q_t = (1-θ1-θ2)Q̄ + θ1 εε' + θ2 Q_{t-1}
h = omega / (1 - alp - bet); Q = Qbar.copy(); eps_prev = np.zeros(k); a_prev = np.zeros(k)
A = np.zeros((T, k)); Rtrue = np.zeros((T, k, k))
for t in range(T):
    h = omega + alp * a_prev**2 + bet * h
    Q = (1 - th1 - th2) * Qbar + th1 * np.outer(eps_prev, eps_prev) + th2 * Q
    J = np.diag(1 / np.sqrt(np.diag(Q))); Rt = J @ Q @ J
    eps = np.linalg.cholesky(Rt) @ rng.standard_normal(k)
    a = np.sqrt(h) * eps
    A[t], Rtrue[t] = a, Rt
    eps_prev, a_prev = eps, a

# ---------- 2. EWMA 协方差:RiskMetrics λ=0.94 与极大似然估计 λ ----------
def ewma_path(A, lam):
    S = np.cov(A[:50].T); out = np.zeros((len(A), k, k))
    for t in range(len(A)):
        out[t] = S
        S = (1 - lam) * np.outer(A[t], A[t]) + lam * S
    return out
def ewma_nll(lam):
    S = ewma_path(A, lam)
    sign, logdet = np.linalg.slogdet(S)
    quad = np.einsum("ti,tij,tj->t", A, np.linalg.inv(S), A)
    return 0.5 * (logdet + quad)[50:].sum()
lam_hat = minimize_scalar(ewma_nll, bounds=(0.85, 0.999), method="bounded").x
print(f"EWMA 极大似然 λ = {lam_hat:.4f}")

# ---------- 3. DCC 两步估计:先逐个 GARCH(1,1),再估相关方程 ----------
H = np.zeros((T, k)); E = np.zeros((T, k))
for i in range(k):
    res = arch_model(A[:, i], mean="Zero", vol="GARCH", p=1, q=1).fit(disp="off")
    H[:, i] = res.conditional_volatility**2
    E[:, i] = A[:, i] / res.conditional_volatility
    w, a1, b1 = res.params[["omega", "alpha[1]", "beta[1]"]]
    print(f"资产{i+1} GARCH: ω={w:.3f} α={a1:.3f} β={b1:.3f}  (真值 {omega[i]}, {alp[i]}, {bet[i]})")

Qb = np.cov(E.T, bias=True)
def dcc_path(theta, E):
    t1, t2 = theta; Qt = Qb.copy(); R = np.zeros((len(E), k, k))
    for t in range(len(E)):
        d = 1 / np.sqrt(np.diag(Qt)); R[t] = Qt * np.outer(d, d)
        Qt = (1 - t1 - t2) * Qb + t1 * np.outer(E[t], E[t]) + t2 * Qt
    return R
def dcc_nll(theta):
    if theta[0] < 0 or theta[1] < 0 or theta.sum() >= 0.999:
        return 1e10
    R = dcc_path(theta, E)
    _, logdet = np.linalg.slogdet(R)
    quad = np.einsum("ti,tij,tj->t", E, np.linalg.inv(R), E)
    return 0.5 * (logdet + quad - (E**2).sum(1)).sum()   # 似然的相关部分
fit = minimize(dcc_nll, x0=[0.03, 0.90], method="Nelder-Mead")
print(f"DCC: θ1(εε')={fit.x[0]:.4f}, θ2(Q_t-1)={fit.x[1]:.4f}   (真值 {th1}, {th2})")

# 常相关(CCC)是 θ1=θ2=0 的特例:似然比检验
R_ccc = np.corrcoef(E.T)
_, ld = np.linalg.slogdet(R_ccc)
nll_ccc = 0.5 * (T * ld + np.einsum("ti,ij,tj->", E, np.linalg.inv(R_ccc), E) - (E**2).sum())
print(f"LR(CCC vs DCC) = {2 * (nll_ccc - fit.fun):.1f}  (χ²_2 的 1% 临界值 9.21)")

# ---------- 4. 相关路径的估计精度:DCC / CCC / EWMA / 60 日滚动 ----------
R_dcc = dcc_path(fit.x, E)
S_ew = ewma_path(A, 0.94)
R_ew = S_ew / np.sqrt(np.einsum("tii,tjj->tij", S_ew, S_ew))
R_roll = np.array([np.corrcoef(A[max(0, t - 60):t].T) if t >= 60 else R_ccc for t in range(T)])
iu = np.triu_indices(k, 1)
for name, Rh in (("DCC", R_dcc), ("CCC", np.broadcast_to(R_ccc, Rtrue.shape)),
                 ("EWMA 0.94", R_ew), ("60日滚动", R_roll)):
    err = (Rh[:, iu[0], iu[1]] - Rtrue[:, iu[0], iu[1]])[100:]
    print(f"{name:9s}: 相关系数 RMSE = {np.sqrt((err**2).mean()):.4f}")
rt = Rtrue[:, 1, 2]
print(f"真实 ρ23 的波动范围: {rt.min():.2f} ~ {rt.max():.2f}")

# ---------- 5. 下一日协方差预测与组合 VaR(每个资产多头 100 万) ----------
hT = np.array([arch_model(A[:, i], mean="Zero", vol="GARCH", p=1, q=1).fit(disp="off")
               .forecast(horizon=1).variance.values[-1, 0] for i in range(k)])
t1, t2 = fit.x
QT = Qb.copy()
for t in range(T):
    QT = (1 - t1 - t2) * Qb + t1 * np.outer(E[t], E[t]) + t2 * QT
d = 1 / np.sqrt(np.diag(QT)); RT = QT * np.outer(d, d)
Sig = np.sqrt(np.outer(hT, hT)) * RT
pos = np.array([1e6, 1e6, 1e6])
VaR_i = 1.645 * np.sqrt(hT) / 100 * pos
VaR_p = 1.645 * np.sqrt(pos @ Sig @ pos) / 100
print("单资产 VaR:", VaR_i.round(0), " 简单加总:", VaR_i.sum().round(0))
print(f"DCC 组合 VaR = {VaR_p:,.0f};  用 CCC 相关 = "
      f"{1.645*np.sqrt(pos @ (np.sqrt(np.outer(hT,hT))*R_ccc) @ pos)/100:,.0f}")

输出:

EWMA 极大似然 λ = 0.9593
资产1 GARCH: ω=0.021 α=0.083 β=0.895  (真值 0.02, 0.08, 0.9)
资产2 GARCH: ω=0.034 α=0.106 β=0.861  (真值 0.03, 0.1, 0.87)
资产3 GARCH: ω=0.067 α=0.063 β=0.909  (真值 0.05, 0.06, 0.92)
DCC: θ1(εε')=0.0326, θ2(Q_t-1)=0.9545   (真值 0.04, 0.94)
LR(CCC vs DCC) = 313.5  (χ²_2 的 1% 临界值 9.21)
DCC      : 相关系数 RMSE = 0.0190
CCC      : 相关系数 RMSE = 0.1489
EWMA 0.94: 相关系数 RMSE = 0.0780
60日滚动    : 相关系数 RMSE = 0.1085
真实 ρ23 的波动范围: 0.12 ~ 0.81
单资产 VaR: [17042. 19202. 23228.]  简单加总: 59472.0
DCC 组合 VaR = 51,296;  用 CCC 相关 = 47,679
  • EWMA 的 ML 估计 \(\hat\lambda=0.959\),比 RiskMetrics 的 0.94 更"慢"——与例 10.1 一样,\(\lambda\) 应根据数据估计,0.94 只是经验值。
  • 两步 DCC 恢复了真实参数(0.033/0.955 对 0.04/0.94),持续性 \(\theta_1+\theta_2=0.987\) 与真值 0.98 接近。
  • CCC 被强烈拒绝(LR=313.5)。严格地说,\(\theta_1=0\) 时 \(\theta_2\) 不可识别,LR 统计量的分布非标准,这里的卡方临界值只作参考;但统计量如此之大,结论不受影响。
  • 相关路径精度:DCC 的 RMSE(0.019)远低于 EWMA(0.078)、60 日滚动(0.109)和 CCC(0.149)。真实 \(\rho_{23}\) 在 0.12 到 0.81 之间波动,常相关假设会严重误估某些时段的组合风险。
  • 组合 VaR:三个单资产 VaR 简单加总为 59,472,DCC 组合 VaR 为 51,296(分散化收益),而用常相关算出 47,679——当前条件相关高于长期平均,CCC 会低估约 7% 的风险。

Python 示例二:Cholesky 时变 β 与动态对冲

模拟市场与个股:个股的真实 β 在 0.6–1.7 之间缓慢变动,并在第 2000 天上跳 0.3(结构转变)。用四种方法估计时变 β 并用于对冲:静态 β、250 日滚动 OLS、EWMA 协方差比、Tsay 的 Cholesky GARCH。Cholesky 模型的 \(q_{21,t}\) 方程用两种驱动项:原书 (10.28) 的 \(a_{2,t-1}\),以及本教材的一个变体——用"β 的意外" \(a_{1,t-1}b_{2,t-1}/g_{11,t-1}\) 驱动(它是对数似然对 \(q_{21}\) 的得分方向,作用类似递推最小二乘的修正量)。

import numpy as np
from scipy.optimize import minimize

rng = np.random.default_rng(4)

# ---------- 1. 模拟:市场 GARCH(1,1) + 个股,beta 缓慢时变(结构转变) ----------
T = 3000
beta_true = 1.0 + 0.4 * np.sin(2 * np.pi * np.arange(T) / 1500) + np.where(np.arange(T) > 2000, 0.3, 0.0)
m = np.zeros(T); s = np.zeros(T); h = 1.0; g = 1.5; m_prev = 0.0; u_prev = 0.0
for t in range(T):
    h = 0.02 + 0.08 * m_prev**2 + 0.90 * h            # 市场条件方差
    g = 0.05 + 0.05 * u_prev**2 + 0.92 * g            # 个股特质条件方差
    m[t] = np.sqrt(h) * rng.standard_normal()
    u = np.sqrt(g) * rng.standard_normal()
    s[t] = beta_true[t] * m[t] + u
    m_prev, u_prev = m[t], u

# ---------- 2. Tsay 的 Cholesky 时变相关 GARCH,式 (10.28) 的简化版 ----------
#  b1 = a1 = m;b2 = a2 - q21_t a1
#  g11_t = α10 + α11 b1^2 + β11 g11;  g22_t = α20 + α22 b2^2 + β22 g22
#  q21 方程两种驱动项:
#    "tsay"  : q21_t = γ0 + γ1 q21_{t-1} + γ2 a2_{t-1}                 (原书 10.28)
#    "score" : q21_t = γ0 + γ1 q21_{t-1} + γ2 a1_{t-1} b2_{t-1}/g11_{t-1}(本教材的变体:
#              驱动项是 beta 的"意外",类似递推最小二乘的修正量)
def filt(p, a1, a2, driver):
    a10, a11, b11, c0, c1, c2, a20, a22, b22 = p
    n = len(a1); g11 = np.var(a1); g22 = np.var(a2); q = c0 / (1 - c1)
    G11, G22, Q, B2 = (np.zeros(n) for _ in range(4))
    for t in range(n):
        if t > 0:
            g11 = a10 + a11 * a1[t-1]**2 + b11 * g11
            x = a2[t-1] if driver == "tsay" else a1[t-1] * B2[t-1] / G11[t-1]
            q = c0 + c1 * q + c2 * x
            g22 = a20 + a22 * B2[t-1]**2 + b22 * g22
        G11[t], Q[t], G22[t] = g11, q, g22
        B2[t] = a2[t] - q * a1[t]
    return G11, G22, Q, B2
def nll(p, driver):
    if (np.array(p)[[0, 1, 2, 6, 7, 8]] < 0).any() or p[1] + p[2] >= 1 or p[7] + p[8] >= 1 or abs(p[4]) >= 1:
        return 1e10
    G11, G22, Q, B2 = filt(p, m, s, driver)
    return 0.5 * (np.log(G11) + m**2 / G11 + np.log(G22) + B2**2 / G22).sum()   # 式 (10.20)
p0 = [0.05, 0.05, 0.9, 0.05, 0.95, 0.0, 0.1, 0.05, 0.9]
names = ["α10", "α11", "β11", "γ0", "γ1", "γ2", "α20", "α22", "β22"]
q21 = {}
for drv in ("tsay", "score"):
    fit = minimize(nll, p0, args=(drv,), method="Nelder-Mead",
                   options={"maxiter": 20000, "maxfev": 20000, "xatol": 1e-6, "fatol": 1e-6})
    fit = minimize(nll, fit.x, args=(drv,), method="Nelder-Mead", options={"maxiter": 20000, "maxfev": 20000})
    print(f"[{drv}] -logL={fit.fun:.1f}", {n: round(float(v), 4) for n, v in zip(names, fit.x)})
    G11, G22, q21[drv], B2 = filt(fit.x, m, s, drv)

# ---------- 3. 其他时变 beta 估计:EWMA 协方差比、250 日滚动 OLS ----------
lam = 0.97; c11 = np.var(m[:50]); c21 = np.cov(m[:50], s[:50])[0, 1]
beta_ew = np.zeros(T)
for t in range(T):
    beta_ew[t] = c21 / c11                           # 用 t-1 及以前信息
    c11 = lam * c11 + (1 - lam) * m[t]**2
    c21 = lam * c21 + (1 - lam) * m[t] * s[t]
beta_roll = np.full(T, np.nan)
for t in range(250, T):
    x, y = m[t-250:t], s[t-250:t]
    beta_roll[t] = (x @ y) / (x @ x)
beta_static = (m[:250] @ s[:250]) / (m[:250] @ m[:250])

# ---------- 4. 比较:beta 跟踪误差与对冲效果(对冲后收益方差) ----------
idx = np.arange(250, T)
print(f"{'方法':16s}{'beta RMSE':>10s}{'对冲后方差':>12s}")
for name, b in (("静态(前250日)", np.full(T, beta_static)), ("250日滚动OLS", beta_roll),
                ("EWMA λ=0.97", beta_ew), ("Cholesky(10.28)", q21["tsay"]),
                ("Cholesky 变体", q21["score"])):
    rmse = np.sqrt(((b[idx] - beta_true[idx])**2).mean())
    hedged = s[idx] - b[idx] * m[idx]
    print(f"{name:16s}{rmse:10.3f}{hedged.var():12.3f}")
print(f"不对冲方差 {s[idx].var():.3f};完美对冲(真 beta)方差 {(s[idx]-beta_true[idx]*m[idx]).var():.3f}")
q = q21["score"]
rho = q * np.sqrt(G11) / np.sqrt(G22 + q**2 * G11)   # 式 (10.30)
print(f"Cholesky 模型隐含相关系数范围 {rho[idx].min():.2f} ~ {rho[idx].max():.2f}")

输出:

[tsay] -logL=3348.3 {'α10': 0.0364, 'α11': 0.1051, 'β11': 0.8521, 'γ0': 0.0311, 'γ1': 0.9727, 'γ2': -0.0058, 'α20': 0.0355, 'α22': 0.0359, 'β22': 0.9433}
[score] -logL=3322.8 {'α10': 0.0356, 'α11': 0.1034, 'β11': 0.8546, 'γ0': 0.0035, 'γ1': 0.9969, 'γ2': 0.0104, 'α20': 0.0402, 'α22': 0.0386, 'β22': 0.9375}
方法               beta RMSE       对冲后方差
静态(前250日)            0.290       1.737
250日滚动OLS            0.165       1.709
EWMA λ=0.97          0.187       1.717
Cholesky(10.28)      0.291       1.735
Cholesky 变体          0.150       1.701
不对冲方差 2.752;完美对冲(真 beta)方差 1.691
Cholesky 模型隐含相关系数范围 0.26 ~ 0.89
  • 原书设定 (10.28) 的 \(q_{21,t}\) 以 \(a_{2,t-1}\) 为驱动,而 \(a_{2,t-1}\) 本身几乎不含"β 变了"的信息,所以估计出 \(\gamma_2\approx0\),\(q_{21,t}\) 退化为常数,跟踪效果与静态 β 相同。这并不说明 Cholesky 参数化不好,而是说明驱动项要选对:在 IBM/S&P 500 这类数据上它够用,在 β 发生系统性漂移时就不够。
  • 变体以 \(a_{1,t-1}b_{2,t-1}/g_{11,t-1}\) 驱动,参数个数相同,但 \(-\ln L\) 降低 25.5,β 的跟踪误差(0.150)在四种方法中最小,对冲后方差(1.701)最接近用真实 β 的理论下限(1.691)。
  • 不对冲时方差 2.75,任何合理的对冲都去掉约 38% 的方差;方法之间的差别相对较小,但在大资金、高杠杆的对冲账户中,这一差别会直接变成损益。
  • Cholesky 模型隐含的相关系数在 0.26–0.89 之间变化——β 和方差比同时时变,相关随之时变(10.4.2 节的第三个优点)。

本章小结

多元波动率模型刻画条件协方差矩阵 \(\boldsymbol\Sigma_t\),难点在于维数灾难和正定约束。EWMA 只有一个参数,是实务基准;DVEC 逐元素 GARCH,简单但不保证正定、没有溢出;BEKK 保证正定、允许溢出,但参数多且难解释。两种重参数化把问题变得可控:\(\boldsymbol D_t\boldsymbol\rho_t\boldsymbol D_t\) 把方差和相关分开,催生了 CCC、logistic 时变相关和 DCC;Cholesky 分解 \(\boldsymbol L_t\boldsymbol G_t\boldsymbol L_t'\) 等价于逐次回归正交化,参数是时变回归系数和残差方差,似然可拆分、无约束,但依赖排序,并可序贯推广到高维。DCC 用两步法估计,第二步无论维数多高都只有两个参数,是最常用的多元波动率模型。实证规律:波动大时相关上升;个股波动受市场过去波动影响,反之不然;股票日波动接近 IGARCH 且有杠杆效应;不同模型的相关预测可能差别很大,直接影响 VaR 和对冲比。

模型 / 概念 公式 / 要点
EWMA \(\hat{\boldsymbol\Sigma}_t=(1-\lambda)\boldsymbol a_{t-1}\boldsymbol a_{t-1}'+\lambda\hat{\boldsymbol\Sigma}_{t-1}\)
DVEC \(\boldsymbol\Sigma_t=\boldsymbol A_0+\boldsymbol A_1\odot\boldsymbol a_{t-1}\boldsymbol a_{t-1}'+\boldsymbol B_1\odot\boldsymbol\Sigma_{t-1}\)
BEKK \(\boldsymbol\Sigma_t=\boldsymbol A\boldsymbol A'+\boldsymbol A_1\boldsymbol a_{t-1}\boldsymbol a_{t-1}'\boldsymbol A_1'+\boldsymbol B_1\boldsymbol\Sigma_{t-1}\boldsymbol B_1'\)
相关分解 \(\boldsymbol\Sigma_t=\boldsymbol D_t\boldsymbol\rho_t\boldsymbol D_t\)
Cholesky 分解 \(\boldsymbol\Sigma_t=\boldsymbol L_t\boldsymbol G_t\boldsymbol L_t'\),\(q_{21,t}=\sigma_{21,t}/\sigma_{11,t}\)
Cholesky 似然 \(-\frac12\sum_i[\ln g_{ii,t}+b_{it}^2/g_{ii,t}]\)
CCC \(\rho\) 常数;\(\boldsymbol a_t^2\) 为二元 ARMA(1,1)
时变相关 \(\rho_t=e^{q_t}/(1+e^{q_t})\),\(q_t\) 由 \(\rho_{t-1}\) 与标准化新息乘积驱动
DCC (Engle) \(\boldsymbol Q_t=(1-\theta_1-\theta_2)\bar{\boldsymbol Q}+\theta_1\boldsymbol\epsilon_{t-1}\boldsymbol\epsilon_{t-1}'+\theta_2\boldsymbol Q_{t-1}\)
两步估计 似然 = 波动部分 + 相关部分
组合 VaR \(\sqrt{\mathrm{VaR}_1^2+\mathrm{VaR}_2^2+2\rho\mathrm{VaR}_1\mathrm{VaR}_2}\)
多元 t 标准化 \(\sqrt{(v-2)/v}\,\boldsymbol x\);不相关 ≠ 独立

练习

基础

  1. 证明 EWMA 递推式中,若初值 \(\hat{\boldsymbol\Sigma}_1\) 正定,则所有 \(\hat{\boldsymbol\Sigma}_t\) 正定。 提示:正定矩阵与半正定矩阵的正系数组合仍正定。
  2. 写出 DVEC(1,1) 退化为 EWMA 的参数条件,并说明为什么 DVEC 一般不保证正定。
  3. 由 (10.13) 推导 (10.14),并说明 \(g_{22,t}\) 的回归含义。
  4. 给定 \(\sigma_{11}=4\)、\(\sigma_{22}=9\)、\(\sigma_{21}=3\),求 Cholesky 参数 \(g_{11},q_{21},g_{22}\) 与相关系数;若改变排序,\(q_{21}\) 变为多少? 提示:\(g_{11}=4\),\(q_{21}=0.75\),\(g_{22}=6.75\),\(\rho=0.5\);换序后 \(q_{21}=3/9=1/3\)。
  5. 用 10.9 节表中数据核算第三行的组合 VaR。 提示:\(\sqrt{30504^2+39512^2+2\times0.345\times30504\times39512}\approx57{,}648\)。

进阶

  1. 证明 DCC 的 \(-2\ln L\) 可以分解为"波动部分 + 相关部分",并说明为什么两步估计相合但非有效。
  2. 推导常相关二元 GARCH(1,1) 的无条件方差 \((\boldsymbol I-\boldsymbol\alpha_1-\boldsymbol\beta_1)^{-1}\boldsymbol\alpha_0\),并给出 \(\ell\) 步方差预测的闭式表达。
  3. 修改示例一:把新息改为多元 t(\(v=6\)),比较高斯两步 DCC 与把相关部分似然换成多元 t 的估计结果;计算 1% 组合 VaR 并比较。
  4. 修改示例一:用 50 个资产(\(\bar{\boldsymbol Q}\) 随机生成),比较 DCC 两步法与 BEKK 的可行性(参数个数、估计时间)。
  5. 在示例二中把 EWMA 的 \(\lambda\) 改为用对冲后方差最小化来选择(在形成期上),再在后半段样本外评估;与 Cholesky 变体比较。

原书推荐习题:10.10(三种方法计算多元 VaR 并比较,直接对应风险管理实务)、10.6(三维 DCC,\(\boldsymbol\rho\) 取样本相关阵)、10.7 + 10.8(同一数据比较 logistic 时变相关与 Cholesky 时变相关)、10.1(EWMA 估计 \(\lambda\))、10.2、10.3(DVEC 与 BEKK)。


原书对照

本章小节 原书章节 PDF 页码
10.1 问题设定 第 10 章引言 p.525–526
10.2 EWMA、例 10.1 10.1 p.526–530
10.3 DVEC、BEKK、例 10.2–10.3 10.2 p.530–536
10.4 相关系数与 Cholesky 重参数化 10.3 p.536–541
10.5 常相关与时变相关二元 GARCH、例 10.4–10.5 10.4.1–10.4.2 p.541–551
10.6 DCC 模型、例 10.6 10.4.3 p.551–557
10.7 高维波动率模型、例 10.7 10.5 p.557–563
10.8 因子–波动率模型、例 10.8 10.6 p.563–566
10.9 多资产 VaR 10.7 p.566–568
10.10 多元 t 分布、估计说明 10.8、附录 p.568–574
习题 第 10 章习题 p.574–575

(原书印刷页码约等于 PDF 页码减 20。)