量化交易中文教材

第 17c 章 波动率聚集、已实现波动率与 ARCH/GARCH

学习目标

读完本章,你应当能够:

  1. 描述波动率聚集现象,解释为什么收益几乎不可预测而收益的方差可以预测,并说出预测方差的三种用途。
  2. 计算 \(h\) 期已实现波动率,知道它为什么用均方而不是样本方差。
  3. 写出 ARCH(\(p\)) 与 GARCH(\(p,q\)) 的条件方差方程,理解 GARCH 与 ARCH 的关系类似于 ADL 与分布滞后模型。
  4. 推导 ARCH(1)、GARCH(1,1) 的无条件方差与平稳条件,用 \(\alpha_1+\phi_1\) 衡量波动的持续性,并计算冲击的半衰期。
  5. 读懂原书 Wilshire 5000 的 GARCH(1,1) 估计,并用 arch 包完成估计、多步方差预测和波动率目标仓位管理。

读前导读

这一章在解决什么问题

你在 FRM 或 CFA 风险管理部分大概见过 EWMA 和 GARCH(1,1) 的公式,也知道 RiskMetrics 用 \(\lambda=0.94\)。本章从计量的角度把它们讲清楚:为什么收益几乎不可预测,但收益的方差可以预测;ARCH 和 GARCH 各自假设了什么;长期方差、持续性、半衰期这些数是怎么从模型里推出来的;多步波动率预测为什么会「回到长期水平」。

一个贯穿全章的视角:GARCH 对方差做的事,和 AR 模型对均值做的事几乎一模一样。GARCH(1,1) 的条件方差满足一个 AR(1) 式的递推,于是 AR(1) 的所有结论——均值 \(\beta_0/(1-\beta_1)\)、\(h\) 步预测按 \(\beta_1^h\) 回归、半衰期 \(\ln0.5/\ln\beta_1\)——都可以直接搬过来,只是把 \(\beta_1\) 换成 \(\alpha_1+\phi_1\)。如果你已经读懂了第 15a 和 17a 章的 AR(1),本章的推导几乎没有新东西。

本章另一个实用要点是已实现波动率:有高频数据时,直接用日内收益的平方和度量波动,不需要任何模型。它与 GARCH 互补:一个是「测量」,一个是「预测」。

需要先想起来的数学

  • 迭代期望律:\(E(X)=E[E(X\mid\mathcal F)]\)。推导 ARCH/GARCH 的无条件方差时,先在给定过去的条件下算 \(E(u_t^2\mid\text{过去})=\sigma_t^2\),再对过去取期望。见 第 00 册第 07 章 概率中的分析工具。
  • 平稳序列的「不动点」技巧:若 \(E(Z_t)=a+bE(Z_{t-1})\) 且平稳(\(E(Z_t)=E(Z_{t-1})\)),则 \(E(Z)=a/(1-b)\)。AR(1) 均值、ARCH 方差、GARCH 方差都用这一招。
  • 几何级数:\(\sum_{j=0}^\infty\phi^j=1/(1-\phi)\),\(\sum_{j=0}^{h-1}c^j=(1-c^h)/(1-c)\)。用于 GARCH 的 ARCH(\(\infty\)) 表示和累计方差预测。见 第 00 册第 04 章 级数与收敛。
  • 正态分布的区间概率:\(\Pr(-c\le u\le c)=2\Phi(c/\sigma)-1\),\(\Phi\) 是标准正态累积分布函数。例:\(c/\sigma=1.96\) 时为 0.95。
  • 最大似然估计:选参数使「观测到这组数据的概率」最大。你只需知道 GARCH 无法用 OLS 估计(\(\sigma_t^2\) 不可观测),要用数值方法最大化对数似然,软件会完成。见 第 00 册第 05 章 多元微积分与优化 中无约束极值的部分。

怎么读这一章

核心必读:17.5.1(波动率聚集)、17.5.4(ARCH 及其无条件方差的推导)、17.5.5(GARCH、持续性与多步预测公式)、17.5.6(Wilshire 5000 的估计与解读)。17.5.3 已实现波动率很短,必读。17.5.2 和 17.5.7 是概念性的,快速浏览即可。ARCH 产生厚尾的峰度公式第一次可以只记结论。量化实战的波动率目标示例与你的日常工作最接近,建议对照代码读。


17.5.0 与第 06 册的分工

第 06 册(Tsay)第 03a、03b 章是波动率模型的主战场:ARCH 效应检验、GARCH 的各种扩展(EGARCH、GJR、GARCH-M)、随机波动率模型、已实现波动率的高频细节。原书 17.5 节篇幅不长,目的是在一本计量教材里让读者知道这类模型「是什么、为什么、怎么估计」。本章忠实讲解原书内容,补上几个基本推导(无条件方差、持续性、多步预测),并把重点放在计量视角:它与时间序列回归的关系、预测区间、估计和推断。更深入的模型变体请到第 06 册。


17.5 波动率聚集与自回归条件异方差

17.5.1 波动率聚集

许多金融和宏观变量的波动幅度随时间变化。原书图 17.2 是 Wilshire 5000 全市场指数 1990–2017 年的日收益率,范围大约在 \(-10\%\) 到 \(+11\%\) 之间:2001 年、2008 年波动很大,2004 年、2017 年很平静。序列有时平静、有时剧烈,而且平静期和剧烈期各自「成簇」出现,这叫波动率聚集(volatility clustering)。

聚集意味着:日收益的方差可以预测,尽管日收益本身几乎无法预测。今天波动大,明天大概率也大。这种「方差随时间变化且依赖过去」的现象,在计量术语里叫条件异方差(conditional heteroskedasticity):给定过去信息,误差的条件方差不是常数。

与第 5 章的异方差对比:那里的异方差是误差方差随回归元 \(X_i\) 变化(截面),处理办法是稳健标准误;这里的异方差是误差方差随时间和过去的冲击变化,我们不只是要修正标准误,而是要把方差本身当作预测对象。

白话解释:「收益不可预测、方差可预测」怎么能同时成立?收益不可预测是说 \(\text{corr}(r_t,r_{t-1})\approx0\),你无法从昨天的涨跌判断今天的方向。方差可预测是说 \(\text{corr}(r_t^2,r_{t-1}^2)>0\),昨天大涨或大跌,今天大概率也有大幅波动,只是方向不知道。两者并不矛盾:\(r_t=\sigma_tz_t\),\(z_t\) 独立且对称,\(\sigma_t\) 依赖过去。方向由 \(z_t\) 决定,不可预测;幅度由 \(\sigma_t\) 决定,可以预测。

「条件」和「无条件」的区别在本章非常关键:无条件方差是长期平均的波动水平,一个常数;条件方差 \(\sigma_t^2\) 是「站在昨天看今天」的波动,随时间变化。序列可以是平稳的(无条件方差恒定),同时具有条件异方差。

17.5.2 为什么要预测方差

原书列出三种用途:

  1. 风险度量。资产价格变化的方差衡量持有它的风险:方差越大,持有者在典型的一天可能赚得或亏得越多。厌恶风险的投资者在高波动期不愿持有。
  2. 衍生品定价。期权等衍生品的价值取决于标的资产未来的方差,期权交易者需要最好的未来波动率预测来决定买卖价格(第 08 册)。
  3. 改进预测区间。若预测误差方差恒定,可以用回归标准误或最终预测误差(第 15.5 节)构造区间;若方差随时间变化,区间宽度就应随之变化:冲击大时宽、平静时窄。如果方差变化缓慢,可以用伪样本外 MSFE 的估计(式 15.22);但要捕捉图 17.2 那样的快速变化,需要其他方法。

度量波动率聚集有两类方法:观测频率很高时可以直接测量(已实现波动率);频率较低时要建模估计(ARCH/GARCH)。

17.5.3 已实现波动率

用日数据估计某个月的波动率,自然想到算这个月日收益的样本方差。但高频资产收益的均值相对于其波动非常小(日收益均值在 0.03% 量级,标准差在 1% 量级),估计均值只会增加噪声。所以波动率不用样本方差,而用均方(mean square),即不减均值。

\(X_t\) 的 \(h\) 期已实现波动率(realized volatility)定义为 \(h\) 个连续期上的样本均方根:

\[RV_t^h=\sqrt{\frac1h\sum_{s=t-h+1}^{t}X_s^2}.\tag{17.26}\]

原书图 17.3 画出了 2015–2017 年 Wilshire 5000 日收益及 20 日已实现波动率的 \(\pm RV\) 带,它平滑地刻画了波动聚集。

17.5.4 ARCH 模型

考虑一个 ADL(1,1) 回归:

\[Y_t=\beta_0+\beta_1Y_{t-1}+\gamma_1X_{t-1}+u_t.\tag{17.27}\]
Robert Engle(1982)的自回归条件异方差(autoregressive conditional heteroskedasticity,ARCH)模型假设 \(u_t\) 服从均值为 0、方差为 \(\sigma_t^2\) 的正态分布,而 \(\sigma_t^2\) 取决于过去误差的平方。ARCH(\(p\)):
\[\sigma_t^2=\alpha_0+\alpha_1u_{t-1}^2+\alpha_2u_{t-2}^2+\cdots+\alpha_pu_{t-p}^2.\tag{17.28}\]

若系数为正,近期误差平方大时,模型预测当期误差的方差 \(\sigma_t^2\) 也大,这正是聚集。ARCH 可以套在任何条件均值为零的时间序列回归的误差上:高阶 ADL、AR、多预测变量回归都可以。

ARCH(1) 的无条件方差(原书习题 17.3、17.9)。设 \(\sigma_t^2=\alpha_0+\alpha_1u_{t-1}^2\),且 \(u_t\) 平稳。由迭代期望律,

\[\mathrm{var}(u_t)=E(u_t^2)=E[E(u_t^2\mid u_{t-1})]=E(\sigma_t^2)=\alpha_0+\alpha_1E(u_{t-1}^2).\]
平稳意味着 \(E(u_t^2)=E(u_{t-1}^2)\),解得
\[\mathrm{var}(u_t)=\frac{\alpha_0}{1-\alpha_1}.\]
方差为正且有限要求 \(\alpha_1<1\)。推广到 ARCH(\(p\)):\(\mathrm{var}(u_t)=\alpha_0/(1-\sum_{i=1}^p\alpha_i)\),平稳要求 \(\sum\alpha_i<1\)。

推导拆解:上面那串等式的每一步。

  1. \(\text{var}(u_t)=E(u_t^2)\):因为 \(E(u_t)=0\)。
  2. \(E(u_t^2)=E[E(u_t^2\mid u_{t-1})]\):迭代期望律,先固定过去,再对过去平均。
  3. \(E(u_t^2\mid u_{t-1})=\sigma_t^2\):模型假设,给定过去时 \(u_t\) 的方差就是 \(\sigma_t^2\),均值为 0,所以二阶矩等于方差。
  4. \(E(\sigma_t^2)=\alpha_0+\alpha_1E(u_{t-1}^2)\):代入 ARCH 方程,期望是线性的。
  5. 平稳:\(E(u_t^2)=E(u_{t-1}^2)=V\),于是 \(V=\alpha_0+\alpha_1V\),\(V=\alpha_0/(1-\alpha_1)\)。

另外,所有系数都要非负(\(\alpha_0>0\),\(\alpha_i\ge0\)),否则 \(\sigma_t^2\) 可能算出负数。这是估计时软件施加的约束。

数值例(习题 17.3):\(\sigma_t^2=1.0+0.5u_{t-1}^2\),无条件方差 \(=1/(1-0.5)=2\)。条件正态下:

  • 若 \(u_{t-1}=0.2\):\(\sigma_t^2=1.02\),\(\Pr(-3\le u_t\le3)=2\Phi(3/\sqrt{1.02})-1\approx0.997\);
  • 若 \(u_{t-1}=2.0\):\(\sigma_t^2=3.0\),\(\Pr(-3\le u_t\le3)=2\Phi(3/\sqrt3)-1\approx0.917\)。

同一个区间 \([-3,3]\),昨天冲击小时几乎必然覆盖今天的误差,昨天冲击大时有 8% 的概率落在外面。这就是「宽度随近期波动变化的预测区间」的含义。

ARCH 产生厚尾。即使条件分布是正态,无条件分布也比正态更厚尾:它是方差不同的正态分布的混合。对 ARCH(1) 可以算出,在四阶矩存在(\(3\alpha_1^2<1\))时,无条件峰度为 \(3(1-\alpha_1^2)/(1-3\alpha_1^2)>3\)。这解释了金融收益「尖峰厚尾」的一部分来源(第 06 册第 01、03a 章)。

金融直觉:「正态的混合会厚尾」可以这样理解:一半日子波动率 0.5%,一半日子 1.5%,每天都是正态。把所有日子放在一起看,大部分观测挤在 0 附近(来自平静日),又有一些极端值(来自剧烈日),中间不多不少的部分相对较少——这正是「尖峰厚尾」。用一个不变的 \(\sigma\) 计算 VaR,平静期高估风险、危机期严重低估风险。代入数字:\(\alpha_1=0.5\) 时峰度 \(=3\times0.75/0.25=9\),是正态的 3 倍。

17.5.5 GARCH 模型

ARCH 要刻画缓慢变化的方差,往往需要很多阶滞后。Tim Bollerslev(1986)的广义 ARCH(generalized ARCH,GARCH)让 \(\sigma_t^2\) 还依赖它自己的滞后。GARCH(\(p,q\)):

\[\sigma_t^2=\alpha_0+\alpha_1u_{t-1}^2+\cdots+\alpha_pu_{t-p}^2+\phi_1\sigma_{t-1}^2+\cdots+\phi_q\sigma_{t-q}^2.\tag{17.29}\]

原书的类比很好记:ARCH 像分布滞后模型,GARCH 像 ADL 模型。第 16 章说过,ADL 能比分布滞后模型更简洁地表示一长串动态乘数;同理,GARCH 通过加入 \(\sigma_t^2\) 的滞后,用很少的参数刻画缓慢变化的方差。事实上,把 GARCH(1,1) 反复代入可得

\[\sigma_t^2=\frac{\alpha_0}{1-\phi_1}+\alpha_1\sum_{j=0}^{\infty}\phi_1^ju_{t-1-j}^2,\]
即一个系数几何衰减的 ARCH(\(\infty\))。三个参数顶替了无穷多个。

推导拆解:反复代入的过程。

  1. \(\sigma_t^2=\alpha_0+\alpha_1u_{t-1}^2+\phi_1\sigma_{t-1}^2\)。
  2. 把 \(\sigma_{t-1}^2=\alpha_0+\alpha_1u_{t-2}^2+\phi_1\sigma_{t-2}^2\) 代入:\(\sigma_t^2=\alpha_0(1+\phi_1)+\alpha_1(u_{t-1}^2+\phi_1u_{t-2}^2)+\phi_1^2\sigma_{t-2}^2\)。
  3. 继续代入 \(k\) 次:常数项是 \(\alpha_0(1+\phi_1+\cdots+\phi_1^{k})\),冲击项是 \(\alpha_1\sum_{j=0}^{k}\phi_1^ju_{t-1-j}^2\),尾项 \(\phi_1^{k+1}\sigma_{t-k-1}^2\)。
  4. \(|\phi_1|<1\) 时尾项趋于 0,常数项的几何级数趋于 \(\alpha_0/(1-\phi_1)\)。

金融直觉:这就是 EWMA 的推广。RiskMetrics 的 EWMA 是 \(\sigma_t^2=(1-\lambda)u_{t-1}^2+\lambda\sigma_{t-1}^2\),即 GARCH(1,1) 取 \(\alpha_0=0\)、\(\alpha_1=1-\lambda\)、\(\phi_1=\lambda\),持续性 \(\alpha_1+\phi_1=1\)。所以 EWMA 是「没有长期均值、波动预测永不回归」的 GARCH。原书 Wilshire 的估计 \(\phi_1=0.908\)、\(\alpha_1=0.088\),与 \(\lambda=0.94\) 的 EWMA 相比,对新冲击反应更大、记忆更短,并且多了一个回归中枢。

GARCH(1,1) 的无条件方差与持续性(原书习题 17.9)。同样取期望:\(E(\sigma_t^2)=\alpha_0+\alpha_1E(u_{t-1}^2)+\phi_1E(\sigma_{t-1}^2)\),而 \(E(u_{t-1}^2)=E(\sigma_{t-1}^2)\),平稳时得

\[\mathrm{var}(u_t)=\bar\sigma^2=\frac{\alpha_0}{1-\alpha_1-\phi_1},\]
平稳要求 \(\alpha_1+\phi_1<1\)。

\(\alpha_1+\phi_1\) 是方差变动持续性的度量。把 \(\sigma_{t+h}^2\) 的预测写成偏离长期水平的形式:

\[E_t(\sigma_{t+h}^2)-\bar\sigma^2=(\alpha_1+\phi_1)^{h-1}(\sigma_{t+1}^2-\bar\sigma^2).\]
推导:\(E_t(u_{t+j}^2)=E_t(\sigma_{t+j}^2)\) 对 \(j\ge1\) 成立,所以 \(E_t(\sigma_{t+j+1}^2)=\alpha_0+(\alpha_1+\phi_1)E_t(\sigma_{t+j}^2)\),这是一个 AR(1) 形式的递推,与 17a 章 AR(1) 多步预测的结构完全一样。方差预测以速度 \(\alpha_1+\phi_1\) 几何地回到长期水平,半衰期为 \(\ln0.5/\ln(\alpha_1+\phi_1)\)。这就是 17a 章所说的「迭代多期预测」在方差上的应用。

推导拆解:把上面的递推补全成闭式。

  1. 为什么 \(E_t(u_{t+j}^2)=E_t(\sigma_{t+j}^2)\):迭代期望,\(E_t(u_{t+j}^2)=E_t[E_{t+j-1}(u_{t+j}^2)]=E_t(\sigma_{t+j}^2)\)。
  2. 递推:\(E_t\sigma_{t+j+1}^2=\alpha_0+\alpha_1E_tu_{t+j}^2+\phi_1E_t\sigma_{t+j}^2=\alpha_0+(\alpha_1+\phi_1)E_t\sigma_{t+j}^2\)。
  3. 两边减去 \(\bar\sigma^2\),利用 \(\alpha_0=\bar\sigma^2(1-\alpha_1-\phi_1)\):\(E_t\sigma_{t+j+1}^2-\bar\sigma^2=(\alpha_1+\phi_1)(E_t\sigma_{t+j}^2-\bar\sigma^2)\)。
  4. 从 \(j=1\)(\(\sigma_{t+1}^2\) 在 \(t\) 期已知)出发迭代 \(h-1\) 次,得到正文公式。

数值例:用原书估计,\(\bar\sigma^2=3.25\),设今天算出 \(\sigma_{t+1}^2=1.0\),持续性 0.996。20 天后的日方差预测 \(=3.25+0.996^{19}\times(1.0-3.25)\approx3.25-0.927\times2.25\approx1.16\),几乎没动。持续性越接近 1,预测越像「明天和今天一样」,这也是 EWMA(持续性恰为 1)在实务中够用的原因。

金融直觉:期权定价要的是从今天到到期日的累计方差(练习 7 的公式)。当前波动低于长期水平时,GARCH 预测的波动率期限结构向上倾斜(远期合约隐含波动更高);当前高于长期水平时向下倾斜。这与隐含波动率期限结构「平静时正斜率、危机时倒挂」的常见形态一致。

主要应用:度量和预测金融资产收益(特别是日收益等高频数据)的时变波动率。此时收益本身通常被视为不可预测,(17.27) 只保留截距。

估计与推断。ARCH/GARCH 用最大似然(附录 11.2)估计:条件正态下,第 \(t\) 期的对数似然贡献是 \(-\frac12[\ln2\pi+\ln\sigma_t^2+u_t^2/\sigma_t^2]\),\(\sigma_t^2\) 由 (17.29) 递推。

白话解释:这个对数似然在「奖励」什么?忽略常数,每期贡献是 \(-\frac12(\ln\sigma_t^2+u_t^2/\sigma_t^2)\)。对给定的 \(u_t^2\),把它看成 \(\sigma_t^2\) 的函数求最大:对 \(\sigma_t^2\) 求导得 \(-\frac12(1/\sigma_t^2-u_t^2/\sigma_t^4)\),令其为 0 得 \(\sigma_t^2=u_t^2\)。也就是说,似然函数希望模型给出的 \(\sigma_t^2\) 尽量贴近实际出现的 \(u_t^2\);预测太小(\(u_t^2/\sigma_t^2\) 很大)罚得很重,预测太大(\(\ln\sigma_t^2\) 偏大)罚得较轻。这正是风险管理需要的不对称:低估风险的代价大于高估。

17.5.6 应用:股价波动率

Wilshire 5000 日百分比收益 \(R_t\),样本为 1990 年 1 月 2 日至 2017 年 12 月 29 日的全部交易日,GARCH(1,1) 估计为

\[\hat R_t=\underset{(0.010)}{0.063},\tag{17.30}\]
\[\hat\sigma_t^2=\underset{(0.002)}{0.013}+\underset{(0.008)}{0.088}u_{t-1}^2+\underset{(0.009)}{0.908}\sigma_{t-1}^2.\tag{17.31}\]

解读:

  • 均值方程没有滞后预测变量,因为日收益本质上不可预测。日均收益 0.063%,约合年化 16%。
  • 两个 GARCH 系数在 5% 水平都显著。
  • 持续性 \(0.088+0.908=0.996\),原书说「约 0.99,很大」。条件方差变动高度持续:高波动期会持续很久,与图 17.2 中长时间的波动聚集一致。按 0.996 计算,冲击对方差预测的半衰期约 \(\ln0.5/\ln0.996\approx173\) 个交易日,接近 8 个月。
  • 隐含的长期日方差为 \(0.013/(1-0.996)=3.25\)。注意持续性接近 1 时,这个数对估计误差极其敏感:如果持续性是 0.99,它就变成 1.3。所以实务中常常不直接相信 GARCH 隐含的长期方差,而是用样本方差来「锚定」它(方差目标法,variance targeting)。

白话解释:3.25 的日方差对应日标准差约 1.8%、年化约 29%,明显高于美股全市场长期约 17%–19% 的实际年化波动。这说明这里的长期方差主要是估计不稳定的产物,而不是对现实的可靠刻画。原因就在分母:\(1-0.996=0.004\),持续性只要有 \(\pm0.003\) 的估计误差(约一个标准误的量级),分母就在 0.001 到 0.007 之间,长期方差可以从 1.9 变到 13。

用 (17.30) 的残差和 (17.31) 的系数可以递推出 \(\hat\sigma_t^2\)。原书图 17.3 中,2015–2017 年 GARCH(1,1) 的 \(\pm\hat\sigma_t\) 带与 20 日已实现波动率带在数量上相近。2015 年上半年带较窄,持有 Wilshire 5000 组合的风险低;下半年变宽,日波动增大。

17.5.7 两种方法比较

已实现波动率 ARCH/GARCH
建模假设 不需要 需要设定条件方差方程和分布
数据要求 需要高频数据才精确 日、月、季度数据都可用
能否预测 本身只是度量过去 直接给出多步方差预测
低频适用 差(窗口内观测太少) 好

原书的结论是:两者是互补的波动率聚集度量工具。实务中两者常结合使用:用已实现波动率作为「观测到的」波动率,在其上建立 HAR 等时间序列模型;或把已实现波动率作为 GARCH 方程的额外回归元(Realized GARCH)。这些扩展见第 06 册。

17.5.8 专栏:Engle 与 ARCH

2003 年诺贝尔经济学奖的另一半授予 Robert Engle。他受类似图 17.2 的波动聚集启发,追问这样的序列能否是平稳的,能否建模解释和预测时变波动,由此提出了 ARCH。ARCH 及其扩展特别适合资产收益波动,其波动率预测用于衍生品定价和评估持有金融资产的时变风险。如今它是金融计量的核心,是波动率建模的主力工具。


量化实战

1. 本章内容在量化中的用途

风险目标与仓位管理(vol targeting)。 把组合的预测年化波动控制在目标水平:仓位 \(w_t=\sigma^{\text{target}}/\hat\sigma_{t|t-1}\)。\(\hat\sigma\) 可以来自 20 日已实现波动率、EWMA 或 GARCH 的一步预测。由于波动持续,这样做能显著稳定组合的实际波动,许多研究还发现它能改善风险调整收益(波动高时收益未必同比例提高)。

VaR/ES 与风险预算。 条件 VaR 的最简形式是 \(\mathrm{VaR}_{t+1}=-(\mu+z_\alpha\hat\sigma_{t+1|t})\),\(\hat\sigma\) 来自 GARCH;用 t 分布的分位数代替正态可以部分修正厚尾。风险预算、风险平价按波动倒数分配权重时,也需要波动率预测。第 06 册第 07a 章系统讲 VaR。

期权与波动率交易。 GARCH 的多步方差预测给出「期限结构」:未来 \(h\) 天的累计方差 \(\sum_{j=1}^hE_t\sigma_{t+j}^2\),可与期权隐含波动率比较,构造波动率风险溢价信号。

动态止损与持仓周期。 止损幅度、目标价位按 \(\hat\sigma_t\) 缩放,避免平静期止损太宽、剧烈期止损太窄。

持续性的含义。 \(\alpha_1+\phi_1\approx0.99\) 意味着高波动会延续数月,这是波动率择时、风险平价调仓频率选择的依据。但也要记住:持续性接近 1 时,长期方差的估计非常不稳定;有结构断点(如 2008 年前后)的样本还会让持续性被高估。

已实现波动率的工程细节。 均方而非样本方差、选择采样频率(5 分钟常见)、处理隔夜收益和微观结构噪声。日内策略常用一天内前几小时的 RV 预测剩余时段的波动。

2. 示例:GARCH(1,1) 估计、多步方差预测与波动率目标

以原书 (17.30)(17.31) 的估计值作为「真值」,用标准化 t(7) 新息模拟 7000 个交易日(约 28 年),再用 arch 包估计。

import numpy as np
import pandas as pd
from arch import arch_model

rng = np.random.default_rng(2017)
T = 7000                                   # 约 28 年日数据
omega, a1, b1, mu = 0.013, 0.088, 0.908, 0.063   # 取原书 (17.30)(17.31) 的估计值作为"真值"
nu = 7                                     # 标准化 t 新息,模拟厚尾
z = rng.standard_t(nu, T) / np.sqrt(nu / (nu - 2))
r, s2 = np.empty(T), np.empty(T)
s2[0] = omega / (1 - a1 - b1)
for t in range(T):
    if t > 0:
        s2[t] = omega + a1 * (r[t-1] - mu) ** 2 + b1 * s2[t-1]
    r[t] = mu + np.sqrt(s2[t]) * z[t]
r = pd.Series(r)

res = arch_model(r, mean="Constant", vol="GARCH", p=1, q=1, dist="t").fit(disp="off")
print(res.params.round(3))
pers = res.params["alpha[1]"] + res.params["beta[1]"]
print(f"持续性 alpha+beta = {pers:.3f}; 冲击半衰期 = {np.log(0.5)/np.log(pers):.0f} 天")
print(f"无条件日方差 = omega/(1-alpha-beta) = {res.params['omega']/(1-pers):.3f}"
      f"(样本方差 {r.var():.3f})")

# 20 日已实现波动率 vs GARCH 条件波动率
rv20 = np.sqrt((r ** 2).rolling(20).mean())
cv = res.conditional_volatility
print(f"RV20 与 GARCH sigma_t 的相关系数: {np.corrcoef(rv20[20:], cv[20:])[0,1]:.3f}")

# 多步方差预测:向无条件方差回归
f = res.forecast(horizon=250, reindex=False).variance.values[0]
print("未来 1/5/20/60/250 日的日方差预测:", f[[0, 4, 19, 59, 249]].round(3))

# 波动率目标:年化目标 10%,仓位 = 目标 / 预测年化波动
target = 10.0
sig_ann = np.sqrt(252) * cv.shift(1)           # 只用 t-1 的信息
w = (target / sig_ann).clip(upper=2.0)
strat = w * r
print(f"原始收益年化波动 {np.sqrt(252)*r.std():.1f}%,波动目标后 {np.sqrt(252)*strat.std():.1f}%")
roll = lambda x: np.sqrt(252) * x.rolling(250).std()
print(f"滚动一年波动的离散度(std):原始 {roll(r).std():.2f},目标后 {roll(strat).std():.2f}")

输出:

mu          0.070
omega       0.015
alpha[1]    0.079
beta[1]     0.913
nu          7.110
Name: params, dtype: float64
持续性 alpha+beta = 0.992; 冲击半衰期 = 84 天
无条件日方差 = omega/(1-alpha-beta) = 1.835(样本方差 1.788)
RV20 与 GARCH sigma_t 的相关系数: 0.981
未来 1/5/20/60/250 日的日方差预测: [1.141 1.163 1.242 1.409 1.747]
原始收益年化波动 21.2%,波动目标后 10.1%
滚动一年波动的离散度(std):原始 7.90,目标后 0.65

解读:

  • 7000 个观测下,MLE 很好地恢复了参数:\(\hat\alpha_1=0.079\)、\(\hat\phi_1=0.913\)(真值 0.088、0.908),t 分布自由度 7.1(真值 7)。
  • 持续性估计 0.992,真值 0.996,看似很接近,半衰期却从 173 天变成 84 天。这印证了正文的提醒:持续性接近 1 时,由它推出的量(半衰期、长期方差)对估计误差非常敏感。
  • 20 日已实现波动率与 GARCH 条件波动率的相关系数 0.98,对应原书图 17.3「两条带数量上相近」。
  • 多步方差预测从当前的 1.14 逐步爬升到 250 天后的 1.75,向长期方差 1.84 回归,这就是 \(E_t\sigma_{t+h}^2-\bar\sigma^2=(\alpha_1+\phi_1)^{h-1}(\sigma_{t+1}^2-\bar\sigma^2)\)。
  • 波动率目标后,年化波动精确落在 10% 附近,滚动一年波动的离散度从 7.9 个百分点降到 0.65。注意仓位只用 \(t-1\) 的 \(\hat\sigma\)(shift(1)),避免前视偏差;并设置了 2 倍杠杆上限。

本章小结

金融收益的波动率随时间变化并成簇出现,收益本身难以预测,收益的方差却可以预测,这对风险度量、衍生品定价和预测区间都很重要。高频数据下可直接用已实现波动率 \(RV_t^h=\sqrt{\frac1h\sum X_s^2}\) 度量,低频数据或需要预测时用 ARCH/GARCH 建模。ARCH 让条件方差依赖过去误差平方,GARCH 再加入条件方差自身的滞后,以少量参数刻画缓慢变化的方差,两者都用最大似然估计。GARCH(1,1) 的无条件方差为 \(\alpha_0/(1-\alpha_1-\phi_1)\),\(\alpha_1+\phi_1\) 衡量持续性,股市日数据约 0.99,波动冲击会持续数月;多步方差预测以该速度几何回归长期水平。已实现波动率无需模型假设,GARCH 能预测并适合低频数据,两者互补。

概念 公式 / 要点
已实现波动率 \(RV_t^h=\sqrt{\frac1h\sum_{s=t-h+1}^tX_s^2}\)(均方,不减均值)
ARCH(\(p\)) \(\sigma_t^2=\alpha_0+\sum_{i=1}^p\alpha_iu_{t-i}^2\)
GARCH(\(p,q\)) \(\sigma_t^2=\alpha_0+\sum\alpha_iu_{t-i}^2+\sum\phi_j\sigma_{t-j}^2\)
ARCH(1) 无条件方差 \(\alpha_0/(1-\alpha_1)\),要求 \(\alpha_1<1\)
GARCH(1,1) 无条件方差 \(\alpha_0/(1-\alpha_1-\phi_1)\),要求 \(\alpha_1+\phi_1<1\)
多步方差预测 \(E_t\sigma_{t+h}^2-\bar\sigma^2=(\alpha_1+\phi_1)^{h-1}(\sigma_{t+1}^2-\bar\sigma^2)\)
半衰期 \(\ln0.5/\ln(\alpha_1+\phi_1)\)
原书估计 Wilshire 5000:\(0.013+0.088u_{t-1}^2+0.908\sigma_{t-1}^2\),持续性约 0.99
估计 MLE;条件 t 分布或准 MLE + 稳健标准误

练习

基础

  1. 什么是波动率聚集?描述两个度量或建模它的方法。(原书复习题 17.4) 答案要点:高、低波动期各自成簇;已实现波动率、ARCH/GARCH。
  2. (原书习题 17.3)\(\sigma_t^2=1.0+0.5u_{t-1}^2\)。(a) 用迭代期望律证明 \(u_t\) 的无条件方差为 2。(b) 条件正态下,分别求 \(u_{t-1}=0.2\) 和 \(u_{t-1}=2.0\) 时的 \(\Pr(-3\le u_t\le3)\)。 答案要点:(b) 约 0.997 和 0.917。
  3. 为什么已实现波动率用均方而不是样本方差?如果用月度数据计算 12 个月已实现波动率,这个理由还成立吗? 提示:日收益均值相对波动很小;月度收益均值相对波动不再可忽略,减不减均值会有可见差别,而且 12 个观测太少。
  4. 用原书 (17.31),若昨天的残差 \(u_{t-1}=3\)(%)、昨天的条件方差 \(\sigma_{t-1}^2=1.5\),今天的条件方差和条件标准差各是多少? 答案要点:\(0.013+0.088\times9+0.908\times1.5=2.167\),标准差约 1.47%。
  5. GARCH(1,1) 持续性为 0.98,冲击对方差预测的半衰期是多少个交易日? 答案要点:\(\ln0.5/\ln0.98\approx34\) 天。

进阶

  1. (原书习题 17.9)(a) 证明平稳 ARCH(1) 有 \(\mathrm{var}(u_t)=\alpha_0/(1-\alpha_1)\);(b) 推广到 ARCH(\(p\)),并证明 \(\sum\alpha_i<1\);(c) 推广到 GARCH(1,1),证明 \(\alpha_1+\phi_1<1\)。 提示:都用 \(E(u_t^2)=E(\sigma_t^2)\) 和平稳性;方差为正有限推出约束。
  2. 推导 GARCH(1,1) 的多步预测公式 \(E_t\sigma_{t+h}^2=\bar\sigma^2+(\alpha_1+\phi_1)^{h-1}(\sigma_{t+1}^2-\bar\sigma^2)\),并据此写出未来 \(h\) 天累计方差的闭式表达。 提示:几何级数求和:\(h\bar\sigma^2+(\sigma_{t+1}^2-\bar\sigma^2)\frac{1-(\alpha_1+\phi_1)^h}{1-\alpha_1-\phi_1}\)。
  3. 证明 GARCH(1,1) 可以写成 \(u_t^2\) 的 ARMA(1,1):令 \(\eta_t=u_t^2-\sigma_t^2\),则 \(u_t^2=\alpha_0+(\alpha_1+\phi_1)u_{t-1}^2+\eta_t-\phi_1\eta_{t-1}\)。这对理解 \(u_t^2\) 的自相关有什么帮助? 提示:\(\eta_t\) 是鞅差分;\(u_t^2\) 的自相关以 \(\alpha_1+\phi_1\) 的速度衰减。
  4. 修改示例:(a) 用正态分布而非 t 分布估计(dist="normal"),比较参数和对数似然;(b) 用前 5000 天估计、后 2000 天做一步方差预测,比较 GARCH、20 日 RV 与 EWMA(\(\lambda=0.94\))三种预测对 \(r_{t+1}^2\) 的均方误差。 提示:(a) 参数相近(准 MLE 一致),似然更差;(b) 三者的均方误差相差很小(GARCH 略优),因为 \(r_{t+1}^2\) 本身是方差的极其嘈杂的代理,单期平方收益的噪声主导了误差;比较波动率预测时应使用对噪声稳健的损失函数(如 QLIKE)或用已实现方差作代理。
  5. (原书实证题 E17.2 的思路)对 GDP 增长率建 AR(2) + GARCH(1,1) 误差模型,画 \(\pm\hat\sigma_t\) 带,看 1980 年代中期「大缓和」(Great Moderation)是否可见。如果你没有数据,用模拟:前半段 \(\alpha_0\) 较大、后半段较小,看 GARCH 带能否捕捉,持续性估计会怎样? 提示:方差的结构断点会让单一 GARCH 的持续性被高估。

原书推荐习题:17.3、17.9(ARCH/GARCH 无条件方差与平稳条件);复习题 17.4;实证题 E17.2(AR + GARCH 实操、观察波动率体制变化)。


原书对照

本章内容 原书章节 PDF 页码
波动率聚集、已实现波动率、ARCH、GARCH、估计与推断(式 17.26–17.29,图 17.2) 17.5 p.668–672
应用:Wilshire 5000 股价波动率(式 17.30–17.31,图 17.3) 17.5 p.672–673
专栏:Engle 与 Granger 17.6 后 p.681–682
习题 17.3、17.9,复习题 17.4,实证题 E17.2 第 17 章末 p.684–688
多步方差预测、ARCH 峰度、方差目标法、波动率目标(本教材补充) — —

注:原书页码 = PDF 页码 − 1。