第 07b 章 极值理论与尾部风险
本章对应 Tsay 原书第 7 章后半(7.5–7.8 节)。第 07a 章的方法要么依赖分布假设(正态、t),要么受限于历史样本(经验分位数)。极值理论(EVT)只对分布的尾部形状做假设,用来外推比样本中更极端的分位数。本章依次讲传统 EVT(分块极大值 + GEV)、超阈值方法(POT + GPD + 二维泊松过程)、带解释变量的条件 EVT,以及刻画极值聚集的极值指数。
学习目标
- 理解 Fisher–Tippett–Gnedenko 极值定理:规范化最大值的极限只可能是 GEV 分布;知道 Gumbel、Fréchet、Weibull 三类与分布尾部的对应关系,以及金融收益属于 Fréchet 族。
- 会用分块极大值的极大似然、Hill 估计、Pickands 估计估计形状参数(尾指数),并理解子期长度 \(n\) 和 Hill 中 \(q\) 的选择问题。
- 掌握传统 EVT 的 VaR 公式 (7.28)、α 次根时间法则和回报水平。
- 掌握 POT 方法:GPD 的阈值稳定性、平均超出图选阈值、GPD 下 VaR 与 ES 的闭式公式、二维泊松过程的似然,以及如何引入解释变量。
- 理解极值指数 \(\theta\) 的含义(\(1/\theta\) 为平均簇大小),会用块方法和游程方法估计它,知道忽略它会低估 VaR。
- 能比较各种 VaR 方法在 IBM 数据上的结果,理解"没有唯一正确的 VaR"。
读前导读
这一章在解决什么问题
第 07a 章留下了一个两难:参数法(正态、t)对尾部形状的假设可能是错的;历史分位数不做假设,但在 1% 以下的尾部数据太少、估计很不稳定,而且永远不会给出比历史最大损失更大的数。极值理论(EVT)只对尾部的形状做一个很弱的假设,然后用尾部的少量数据去外推更极端的分位数。
用你熟悉的东西类比:中心极限定理说,不管原始分布是什么,样本均值标准化后都趋于正态。极值定理是它的「尾部版本」:不管原始分布是什么,样本最大值标准化后只可能趋于一个三参数分布族(GEV)。所以我们不需要知道收益的完整分布,只需估计 GEV 的三个参数,其中最关键的是形状参数 \(\xi\),它决定尾部有多「厚」。
本章有两条路线。传统路线是「分块取最大值」:比如把日收益按月分块,每月取最大日跌幅,再对这些月度最大值拟合 GEV。新路线是「超阈值」(POT):只看超过某个高阈值(如 2.5%)的损失,对超出部分拟合广义帕累托分布(GPD)。后者用数据更充分、对参数选择不敏感,而且可以让参数随波动率等变量变化,是业界的主流做法(例如 McNeil–Frey 的 GARCH–EVT)。最后的极值指数处理「极端损失扎堆出现」的问题,它与第 07a 章回测中的「突破成簇」是同一现象。
对于 CFA 背景的读者,本章最有用的直觉是:正态分布的尾部按 \(e^{-x^2/2}\) 衰减(极快),金融收益的尾部按幂律 \(x^{-1/\xi}\) 衰减(慢得多)。损失翻倍时,正态下的概率会下降成千上万倍,幂律下只下降 \(2^{1/\xi}\) 倍(\(\xi=0.3\) 时约 10 倍)。这就是「十个标准差事件」在正态世界里不可能、在真实市场里却每隔几年就出现的原因。
需要先想起来的数学
1. 独立事件的概率相乘。 「\(n\) 个独立收益都不超过 \(x\)」的概率是 \([F(x)]^n\)。例:每日损失不超过 3% 的概率为 0.99,则一年 252 天都不超过 3% 的概率约 \(0.99^{252}\approx0.08\)。
2. 极限 \((1-\tau/n)^n\to e^{-\tau}\)。 这是连续复利公式 \((1+r/n)^n\to e^r\) 的同类。还有一阶近似 \(\ln(1-x)\approx-x\)(\(x\) 很小时),如 \(\ln0.99\approx-0.01005\)。见 第 00 册第 04 章 级数与收敛(\(e\) 与指数对数部分)和 第 00 册第 01 章 函数极限与连续。
3. 幂函数与对数。 \(x^{-1/\xi}\) 取对数得 \(-\frac1\xi\ln x\),在双对数坐标下是直线,斜率 \(-1/\xi\)。Hill 估计就是在估计这条直线的斜率。\(a^{-\xi}\) 中负指数表示倒数:\(0.2^{-0.2}=1/0.2^{0.2}\approx1.38\)。
4. 次序统计量。 把样本从小到大排列,\(r_{(1)}\) 是最小值,\(r_{(T)}\) 是最大值,\(r_{(T-q)}\) 是第 \(q+1\) 大的值。
5. 泊松过程与指数分布。 稀有事件按速率 \(\lambda\) 随机发生时,次数服从泊松分布,相邻事件的间隔服从均值 \(1/\lambda\) 的指数分布。这是 7.8.4 节和 7.8.7 节诊断的基础。见 第 00 册第 07 章 概率中的分析工具。
6. 上极限 \(\limsup\) 与 \([x]_+\) 记号。 \(\limsup\) 是「数列在尾部能反复接近的最大值」,这里只用来说明某个量有界;\([x]_+=\max(x,0)\),即「负数取零」,和期权收益 \((S-K)_+\) 的记号相同。见 第 00 册第 08 章 读懂数学证明与符号。
怎么读这一章
核心必读:7.6.1(极值定理和 \(\xi\) 的含义)、7.6.2 的 Hill 估计、7.7.1 的 VaR 公式推导思路、7.7.2 方法比较的结论、7.8.1–7.8.3(POT、GPD、平均超出图)、7.8.5 的 GPD VaR 与 ES 公式(实务中最常用)、7.9.4 的结论(忽略聚集会低估 VaR)。可以第一次跳过或只看结论的:7.6.2 的 Gumbel 回归法和 Pickands 估计、7.8.4 二维泊松过程的似然细节、7.8.6–7.8.8 条件 EVT 的完整实证(理解「参数随波动率变化」的思路即可)、7.9.2 的 \(D(u_n)\) 条件和 Leadbetter 定理的正式陈述。建议顺序:7.6.1 → 7.6.2 → 7.7 → 7.8.1–7.8.3 → 7.8.5 → 7.9 → 7.8.4 → 7.8.6–7.8.8。
7.6 极值理论回顾
7.6.1 最大值的分布
设 \(r_1,\dots,r_n\) 独立同分布,CDF 为 \(F\)。由于 VaR 关心损失,沿用文献的习惯研究最大值 \(r_{(n)}=\max_j r_j\);最小值可通过变号得到:\(r_{(1)}=-\max_j(-r_j)\)。所以多头(怕跌)用负收益做极值分析。
独立性给出最大值的 CDF:
问题有二:\(F\) 未知;而且 \(n\to\infty\) 时 \([F(x)]^n\) 退化(对 \(x\) 小于右端点趋于 0)。
白话解释:「退化」的意思是极限分布变成一个点,没有信息。固定一个水平 \(x\)(如日跌 5%),只要单日超过它的概率大于零,比如 \(F(x)=0.999\),那么天数足够多时「所有日子都没超过 5%」的概率 \(0.999^n\) 终将趋于 0:\(n=1000\) 时约 0.37,\(n=10000\) 时约 0.00005。也就是说,样本越长,最大值会越来越大,固定的 \(x\) 终究会被超过。所以必须让比较的尺子随 \(n\) 移动(减去 \(\beta_n\))和伸缩(除以 \(\alpha_n\)),就像中心极限定理里要把样本和减去 \(n\mu\)、除以 \(\sqrt n\sigma\)。正如中心极限定理需要把样本均值中心化、标准化,极值理论寻找位置序列 \(\{\beta_n\}\) 和尺度序列 \(\{\alpha_n>0\}\),使 \((r_{(n)}-\beta_n)/\alpha_n\) 收敛到一个非退化分布。
极值定理:若该极限存在,它只能是广义极值分布(generalized extreme value,GEV,Jenkinson 1955)
\(\xi\ne0\) 时要求 \(1+\xi x>0\)。\(\xi\) 称形状参数(shape parameter),控制尾部行为;\(1/\xi\) 称尾指数(tail index)。(原书此处把"规范化最大值"误写为"最小值"。)GEV 统一了 Gnedenko (1943) 的三类极限分布:
| 类型 | \(\xi\) | 名称 | 定义域 | 对应的 \(F\) 的尾部 | 例子 |
|---|---|---|---|---|---|
| I | \(=0\) | Gumbel | \((-\infty,\infty)\) | 指数式衰减 | 正态、对数正态 |
| II | \(>0\) | Fréchet | \(x>-1/\xi\) | 幂律衰减(厚尾) | Student-t、稳定分布 |
| III | \(<0\) | Weibull | \(x<-1/\xi\) | 有限右端点 | 均匀、Beta |
风险管理主要关心 Fréchet 族。若 \(F\) 的尾部像 \(1-F(x)\sim cx^{-1/\xi}\),则 \(\xi\) 就是尾部幂律指数的倒数;例如自由度 \(v\) 的 Student-t 有 \(\xi=1/v\)。\(\xi\) 越大尾部越厚,\(\xi\ge1/k\) 时 \(k\) 阶矩不存在。
白话解释:「\(1-F(x)\sim cx^{-1/\xi}\)」中的 \(\sim\) 读作「当 \(x\) 很大时两边之比趋于 1」。它说的是:超过 \(x\) 的概率随 \(x\) 按幂函数下降。数值对比:设 \(\xi=0.3\),则 \(1/\xi\approx3.33\),损失阈值从 5% 提高到 10%,超越概率下降 \(2^{3.33}\approx10\) 倍;从 10% 到 20%,再下降 10 倍。正态分布从 5 个标准差到 10 个标准差,超越概率从约 \(3\times10^{-7}\) 降到约 \(8\times10^{-24}\),下降了十几个数量级。 为什么 \(\xi\ge1/k\) 时 \(k\) 阶矩不存在?\(E|X|^k\) 的尾部积分大致是 \(\int^\infty x^k\cdot x^{-1/\xi-1}dx\),被积函数的幂次为 \(k-1/\xi-1\),只有当它小于 \(-1\),即 \(k<1/\xi\) 时积分才收敛(这与 \(\int^\infty x^{-s}dx\) 在 \(s>1\) 时收敛是同一结论)。IBM 的 \(\xi\approx0.3\) 意味着 \(1/\xi\approx3.3\),三阶矩存在、四阶矩不存在,所以样本峰度不会稳定下来,用它衡量尾部风险并不可靠。
GEV 密度为
两个重要含义:
- 极限分布由 \(F\) 的尾部行为决定,而不是 \(F\) 的具体形式,所以 EVT 适用于很广的收益分布;但规范化常数 \(\alpha_n,\beta_n\) 依赖 \(F\)。
- 形状参数 \(\xi\) 在时间聚合下不变(Feller 1971):日收益与周收益的尾指数相同。这为多期 VaR 提供了便利(7.7.3 节)。
相依数据:Berman (1964) 证明,平稳正态序列只要 \(\sum\rho_i^2<\infty\),同样的极限分布成立。更一般的严平稳序列见 7.9 节的极值指数。
7.6.2 分块极大值与估计方法
一个样本只有一个最大值,无法估计三个参数。做法是把 \(T=ng\) 个收益分成 \(g\) 个不重叠的子期,每期 \(n\) 个观测(日数据 \(n=21\) 约一个月,\(n=63\) 约一个季度),取各子期最大值
\(n\) 足够大时,\(\{r_{n,i}\}\) 可看作来自 GEV(位置 \(\beta_n\)、尺度 \(\alpha_n\)、形状 \(\xi_n\))的 \(g\) 个观测。\(T\) 不是 \(n\) 的倍数时,删掉开头几个观测或让最后一块短一些。
参数方法一:极大似然。 \(r_{n,i}\) 的密度为
在独立性下连乘得似然,数值最大化。适当条件下 MLE 渐近无偏、正态、有效(Embrechts et al. 1997;Coles 2001)。
参数方法二:回归法(Gumbel 1958)。 对 GEV 样本的次序统计量,\(E\{F_*[r_{n(i)}]\}=\frac{i}{g+1}\)。用观测值代替期望并取两次对数,
用非线性最小二乘估计。它相合但不如 MLE 有效,原书使用 MLE。
非参数方法:直接作用于全部收益的次序统计量 \(r_{(1)}\le\dots\le r_{(T)}\),不需要分块。给定正整数 \(q\):
-
Pickands 估计:
\[\hat\xi_p(q)=\frac{1}{\ln2}\ln\Big(\frac{r_{(T-q+1)}-r_{(T-2q+1)}}{r_{(T-2q+1)}-r_{(T-4q+1)}}\Big),\quad q\le T/4,\tag{7.24}\]适用于任何 \(\xi\);\(\sqrt q[\hat\xi_p(q)-\xi]\) 渐近正态(Dekkers & de Haan 1989)。
-
Hill 估计:
\[\hat\xi_h(q)=\frac1q\sum_{i=1}^{q}\big[\ln r_{(T-i+1)}-\ln r_{(T-q)}\big],\tag{7.25}\]即最大的 \(q\) 个观测相对第 \(q+1\) 大观测的平均对数超出。只适用于 Fréchet 族(\(\xi>0\)),但此时比 Pickands 更有效;\(\sqrt q[\hat\xi_h(q)-\xi]\to N(0,\xi^2)\),所以标准误约为 \(\hat\xi_h/\sqrt q\)(Goldie & Smith 1987)。
直观理解:若尾部服从 Pareto 分布 \(P(X>x)=(x/x_0)^{-1/\xi}\),则 \(\ln(X/x_0)\) 服从均值为 \(\xi\) 的指数分布,Hill 估计就是这个均值的 MLE。
推导拆解:令 \(Y=\ln(X/x_0)\)。对 \(y>0\),\(P(Y>y)=P(X>x_0e^y)=(e^y)^{-1/\xi}=e^{-y/\xi}\),这正是均值 \(\xi\) 的指数分布的生存函数。指数分布均值的 MLE 是样本均值,所以「把最大的 \(q\) 个观测除以门槛值 \(r_{(T-q)}\)、取对数、求平均」就得到 \(\hat\xi\)。标准误 \(\hat\xi/\sqrt q\) 也来自指数分布的性质:指数分布标准差等于均值,\(q\) 个平均后标准误为 \(\xi/\sqrt q\)。数值例子:若最大的 3 个负收益为 12%、8%、6%,第 4 大为 5%,则 \(\hat\xi=\frac13[\ln2.4+\ln1.6+\ln1.2]=\frac13(0.875+0.470+0.182)\approx0.51\)(只为演示算法,\(q=3\) 太小,实际不可用)。
\(q\) 的选择没有共识。\(q\) 太小方差大,\(q\) 太大会把非尾部的观测混进来造成偏差。实践中画 \(\hat\xi_h(q)\) 对 \(q\) 的 Hill 图,选估计平稳的区域。
7.6.3 应用:IBM 日收益
IBM 日对数收益(%),1962-07-03 至 1998-12-31,\(T=9190\)。1987 年 10 月股灾在子期极值图中非常醒目,此外子期极值在 0.5%–13% 之间。
Hill 估计(括号为标准误):
| \(q\) | 190 | 200 | 210 |
|---|---|---|---|
| 右尾 \(r_t\) | 0.300 (0.022) | 0.299 (0.021) | 0.305 (0.021) |
| 左尾 \(-r_t\) | 0.290 (0.021) | 0.292 (0.021) | 0.289 (0.020) |
除 \(q\) 很小外估计稳定,约为 0.30,显著异于 0:IBM 日收益属于 Fréchet 族,正态假设被拒绝,与 Longin (1996) 对美国股指的结论一致。\(\xi\approx0.3\) 意味着尾部像自由度约 3.3 的 t 分布,四阶矩可能不存在。
GEV 极大似然(括号为标准误):
| 子期长度 \(n\) | \(g\) | 尺度 \(\alpha_n\) | 位置 \(\beta_n\) | 形状 \(\xi_n\) |
|---|---|---|---|---|
| 负收益(左尾) | ||||
| 21(月) | 437 | 0.823 (0.035) | 1.902 (0.044) | 0.197 (0.036) |
| 63(季) | 145 | 0.945 (0.077) | 2.583 (0.090) | 0.335 (0.076) |
| 126(半年) | 72 | 1.147 (0.131) | 3.141 (0.153) | 0.330 (0.101) |
| 252(年) | 36 | 1.542 (0.242) | 3.761 (0.285) | 0.322 (0.127) |
| 正收益(右尾) | ||||
| 21 | 437 | 0.931 (0.039) | 2.184 (0.050) | 0.168 (0.036) |
| 63 | 145 | 1.157 (0.087) | 3.012 (0.108) | 0.217 (0.066) |
| 126 | 72 | 1.292 (0.158) | 3.471 (0.181) | 0.349 (0.130) |
| 252 | 36 | 1.624 (0.271) | 4.475 (0.325) | 0.264 (0.186) |
观察:位置和尺度随 \(n\) 增大(子期越长,极值越大);负收益的形状参数在 \(n\ge63\) 时稳定在 0.33 左右;正收益的形状参数较小、不太稳定;\(n=252\) 时 \(g\) 只有 36,估计变异很大。
拟合诊断:定义残差
由概率积分变换,模型正确时 \(w_i=-\ln F_*(r_{n,i})\) 应为 iid 标准指数分布,可画 QQ 图检查。原书 \(n=21\) 的诊断图显示拟合合理。
7.7 基于传统极值理论的 VaR
7.7.1 从子期最大值回到日收益
第一步:对小的上尾概率 \(p^*\),子期最大值在 GEV 下的 \((1-p^*)\) 分位 \(r_n^*\) 满足 \(1-p^*=\exp\{-[1+\xi_n(r_n^*-\beta_n)/\alpha_n]^{-1/\xi_n}\}\),解得
第二步:由 (7.15),\(1-p^*=P(r_{n,i}\le r_n^*)=[P(r_t\le r_n^*)]^n\)。要让日收益超过 \(r_n^*\) 的概率为 \(p\),即 \(P(r_t\le r_n^*)=1-p\),需 \(1-p^*=(1-p)^n\),即 \(-\ln(1-p^*)=-n\ln(1-p)\)。代回得
步骤:选 \(n\),取子期最大值;MLE 估计三个参数;诊断;用 (7.28) 算 VaR。多头用负收益。
推导拆解: 第一步(解 (7.26)):对 \(1-p^*=\exp\{-[1+\xi_n(r_n^*-\beta_n)/\alpha_n]^{-1/\xi_n}\}\) 两边取对数得 \(-\ln(1-p^*)=[\cdots]^{-1/\xi_n}\);两边取 \(-\xi_n\) 次幂得 \([-\ln(1-p^*)]^{-\xi_n}=1+\xi_n(r_n^*-\beta_n)/\alpha_n\);再解出 \(r_n^*\),即 (7.26)。 第二步(从月度极值换回日收益):关键关系 \(1-p^*=(1-p)^n\) 来自 (7.15):「子期内 \(n\) 天都不超过 \(r_n^*\)」的概率是单日概率的 \(n\) 次方。(下文量化实战中提到的「(7.27) 的独立性近似」应指这一关系;本章正文在 (7.26) 与 (7.28) 之间没有给出 (7.27) 的编号。) 第三步:取对数 \(\ln(1-p^*)=n\ln(1-p)\),代入 (7.26) 即得 (7.28)。 数值核对例 7.6:\(-63\ln0.99=0.6332\),\(0.6332^{-0.335}=1.1655\),\(\text{VaR}=2.583-2.821\times(1-1.1655)=3.050\%\)。
白话解释:这个推导的妙处在于「用月度最大值的分布反推日分布的尾部」。月度最大值样本比日度尾部样本「更纯」,全都来自尾部;但第二步假设一个月内的日收益相互独立,波动聚集时这个假设不成立,后面 7.9 节就是来修补它的。
例 7.6(IBM,1,000 万美元多头):\(n=63\),\(\hat\alpha_n=0.945\),\(\hat\beta_n=2.583\),\(\hat\xi_n=0.335\),\(p=0.01\):
即 304,969 美元;\(p=0.05\) 时为 166,641 美元。\(n=21\) 时 VaR 为 3.40013%,即 340,013 美元(1%)和 184,127 美元(5%)。
意外之处:传统 EVT 的 VaR 比 GARCH 方法还小,甚至低于经验分位数。部分原因是尾部概率不够小——取 \(p=0.001\) 时,高斯 AR(2)–GARCH(1,1) 的 VaR 为 546,641 美元,EVT(\(n=21\))为 666,590 美元。更根本的原因是:传统 EVT 假设日收益独立,而子期最大值的构造忽略了波动聚集——7.9 节的极值指数和 7.8.6 节的条件 EVT 正是为此而设。此外 VaR 依赖 \(n\):极限分布要求 \(n\) 大,但 \(T\) 固定时 \(n\) 大意味着 \(g\) 小,需要折中,并检查 VaR 对 \(n\) 的稳定性。
7.7.2 各方法的比较
IBM,1,000 万美元多头,1998-12-31 的下一交易日 VaR(美元):
| 方法 | \(p=5\%\) | \(p=1\%\) | \(p=0.1\%\) |
|---|---|---|---|
| RiskMetrics | 302,500 | 426,500 | 566,443 |
| 高斯 AR(2)–GARCH(1,1) | 287,200 | 409,738 | 546,641 |
| 标准化 \(t_5\) AR(2)–GARCH(1,1) | 283,520 | 475,943 | 836,341 |
| 经验分位数 | 216,030 | 365,709 | 780,712 |
| 传统 EVT(\(n=21\)) | 184,127 | 340,013 | 666,590 |
(正态 GARCH 的 5% VaR 在例 7.3 正文中为 287,700;1% 经验分位数 VaR 在例 7.5 正文中为 363,000。原书前后数字略有出入。)
结论:
- 不同方法差异很大,因为尾部估计本身有很大不确定性。没有"真实 VaR"可比较,建议同时用多种方法,了解 VaR 的范围。
- 样本有 9,190 个观测时,5% 和 1% 的经验分位数是不错的估计,可作为真实 VaR 的保守下界;以此衡量,传统 EVT 低估了 IBM 的 VaR。
- 尾部概率很小(0.1%)时,经验分位数不再可靠,不能当下界。
- 尾部概率越小,厚尾的影响越明显:0.1% 时 \(t_5\) 和 EVT 的 VaR 都远大于正态模型。
7.7.3 多期 VaR:α 次根法则
在 EVT 框架下,RiskMetrics 的时间平方根法则是一个特例。Danielsson & de Vries (1997a) 给出 \(\ell\) 日与 1 日 VaR 的关系
\(\alpha=1/\xi\) 为尾指数(注意不是尺度参数 \(\alpha_n\)),称 α 次根时间法则。直观上,厚尾分布的极端损失主要来自"一次大跳"而非"许多小损失累积",所以多期极端损失增长得比 \(\sqrt\ell\) 慢。例:IBM,\(p=0.01\),\(n=63\),30 日 VaR \(=30^{0.335}\times304{,}969=3.125\times304{,}969=\$952{,}997\),低于平方根法则给出的 \(\sqrt{30}\times304{,}969=\$1{,}670{,}000\)。
金融直觉:为什么尾部的缩放指数是 \(\xi\) 而不是 \(1/2\)?对幂律尾部有一个「单次大跳」原理:\(\ell\) 个独立厚尾损失之和超过一个很大的 \(x\),几乎总是因为其中某一天特别大,而不是每天都中等偏大。于是 \(P(\text{总和}>x)\approx\ell\cdot P(\text{单日}>x)\approx\ell\,cx^{-1/\xi}\)。要让这个概率等于 \(p\),需要的 \(x\) 满足 \(\ell x^{-1/\xi}=\) 常数,解得 \(x\propto\ell^{\xi}\)。正态情形下大损失来自「许多中等损失的累积」,所以按 \(\sqrt\ell\) 缩放。注意这个法则只在极端分位、且日收益近似独立时成立;有波动聚集时,连续几天的大跌会让多期尾部比 \(\ell^\xi\) 更重,使用时要谨慎,不能把它当作「多期风险比平方根法则小」的通用结论。
7.7.4 回报水平
回报水平(return level)\(L_{n,g}\) 是"每 \(g\) 个长度为 \(n\) 的子期中平均被超过一次"的水平:
正是 (7.26) 中 \(p^*=1/g\) 的情形。被超过的子期称为压力期(stress period)。它与 VaR 的区别在于针对的是子期最大值而非单日收益。IBM 负收益,\(n=21\),\(g=12\)(约"一年一遇的月度最大日跌幅"):回报水平 4.48%,剖面似然 95% 区间约 [4.18%, 4.86%]。回报水平是压力测试情景的自然语言:"十年一遇"的单日跌幅是多少。
7.8 超阈值方法(POT)
7.8.1 思路
传统方法有两个困难:子期长度 \(n\) 没有明确的选法;它是无条件的,难以纳入解释变量。Davison & Smith (1990)、Smith (1989) 的新方法不看极大值,而看超过某个高阈值 \(\eta\) 的观测:超越发生的时间 \(t_i\) 与超出量 \(r_{t_i}-\eta\)。这称为超阈值峰值法(peaks over thresholds,POT)。
以 IBM 多头为例:对负日收益设阈值 \(\eta=2.5\%\),关注 \(\{(t_i,r_{t_i}-\eta):r_{t_i}>\eta\}\)。超越时间成簇说明市场处于大跌期;超出量是实际损失的大小。
POT 不需要选 \(n\),但需要选阈值 \(\eta\)。阈值既是统计问题也是金融问题:不同机构风险容忍度不同;平稳的大盘股多头用 2.5% 可能就够,高波动的互联网股可能要 10%。经验上让超越数约占样本的 5%(Danielsson & de Vries 1997b 有正式研究)。
7.8.2 广义帕累托分布
考虑给定 \(r>\eta\) 时超出量 \(x=r-\eta\) 的条件分布:
把 \(F\) 用 GEV 近似,并在 \(F_*\) 接近 1 时用 \(\ln F_*\approx-(1-F_*)\),得
推导拆解: 第一步:(7.29) 等价于「超出量的生存概率」\(=\frac{1-F(x+\eta)}{1-F(\eta)}\)。 第二步:在尾部 \(F_*\) 接近 1,\(\ln F_*=\ln[1-(1-F_*)]\approx-(1-F_*)\)。由 GEV 形式 \(\ln F_*(y)=-[1+\xi(y-\beta)/\alpha]^{-1/\xi}\),所以 \(1-F(y)\approx[1+\xi(y-\beta)/\alpha]^{-1/\xi}\)。 第三步:代入比值,\(\frac{[1+\xi(x+\eta-\beta)/\alpha]^{-1/\xi}}{[1+\xi(\eta-\beta)/\alpha]^{-1/\xi}}=\Big[\frac{\alpha+\xi(x+\eta-\beta)}{\alpha+\xi(\eta-\beta)}\Big]^{-1/\xi}=\Big[1+\frac{\xi x}{\alpha+\xi(\eta-\beta)}\Big]^{-1/\xi}\)。分子分母都乘以 \(\alpha\),再把分子拆成「分母 \(+\xi x\)」即得。
金融直觉:GPD 回答的是「已经跌破止损线,还会再跌多少」。这和保险中「超额损失再保险」的定价思路完全相同:再保险人只关心赔付超过自留额的部分,GPD 正是这部分的标准模型。
这就是广义帕累托分布(generalized Pareto distribution,GPD):
尺度 \(\psi(\eta)=\alpha+\xi(\eta-\beta)>0\);\(\xi\ge0\) 时 \(x\ge0\),\(\xi<0\) 时 \(0\le x\le-\psi(\eta)/\xi\)。形状参数 \(\xi\) 与 GEV 中的完全相同——这建立了新旧方法的联系(Pickands–Balkema–de Haan 定理)。
阈值稳定性:若阈值 \(\eta_o\) 上的超出量服从 GPD\((\xi,\psi(\eta_o))\),则对任何更高阈值 \(\eta>\eta_o\),超出量仍服从 GPD,形状不变,尺度变为
\(\xi=0\) 时 GPD 是指数分布,所以画超出量对指数分布的 QQ 图:若明显向上弯曲,说明 \(\xi>0\)(尾部比指数厚)。IBM 负收益、阈值 2.5% 的 QQ 图明显非线性。
7.8.3 平均超出函数与阈值选择
若阈值 \(\eta_o\) 上超出量服从 GPD\((\xi,\psi(\eta_o))\),\(0<\xi<1\),则平均超出为 \(E(r-\eta_o\mid r>\eta_o)=\psi(\eta_o)/(1-\xi)\)。对 \(\eta>\eta_o\),由阈值稳定性,平均超出函数
是 \(\eta\) 的线性函数,斜率 \(\xi/(1-\xi)\)。经验版本
对 \(\eta\) 的图称平均超出图(mean excess plot,或 mean residual life plot)。选择阈值的图形方法:找一个 \(\eta_o\),使图在其右侧近似线性。IBM 负收益约 3% 的阈值是合理的。
金融直觉:平均超出函数 \(e(\eta)\) 就是「在损失已经超过 \(\eta\) 的条件下,平均还会再多亏多少」,也就是 \(\text{ES}-\text{VaR}\) 的一般形式。三种尾部给出三种形状:指数尾(\(\xi=0\),类似正态以外的轻尾)\(e(\eta)\) 是常数,「已经亏了多少」不影响「还会再亏多少」;厚尾(\(\xi>0\))\(e(\eta)\) 随 \(\eta\) 上升,亏得越多,预期还会亏得越多,这正是危机中「最坏的还没来」的数学表达;有界尾(\(\xi<0\))\(e(\eta)\) 下降。数值例子:\(\xi=0.25\) 时斜率 \(\xi/(1-\xi)=1/3\),阈值每提高 3 个百分点,平均超出增加 1 个百分点。
7.8.4 二维泊松过程
Smith (1989) 把 \((t_i,r_{t_i})\) 作为二维泊松过程联合建模;Tsay (1999) 用于 VaR。取基准时间区间 \(D\)(通常 1 年,美国 \(D=252\) 个交易日)。强度测度为
\(r>\eta\),\([x]_+=\max(x,0)\)。含义:一段时间内超过 \(r\) 的期望次数与时间长度成正比,比例由类似 GEV 的"生存函数" \(S\) 决定。
与 GPD 的联系:
正是 (7.30) 中超出量的生存函数。所以三种方法(GEV、GPD、二维泊松)的参数含义一致。
强度函数 \(\lambda(t,z)=\frac1Dg(z;\xi,\alpha,\beta)\),\(g=\frac1\alpha[1+\xi(z-\beta)/\alpha]^{-(1+\xi)/\xi}\)。泊松过程在 \([0,T]\times(\eta,\infty)\) 上的似然为
第一项是"在观测到的位置发生了超越"的密度,第二项是"其他地方没有超越"的概率。估计时用 \(\ln\alpha\) 保证正性。
白话解释:可以把二维泊松过程想象成在「时间 × 损失大小」平面上撒点:每个点代表一次超越,横坐标是日期,纵坐标是损失。强度测度 (7.33) 告诉你任意一块矩形区域里「平均有多少个点」:矩形越宽(时间越长)点越多,越高(损失阈值越高)点越少,后者按 GEV 型的幂律下降。似然 (7.35) 的结构和信用风险中违约强度模型的似然相同:「每个违约发生时刻的强度」连乘,再乘以「其余时间都没违约的生存概率」\(e^{-\text{累积强度}}\)。这里 \(\frac TDS(\eta)\) 就是整个样本期内超过阈值 \(\eta\) 的期望次数。
例 7.7(IBM 负日收益,%,\(D=252\)):
| 阈值 | 超越数 | \(\xi\) | \(\ln\alpha\) | \(\beta\) |
|---|---|---|---|---|
| 原始收益 | ||||
| 3.0% | 175 | 0.307 (0.090) | 0.307 (0.124) | 4.692 (0.191) |
| 2.5% | 310 | 0.264 (0.065) | 0.315 (0.113) | 4.741 (0.180) |
| 2.0% | 554 | 0.188 (0.044) | 0.277 (0.099) | 4.810 (0.172) |
| 去除样本均值 | ||||
| 3.0% | 184 | 0.305 (0.088) | 0.308 (0.124) | 4.738 (0.192) |
| 2.5% | 334 | 0.282 (0.067) | 0.320 (0.121) | 4.768 (0.185) |
| 2.0% | 590 | 0.193 (0.044) | 0.279 (0.099) | 4.849 (0.173) |
IBM 一天下跌至少 2.5% 的频率约 \(310/9190\approx3.4\%\)。去均值影响很小。
7.8.5 POT 下的 VaR 与 ES
二维泊松参数化:VaR 公式与 (7.28) 同形,用基准区间 \(D\) 代替 \(n\):
例 7.8(IBM,1,000 万美元多头):原始收益,阈值 3.0%、2.5%、2.0% 下的 5% VaR 为 228,239、219,106、212,981 美元,1% VaR 为 359,303、361,119、368,552 美元;去均值后分别为 232,094、225,782、217,740 和 363,697、364,254、372,372 美元。VaR 对阈值不敏感,比传统 EVT(对 \(n\) 很敏感)稳定得多。建议先去均值再用 POT。
GPD 参数化(R 的 evir、Python 的 scipy.stats.genpareto):给定阈值 \(\eta\),直接用 \((\xi,\psi(\eta))\) 拟合超出量。两种参数化可互换:IBM 阈值 2.5% 时 \(\hat\psi(\eta)=e^{0.31529}+0.26418\times(2.5-4.7406)=0.7787\%\),与 gpd 直接估计的 0.007786 一致。
用经验 CDF 估计 \(\hat F(\eta)=(T-N_\eta)/T\),由 (7.29):
令 \(F(y)=q=1-p\) 解出
推导拆解:思路是「无条件尾部概率 = 超过阈值的概率 × 超过阈值后再超过 \(y\) 的条件概率」。 第一步:\(P(r>y)=P(r>\eta)\cdot P(r>y\mid r>\eta)\approx\frac{N_\eta}{T}\big[1+\xi(y-\eta)/\psi\big]^{-1/\xi}\)。第一个因子用经验频率,第二个因子用 GPD。 第二步:令 \(P(r>y)=1-q\),得 \(\big[1+\xi(y-\eta)/\psi\big]^{-1/\xi}=\frac{T}{N_\eta}(1-q)\)。 第三步:两边取 \(-\xi\) 次幂,\(1+\xi(y-\eta)/\psi=\big[\frac{T}{N_\eta}(1-q)\big]^{-\xi}\),解出 \(y\) 即 (7.37)。 这种「经验频率处理阈值以下、参数模型处理阈值以上」的组合,正是 EVT 能外推到样本外的原因:经验分位数在 99.9% 处只剩几个点,而 GPD 用阈值以上的几百个点估计出尾部形状,再沿着幂律外推。
ES:由阈值稳定性,超过 \(\text{VaR}_q\) 的超出量仍是 GPD,尺度为 \(\psi(\eta)+\xi(\text{VaR}_q-\eta)\),于是(\(0<\xi<1\))
IBM 负收益、阈值 2.5%(\(\hat\xi=0.2642\),\(\hat\psi=0.007786\),\(N_\eta=310\)):
| \(q\) | VaR | ES |
|---|---|---|
| 0.95 | 2.209% | 3.163% |
| 0.99 | 3.616% | 5.075% |
| 0.999 | 7.019% | 9.700% |
1,000 万美元头寸的 1% VaR 为 361,661 美元,ES 为 507,576 美元。注意 ES/VaR 的比值随 \(q\to1\) 趋于 \(1/(1-\xi)=1.36\);正态分布下这个比值趋于 1。
金融直觉:ES/VaR 比值是一个很实用的尾部厚度指标。由 (7.38),\(q\to1\) 时 VaR 变得很大,常数项 \(\frac{\psi-\xi\eta}{1-\xi}\) 相对可忽略,比值趋于 \(1/(1-\xi)\)。正态下比值趋于 1,因为尾部衰减极快,一旦越过 VaR,损失几乎不会再远离 VaR。对监管从 99% VaR 转向 97.5% ES 的含义:正态下两者大致相当(\(2.326\sigma\) 对 \(2.338\sigma\)),厚尾时 97.5% ES 显著更大,所以这一改革实质上是对厚尾头寸加收资本。另外 \(\xi\ge1\) 时 ES 无穷大(均值不存在),公式也要求 \(0<\xi<1\)。
7.8.6 引入解释变量:条件 EVT
齐次二维泊松模型参数不随时间变化,忽略了波动聚集。POT 的一大优点是容易引入解释变量。设 \(t\) 之前可得的解释变量 \(\boldsymbol x_t\)(如 GARCH 波动率、FOMC 会议日),令
\(\boldsymbol\gamma=0\) 表示形状参数不随时间变化,可用于检验。此时是非齐次泊松过程;若参数在每个交易日内不变,似然为
这与 GARCH 的思路相同:参数是 \(t\) 时可得信息的确定函数。
7.8.7 模型检验
二维泊松模型要检验三个方面:
-
超越率:泊松过程相邻事件的间隔应服从指数分布。日数据下定义
\[z_{t_i}=\frac1D\sum_{t=t_{i-1}+1}^{t_i}S(\eta;\xi_t,\alpha_t,\beta_t),\tag{7.42}\]模型正确时 \(z_{t_i}\) 应为 iid 标准指数,QQ 图为过原点斜率 1 的直线。
-
超出量分布:超出量服从形状 \(\xi_t\)、尺度 \(\psi_t=\alpha_t+\xi_t(\eta-\beta_t)\) 的 GPD。定义
\[w_{t_i}=\frac{1}{\xi_{t_i}}\ln\Big[1+\xi_{t_i}\frac{r_{t_i}-\eta}{\psi_{t_i}}\Big],\tag{7.43}\]模型正确时应为 iid 均值 1 的指数分布。
-
独立性:\(z_{t_i}\)、\(w_{t_i}\) 的 ACF 应无显著相关。
这和第 07a 章 VaR 回测中的 Christoffersen 独立性检验是同一个思想:极端事件不应成簇出现。
7.8.8 例:IBM 的非齐次模型
齐次模型(例 7.7,阈值 2.5%)未通过检验:\(z\)、\(w\) 的 ACF 显著,\(z\) 的 QQ 图偏离直线。改用去均值收益,候选解释变量(都在 \(t-1\) 时可得):
- \(x_{1t}\):10–12 月指示(年末效应);
- \(x_{2t}\):前一日跌幅 ≥2.5% 的指示(恐慌抛售);
- \(x_{3t}\):前 5 天中 \(|r_{t-i}|\ge2.5\%\) 的天数(定性波动率);
- \(x_{4t}\):年度趋势 \((\text{年份}-1961)/38\);
- \(x_{5t}=\sigma_t\):高斯 GARCH(1,1) 的拟合波动率,\(\sigma_t^2=0.04565+0.0807a_{t-1}^2+0.9031\sigma_{t-1}^2\)。
删去不显著参数后(阈值 2.5%,334 次超越,括号为标准误):
| 参数 | 常数 | \(x_{3t}\) | \(x_{4t}\) | \(x_{5t}\) |
|---|---|---|---|---|
| \(\beta_t\) | 0.3202 (0.3387) | — | 1.4772 (0.3222) | 2.1991 (0.2450) |
| \(\ln\alpha_t\) | −0.8119 (0.1798) | 0.3305 (0.0826) | 1.0324 (0.2619) | — |
| \(\xi_t\) | 0.1805 (0.1290) | 0.2118 (0.0580) | 0.3551 (0.1503) | −0.2602 (0.0461) |
(精读笔记中该表的列对应关系由抽取文本重建,并用正文给出的 \(\xi_{9190},\ln\alpha_{9190},\beta_{9190}\) 回代验证:\(x_3=0\)、\(x_4=0.9737\)、\(x_5=1.9766\) 时得 \(\xi=0.0120\)、\(\ln\alpha=0.1933\)、\(\beta=6.105\),与正文一致。)
此时 \(z\)、\(w\) 的 ACF 全部落在两倍标准误内,QQ 图显著改善,模型充分。解读:
- 三个参数都显著依赖年度趋势。按上表数值,\(\xi\) 对趋势的系数为正(+0.355),即 IBM 收益的尾部随时间变厚、越来越偏离正态。原书文字称形状参数有"负的年度趋势",与表中数值和"越来越偏离正态"的结论相矛盾,这里以数值为准。
- 年末效应 \(x_1\) 和恐慌抛售 \(x_2\) 对三个参数都不显著。
- 位置参数随 GARCH 波动率上升,符合直觉。按表中数值,\(\xi\) 对 GARCH 波动率的系数为负(−0.260),即高波动时尾部形状反而变薄——高波动日的大损失更多由"尺度"(位置)解释,而不是由更厚的尾解释。原书文字把它描述为正向影响,同样与数值不符。
- 尺度和形状参数显著依赖定性波动率 \(x_3\):近期频繁出现大波动时,尺度和尾部厚度都上升。
VaR:1998-12-31,\(x_3=0\)、\(x_4=0.9737\)、\(x_5=1.9766\),得 \(\xi=0.01195\)、\(\ln\alpha=0.19331\)、\(\beta=6.105\),由 (7.36):5% VaR \(=\$303{,}756\),1% VaR \(=\$497{,}425\),后者明显高于正态 GARCH。前一天(1998-12-30,\(x_3=1\)、\(x_5=1.8757\))参数为 \(\xi=0.2500\)、\(\ln\alpha=0.52385\)、\(\beta=5.8834\),5% VaR \(=\$269{,}139\),1% VaR \(=\$448{,}323\)。条件 EVT 的参数随市场状况自适应,由此看来齐次模型低估了 VaR。
7.9 极值指数
7.9.1 动机
前面的理论假设 iid,但现实中极端事件成簇出现:坏消息之后常连续几天大跌。本节把理论推广到严平稳序列,核心概念是极值指数 \(\theta\in(0,1]\)。
启发式论证:若相依性随距离快速衰减,把数据分成大小为 \(k\) 的块,块最大值之间近似独立,整体最大值是块最大值的最大值,所以极限仍是极值分布;但块最大值的分布不是 \(F^k\),而依赖于块内相依性,因此参数会改变。
7.9.2 \(D(u_n)\) 条件与 Leadbetter 定理
设 \(u_n\) 为递增阈值序列,\(\limsup n[1-F(u_n)]<\infty\)。若对任意两组下标集合 \(A_1\)、\(A_2\)(相隔至少 \(\ell_n\),\(\ell_n/n\to0\)),
则称满足 \(D(u_n)\) 条件(Leadbetter 1974):相隔足够远的"最大值不超过阈值"事件渐近独立。这个条件相当弱,例如高斯序列只要 \(\rho_n\ln n\to0\) 就满足。
Leadbetter 定理:(1) 严平稳序列在 \(D(u_n)\) 下,规范化最大值若有非退化极限,则该极限是极值分布。(2) 设 \(\{\tilde x_i\}\) 是与 \(\{x_i\}\) 同边际分布的 iid 序列,其规范化最大值收敛到 \(\tilde F_*\);在 \(D(u_n)\) 及收敛性条件下,
参数如何变化(\(\xi\ne0\)):
\(\xi_*=\xi\),\(\alpha_*=\alpha\theta^\xi\),\(\beta_*=\beta-\alpha(1-\theta^\xi)/\xi\)。形状参数与 iid 情形相同,位置和尺度受 \(\theta\) 影响。\(\xi=0\) 时 \(\alpha_*=\alpha\),\(\beta_*=\beta+\alpha\ln\theta\)。
正式定义:若对每个 \(\tau>0\) 存在 \(u_n\) 使 \(n[1-F(u_n)]\to\tau\) 且 \(P(x_{(n)}\le u_n)\to e^{-\theta\tau}\),则 \(\theta\) 为极值指数。iid 时 \(P(\tilde x_{(n)}\le u_n)=[1-\tau/n]^n\to e^{-\tau}\),所以 \(\theta=1\) 对应无聚集;\(\theta<1\) 时极值成簇,\(1/\theta\) 可理解为平均簇大小。
白话解释:用一个数值例子理解 \(\theta\)。设 1000 天里有 10 次超过阈值的大跌(\(\tau=10\))。若各天独立,这 10 次大跌散落在 10 个不同时段,「整个期间一次都没超过」的概率约 \(e^{-10}\)。若大跌总是两天一组出现,10 次超越实际上只是 5 个「独立事件」,「一次都没超过」的概率变成约 \(e^{-5}\),对应 \(\theta=0.5\),平均簇大小 \(1/\theta=2\)。所以 \(\theta\) 是「独立极端事件个数 / 极端日天数」。
金融直觉:这和信用组合中的违约相关性类似:同样的平均违约率,违约若成批发生,「一年中没有违约」的概率更高,但「一旦出事就是一串」。对风险管理而言,\(\theta<1\) 意味着平静期看起来更安全,危机期则损失集中爆发,这正是 GARCH 波动聚集在极值层面的表现。
7.9.3 估计
块方法:由 \(P(x_{(n)}\le u_n)\approx[F(u_n)]^{n\theta}\),
用 \(\hat F(u_n)=1-N(u_n)/n\)(\(N\) 为超越次数);把数据分成 \(g=n/k\) 块,\(\hat P(\text{块最大值}\le u_n)=1-G(u_n)/g\)(\(G\) 为含超越的块数),得
用 \(\ln(1-x)\approx-x\) 进一步得
正好是"平均簇大小"的倒数(Hsing et al. 1988)。
推导拆解:从 \(\hat\theta_b^{(1)}\) 到 \(\hat\theta_b^{(2)}\) 只用了 \(\ln(1-x)\approx-x\)。分子 \(\ln[1-G/g]\approx-G/g\),分母 \(\ln[1-N/n]\approx-N/n\),于是 \(\hat\theta^{(1)}\approx\frac1k\cdot\frac{G/g}{N/n}=\frac1k\cdot\frac{G\,n}{N\,g}\)。又 \(n=gk\)(总天数 = 块数 × 块大小),代入得 \(G/N\)。数值例子见练习 5:200 次超越落在 140 个块中,\(\hat\theta=0.7\),平均每个「极端时段」包含约 1.43 个极端日。
游程方法(O'Brien 1987):一次超越之后紧跟 \(k\) 个不超越,视为一个簇的结束,
两种估计都对阈值和块大小(游程长度)敏感。IBM 负日收益,块大小 \(k=10\)、阈值 2.5% 时 \(\hat\theta_b^{(1)}=0.823\),即极端下跌平均以约 1.2 天为一簇出现。
7.9.4 平稳序列的 VaR
由 \(P(x_{(n)}\le u_n)\approx[F(u_n)]^{n\theta}\),(7.28) 修正为
由于 \(\theta<1\) 使方括号内的数变小,其负幂变大,VaR 增大——忽略极值指数会低估 VaR。IBM:\(\hat\theta=0.823\),\(n=63\),1% VaR 从 3.0497% 升到 3.2714%。直觉:极端损失成簇时,它们集中在少数子期里,许多子期没有极端值,所以子期最大值整体偏低,拟合出的 GEV 看起来比日损失的真实尾部"薄"。一个长度为 \(n\) 的子期,其最大值的行为只相当于 \(n\theta\) 个独立观测的最大值;换算回日收益时若仍按 \(n\) 个独立观测处理,就会低估日损失的尾部。
量化实战
应用场景
- 尾部风险度量:GPD 下的 VaR 与 ES 有闭式公式 (7.37)–(7.38),计算快,适合作为风控系统中 VaR/ES 引擎的一个模块;特别适合 99.9% 等极端分位,经验分位数在那里已经不可靠。
- 条件 EVT(GARCH–EVT):业界常用的 McNeil–Frey 两步法——先用 GARCH 过滤得到标准化残差,再对残差尾部拟合 GPD,VaR \(=\mu_{t+1}+\sigma_{t+1}\cdot\text{VaR}_q(\epsilon)\)。它与 7.8.6 节"参数是波动率的函数"的思路一致,但实现更简单。
- 尾部风险因子:滚动窗口的 Hill 尾指数、极值指数可作为个股尾部风险特征,用于选股或风险预算。
- 压力测试:回报水平给出"\(g\) 个子期一遇"的极端损失,是设定压力情景的自然方式;α 次根法则给出多期极端损失的缩放。
- 局限:本章都是单变量、日频数据;组合层面需要考虑危机中相关性上升的尾部相依,属于多元极值理论与 Copula,原书本章未覆盖。
Python 示例
代码先用原书参数复现例 7.6、极值指数修正和 α 次根法则的数字;然后模拟一个 GARCH + \(t_4\) 新息的日收益序列(真实尾部形状 \(\xi=1/4\),并有波动聚集),依次做 Hill 估计、分块 GEV 极大似然 VaR、两个阈值下的 GPD VaR 与 ES、平均超出函数,以及三种极值指数估计。注意 scipy.stats.genextreme 的形状参数 c 等于 \(-\xi\),而 genpareto 的 c 就是 \(\xi\)。
import numpy as np
from scipy import stats, optimize
rng = np.random.default_rng(99)
# ---------- 0. 原书例题核对:传统 EVT VaR (7.28)、极值指数修正 (7.51)、α 次根法则 ----------
def evt_var(beta, alpha, xi, n, p, theta=1.0):
return beta - alpha/xi*(1 - (-n*theta*np.log(1-p))**(-xi))
print(f"例 7.6 n=63: VaR(1%) = {evt_var(2.583, 0.945, 0.335, 63, 0.01):.5f}% (原书 3.04969)")
print(f"例 7.6 n=21: VaR(1%) = {evt_var(1.902, 0.823, 0.197, 21, 0.01):.5f}% (原书 3.40013)")
print(f"极值指数修正 θ=0.823: VaR(1%) = {evt_var(2.583, 0.945, 0.335, 63, 0.01, 0.823):.4f}% (原书 3.2714)")
print(f"α 次根法则: 30 日 VaR = 30^0.335 × 304,969 = {30**0.335*304969:,.0f}")
# ---------- 1. 模拟日收益:GARCH(1,1) + 标准化 t4 新息(%)。取负收益做多头损失 ----------
T, nu = 20000, 4
z = stats.t.rvs(nu, size=T, random_state=rng)/np.sqrt(nu/(nu-2))
r, s2 = np.zeros(T), np.zeros(T); s2[0] = 1.0
for t in range(T):
if t: s2[t] = 0.02 + 0.08*r[t-1]**2 + 0.90*s2[t-1]
r[t] = np.sqrt(s2[t])*z[t]
x = -r
p = 0.01
print(f"\n样本经验 99% 分位 = {np.quantile(x, 0.99):.3f}%, 99.9% 分位 = {np.quantile(x, 0.999):.3f}%")
# ---------- 2. Hill 估计 (7.25) ----------
xs = np.sort(x)
for q in (200, 400, 800):
top = xs[-q:]; xi_h = np.mean(np.log(top) - np.log(xs[-q-1]))
print(f"Hill q={q}: xi = {xi_h:.3f} (SE {xi_h/np.sqrt(q):.3f})")
# ---------- 3. 分块极大值 + GEV 极大似然(注意 scipy 的 c = -xi)----------
gev = {}
for n in (21, 63):
g = T//n
mx = x[T - g*n:].reshape(g, n).max(axis=1) # 删除开头不足一块的观测
c, loc, scale = stats.genextreme.fit(mx)
xi = -c
var_gev = evt_var(loc, scale, xi, n, p); gev[n] = (loc, scale, xi)
print(f"GEV n={n:>2} (g={g}): xi={xi:.3f}, alpha_n={scale:.3f}, beta_n={loc:.3f} -> 1% VaR = {var_gev:.3f}%")
# ---------- 4. POT:GPD 拟合超阈值部分,VaR (7.37) 与 ES ----------
for u in (np.quantile(x, 0.95), np.quantile(x, 0.975)):
exc = x[x > u] - u; Nu = len(exc)
xi, _, psi = stats.genpareto.fit(exc, floc=0)
var_q = u - psi/xi*(1 - (T/Nu*p)**(-xi))
es_q = var_q/(1 - xi) + (psi - xi*u)/(1 - xi)
print(f"GPD 阈值 {u:.2f} (超越 {Nu}): xi={xi:.3f}, psi={psi:.3f} -> VaR {var_q:.3f}%, ES {es_q:.3f}%")
# 平均超出函数:GPD 下应关于阈值线性,斜率 xi/(1-xi)
grid = np.quantile(x, [0.90, 0.93, 0.95, 0.97, 0.98, 0.99])
me = [np.mean(x[x > u] - u) for u in grid]
slope = np.polyfit(grid, me, 1)[0]
print("平均超出函数:", np.round(me, 3), f"斜率 {slope:.3f} => 隐含 xi ≈ {slope/(1+slope):.3f}")
# ---------- 5. 极值指数:块方法 (7.50) 与游程方法 ----------
u = np.quantile(x, 0.99); k = 10
Nn = np.sum(x > u)
blocks = x[:T//k*k].reshape(-1, k); g = blocks.shape[0]
G = np.sum(blocks.max(axis=1) > u)
th1 = np.log(1 - G/g)/np.log(1 - Nn/T)/k
th2 = G/Nn
exceed = x > u
runs = sum(exceed[i] and not exceed[i+1:i+1+k].any() for i in range(T - k))
th3 = runs/Nn
iid = rng.permutation(x)
G_iid = np.sum(iid[:T//k*k].reshape(-1, k).max(axis=1) > u)
print(f"\n极值指数 (u=99%分位, k={k}): 块方法 θ1={th1:.3f}, θ2={th2:.3f}, 游程 θ3={th3:.3f}; "
f"打乱顺序后 θ2={G_iid/Nn:.3f}")
for n in (21, 63):
print(f"GEV n={n} 加极值指数修正 (θ={th1:.3f}): 1% VaR = {evt_var(*gev[n], n, p, th1):.3f}%")
关键输出:
例 7.6 n=63: VaR(1%) = 3.04969% (原书 3.04969)
例 7.6 n=21: VaR(1%) = 3.40013% (原书 3.40013)
极值指数修正 θ=0.823: VaR(1%) = 3.2714% (原书 3.2714)
α 次根法则: 30 日 VaR = 30^0.335 × 304,969 = 952,997
样本经验 99% 分位 = 2.378%, 99.9% 分位 = 4.938%
Hill q=200: xi = 0.329 (SE 0.023)
Hill q=400: xi = 0.369 (SE 0.018)
Hill q=800: xi = 0.383 (SE 0.014)
GEV n=21 (g=952): xi=0.266, alpha_n=0.518, beta_n=1.132 -> 1% VaR = 2.130%
GEV n=63 (g=317): xi=0.257, alpha_n=0.666, beta_n=1.671 -> 1% VaR = 1.994%
GPD 阈值 1.25 (超越 1000): xi=0.265, psi=0.550 -> VaR 2.353%, ES 3.497%
GPD 阈值 1.67 (超越 500): xi=0.237, psi=0.681 -> VaR 2.369%, ES 3.479%
平均超出函数: [0.64 0.697 0.742 0.858 0.966 1.096] 斜率 0.315 => 隐含 xi ≈ 0.239
极值指数 (u=99%分位, k=10): 块方法 θ1=0.840, θ2=0.810, 游程 θ3=0.630; 打乱顺序后 θ2=0.945
GEV n=21 加极值指数修正 (θ=0.840): 1% VaR = 2.270%
GEV n=63 加极值指数修正 (θ=0.840): 1% VaR = 2.127%
这组结果几乎重演了原书在 IBM 上的全部发现。第一,传统 EVT(分块 GEV)的 1% VaR(2.13%、1.99%)明显低于经验分位数 2.38%,而且依赖 \(n\);加入极值指数修正后上升到 2.27%、2.13%,有所改善但仍偏低——(7.27) 的独立性近似在有 GARCH 聚集时并不精确。第二,GPD 的 VaR(2.35%、2.37%)与经验分位数很接近,且对阈值不敏感,与例 7.8 一致。第三,GPD 和 GEV 的 \(\xi\) 估计在 0.24–0.27,接近真值 0.25;Hill 估计随 \(q\) 增大而上偏(0.33→0.38),说明 Hill 对 \(q\) 很敏感,需要看 Hill 图。第四,极值指数约 0.8(游程法 0.63),打乱时间顺序后接近 1——极值聚集来自 GARCH 的波动聚集,而非边际分布。ES/VaR 约为 1.48,比 \(t\) 分布下 1% 处的 1.33 更大,因为这里是条件分布混合后的无条件尾部。
本章小结
极值定理告诉我们:无论收益的分布是什么,只要规范化最大值有极限,它就是 GEV;金融收益属于厚尾的 Fréchet 族,IBM 日收益的形状参数约 0.2–0.35。传统 EVT 用分块极大值估计 GEV,再由 (7.28) 换算为日 VaR,但它依赖子期长度、忽略波动聚集,在 IBM 上低估了 VaR。POT 方法对超阈值部分拟合 GPD(形状参数与 GEV 相同),VaR 与 ES 有闭式公式,对阈值不敏感,更稳定;用二维泊松过程表述后,还能把参数写成解释变量的函数,得到随市场状况自适应的条件 EVT,并用超越间隔与超出量的指数性做诊断。极值指数 \(\theta\) 刻画极端事件的聚集,形状参数不受影响,但忽略它会低估 VaR。各种 VaR 方法在 IBM 上的结果相差很大,应同时使用多种方法,了解风险的范围。
| 概念 / 公式 | 要点 |
|---|---|
| GEV (7.16) | \(\exp[-(1+\xi x)^{-1/\xi}]\);\(\xi>0\) Fréchet,\(=0\) Gumbel,\(<0\) Weibull |
| 尾指数 | \(1/\xi\);\(t_v\) 分布 \(\xi=1/v\) |
| Hill 估计 | \(\frac1q\sum_{i=1}^{q}[\ln r_{(T-i+1)}-\ln r_{(T-q)}]\),SE \(\approx\hat\xi/\sqrt q\) |
| 传统 EVT VaR (7.28) | \(\beta_n-\frac{\alpha_n}{\xi_n}\{1-[-n\ln(1-p)]^{-\xi_n}\}\) |
| α 次根法则 | \(\text{VaR}(\ell)=\ell^{\xi}\,\text{VaR}\) |
| 回报水平 | \(L_{n,g}\):\(P(r_{n,i}>L_{n,g})=1/g\) |
| GPD (7.31) | \(1-[1+\xi x/\psi(\eta)]^{-1/\xi}\);\(\psi(\eta)=\alpha+\xi(\eta-\beta)\) |
| 阈值稳定性 / 平均超出 | \(\psi(\eta)=\psi(\eta_o)+\xi(\eta-\eta_o)\);\(e(\eta)\) 线性,斜率 \(\xi/(1-\xi)\) |
| GPD VaR (7.37) | \(\eta-\frac{\psi}{\xi}\{1-[\frac{T}{N_\eta}(1-q)]^{-\xi}\}\) |
| GPD ES (7.38) | \(\frac{\text{VaR}_q}{1-\xi}+\frac{\psi-\xi\eta}{1-\xi}\) |
| 二维泊松强度 (7.33) | \(\frac{D_2-D_1}{D}[1+\xi(r-\beta)/\alpha]_+^{-1/\xi}\) |
| 极值指数 | \(F_*=\tilde F_*^\theta\);\(\hat\theta=G/N\);\(1/\theta\) 为平均簇大小 |
| 平稳序列 VaR (7.51) | (7.28) 中 \(n\) 换成 \(n\theta\) |
练习
基础
- 自由度为 3 的 Student-t 分布属于哪类极值分布?形状参数是多少?它的几阶矩存在? 提示:Fréchet,\(\xi=1/3\),只有小于 3 阶的矩存在。
- 某股票负日收益(%)用 \(n=21\) 的子期拟合 GEV,得 \(\hat\beta=2.0\)、\(\hat\alpha=0.9\)、\(\hat\xi=0.25\)。计算 1% 和 0.1% 的 1 日 VaR(%),以及 10 日 1% VaR(α 次根法则)。 提示:\(-21\ln0.99=0.2111\),VaR\(_{1\%}=2.0-3.6(1-0.2111^{-0.25})=2.0+3.6\times0.4754=3.71\%\);0.1% 时 \(-21\ln0.999=0.02101\),VaR \(=2.0+3.6\times(0.02101^{-0.25}-1)=2.0+3.6\times1.627=7.86\%\);10 日 VaR \(=10^{0.25}\times3.71=6.60\%\)。
- GPD 拟合:阈值 \(\eta=2\%\),\(T=5000\),超越 \(N_\eta=250\),\(\hat\xi=0.2\),\(\hat\psi=0.8\%\)。计算 99% 和 99.9% 的 VaR 与 ES。 提示:99%:\(\frac{T}{N}(1-q)=0.2\),VaR \(=2+4\times(0.2^{-0.2}-1)=3.519\%\),ES \(=3.519/0.8+(0.8-0.4)/0.8=4.899\%\)。99.9% 时 \(\frac{T}{N}(1-q)=0.02\),VaR \(=2+4\times(0.02^{-0.2}-1)=6.75\%\),ES \(=8.93\%\)。
- 解释为什么 GPD 的平均超出函数是阈值的线性函数,并说明若经验平均超出图在高阈值处向下弯曲意味着什么。 提示:阈值稳定性;向下弯曲提示 \(\xi<0\) 或高阈值处样本太少导致噪声。
- 某序列用块大小 10、阈值 99% 分位,得 200 次超越,分布在 140 个块中。估计极值指数和平均簇大小。 提示:\(\hat\theta^{(2)}=140/200=0.7\),平均簇大小约 1.43。
进阶
- 证明 GPD 的阈值稳定性:若 \(X-\eta_o\mid X>\eta_o\sim\) GPD\((\xi,\psi_o)\),则 \(X-\eta\mid X>\eta\sim\) GPD\((\xi,\psi_o+\xi(\eta-\eta_o))\)。
- 推导 (7.46):把 \(\theta[1+\xi(x-\beta)/\alpha]^{-1/\xi}\) 写成 \([1+\xi(x-\beta_*)/\alpha_*]^{-1/\xi}\) 的形式,求 \(\alpha_*\)、\(\beta_*\)。
- 用本章代码实现 McNeil–Frey 的 GARCH–EVT:先用
arch拟合 GARCH,取标准化残差的负值拟合 GPD,得到条件 1% VaR,并用第 07a 章的 Kupiec 和 Christoffersen 检验回测,与 t-GARCH 比较。 - 画出本章模拟数据的 Hill 图(\(q\) 从 50 到 2000),讨论为什么在 GARCH 数据上 Hill 估计随 \(q\) 增大而上偏。
- (原书习题 7.5 改编)对一个模拟或真实收益序列:(a) 用 21 日子期拟合 GEV,做残差 QQ 图;(b) 计算 24 个 21 日子期的回报水平;(c) 画阈值为 2.5% 的指数 QQ 图和平均超出图;(d) 选阈值拟合 GPD,计算 \(q=0.99\)、0.999 的 VaR 与 ES。
原书推荐习题:7.5(或 7.7):完整的 GEV + GPD 流程;7.2(e)–(g)、7.4(c):齐次与非齐次二维泊松模型,体会条件尾部风险;7.3:Hill 估计;7.8:极值指数估计。
原书对照
| 本章小节 | 原书章节 | PDF 页码 |
|---|---|---|
| 7.6 极值理论回顾、估计、IBM 应用 | 7.5 | p.362–373 |
| 7.7 传统 EVT 的 VaR、方法比较、α 次根法则、回报水平 | 7.6 | p.373–379 |
| 7.8 POT、GPD、二维泊松过程、条件 EVT、模型检验 | 7.7 | p.379–397 |
| 7.9 极值指数 | 7.8 | p.397–404 |
| 习题 | 第 7 章习题 | p.404–406 |
(原书印刷页码约等于 PDF 页码减 20。)