第 07 章 经验分布函数与统计泛函
本章对应 Wasserman 原书第 7 章《估计 CDF 与统计泛函》。这是第一个真正的推断问题:在几乎不做假设的情况下估计整个分布 \(F\),再用"插入原则"估计 \(F\) 的各种特征。历史模拟法 VaR、样本均值、样本波动率、样本相关系数,本质上都是本章的插入估计量。
学习目标
- 掌握经验分布函数 \(\hat F_n\) 的定义,会推导它在固定点上的均值、方差和极限分布。
- 理解 Glivenko–Cantelli 定理(一致收敛)与 DKW 不等式(有限样本、分布无关的一致误差界),会构造 \(F\) 的置信带。
- 掌握插入原则 \(\hat\theta_n=T(\hat F_n)\),能把均值、方差、偏度、相关系数、分位数写成插入估计量;理解线性泛函的插入估计就是样本平均。
- 会用正态区间 \(T(\hat F_n)\pm z_{\alpha/2}\widehat{\text{se}}\) 做推断,会计算两组独立样本之差的标准误。
- 能把本章方法用到历史模拟 VaR/ES 和样本期比较上,并知道它们的局限(尾部数据少、收益非 IID)。
读前导读
这一章在解决什么问题。 你在 FRM/CFA 风险管理部分学过历史模拟法 VaR:把过去 500 天收益排序,取第 25 小的那个作为 95% VaR。这一章说明这种做法为什么合理、能有多准。做法本身叫"插入原则":不假设收益服从正态或任何分布,直接把"过去 \(n\) 天每天 \(1/n\) 的权重"当作真实分布,再在这个分布上计算你要的东西(分位数、均值、相关系数)。本章给出两个保证:数据越多,这个"历史分布"整体上越接近真实分布(Glivenko–Cantelli);并且误差有一个与分布形状无关的上限(DKW 不等式)。同时它也会冷静地告诉你:在 1% 这样的尾部,几年的数据远远不够。
需要先想起来的数学。
- 示性函数与比例。 \(I(X_i\le x)\) 条件成立取 1,否则取 0;对它求平均就得到"满足条件的比例"。例:收益 \(\{-2\%,1\%,0.5\%,-1\%\}\),\(\hat F_4(0)=\frac14(1+0+0+1)=0.5\)。示性函数的期望就是概率:\(\mathbb E\,I(X\le x)=F(x)\)。
- 上确界 \(\sup\)。 \(\sup_x|\hat F_n(x)-F(x)|\) 是"在所有 \(x\) 上两条曲线竖直距离的最大值",即最坏位置上的误差。之所以写 \(\sup\) 而不写 \(\max\),是因为最大值可能只能无限逼近而取不到;第一次读当作 \(\max\) 即可。见 第 00 册第 01 章 函数极限与连续。
- \(\int r(x)\,dF(x)\) 记号。 对连续分布是 \(\int r(x)f(x)\,dx\),对离散分布是 \(\sum r(x)p(x)\)。经验分布是离散的(每个数据点 \(1/n\)),所以对它"积分"就是等权求和。见 第 00 册第 03 章 积分。
- 分位数函数 \(F^{-1}\) 与 \(\inf\)。 \(F^{-1}(p)\) 是"使累积概率达到 \(p\) 的最小的 \(x\)"。阶梯函数没有真正的反函数,所以用 \(\inf\{x:\hat F_n(x)\ge p\}\) 定义:在所有满足条件的 \(x\) 里取最小的(下确界)。\(n=500\)、\(p=0.05\) 时就是排序后第 25 个值。
- 二项分布与多元 Delta 方法。 定理 7.3 只用二项分布的均值 \(np\)、方差 \(np(1-p)\);例 7.13 的思路要用第 01 章 1.5.7 节的多元 Delta 方法。
怎么读这一章。 7.1.1–7.1.2(经验 CDF 的定义和逐点性质)、7.2.1–7.2.2(插入原则与线性泛函)是核心,篇幅不长但后面第 08 章 bootstrap 完全建立在上面。7.1.3–7.1.4 的两个定理记住结论即可,不需要会证明。7.2.4 的例子挑均值、方差、分位数读,相关系数那个例子知道"非线性泛函 = 线性泛函的光滑函数"这一结构就够了。7.3 的量化实战建议细读第一条解读(尾部才是难点),它对风险管理工作最有用。
7.1 经验分布函数
7.1.1 定义与直觉
手里只有 \(n\) 个观测 \(X_1,\dots,X_n\sim F\),对 \(F\) 不做任何假设,怎样估计 \(F\)?最自然的做法是:把每个数据点当作有 \(1/n\) 的概率。
定义 7.1. 经验分布函数(empirical distribution function,简称经验 CDF)是在每个数据点上放 \(1/n\) 质量的 CDF:
\(\hat F_n(x)\) 就是"样本中不超过 \(x\) 的比例"。它是一个阶梯函数,在每个数据点处上跳 \(1/n\)。
例 7.2(神经数据)。 Cox & Lewis (1966) 记录了神经纤维上相邻脉冲之间的 799 个等待时间。原书图 7.1 画出了它们的经验 CDF。等待时间介于 0.4 秒和 0.6 秒之间的比例估计为
7.1.2 固定点上的性质
定理 7.3. 对任意固定的 \(x\),
证明. 关键观察:\(I(X_i\le x)\) 是 IID 的 Bernoulli\((F(x))\) 变量,所以 \(n\hat F_n(x)\sim\text{Binomial}(n,F(x))\)。均值和方差直接由二项分布得到;无偏且方差趋于 0,故 MSE→0,由第 06 章定理 6.10 得相合。\(\square\)
推导拆解:固定一个 \(x\)(比如 \(x=-2\%\)),每一天的收益要么 \(\le-2\%\)(记 1),要么不是(记 0)。"记 1"的概率是 \(F(x)\),各天独立,所以 \(n\) 天里"记 1"的天数是二项分布 \(\text{Bin}(n,F(x))\)。\(\hat F_n(x)\) 就是这个天数除以 \(n\),于是 \(\mathbb E\hat F_n(x)=nF(x)/n=F(x)\),\(\mathbb V\hat F_n(x)=nF(x)(1-F(x))/n^2=F(x)(1-F(x))/n\)(常数 \(1/n\) 提出方差要平方)。 换句话说,"估计收益低于 −2% 的概率"和"估计信号胜率"是同一个问题——都是估计伯努利参数。
金融直觉:绝对误差与相对误差的差别可以用数字体会。\(n=1000\)、\(F(x)=0.01\)(99% VaR 附近),标准误 \(\sqrt{0.01\times0.99/1000}\approx0.0031\),绝对值很小;但相对于 0.01 本身是 31%。也就是说,"历史上 1% 的日子跌破某个水平"这件事,真实概率可能是 0.4% 也可能是 1.6%。
再用 CLT 还可得到 \(\sqrt n\big(\hat F_n(x)-F(x)\big)\rightsquigarrow N\big(0,F(x)(1-F(x))\big)\)(原书习题 4)。注意方差 \(F(1-F)\) 在 \(F(x)=1/2\) 处最大、在两端趋于 0:经验 CDF 在尾部的绝对误差小,但相对于尾部概率本身(如 1%)的相对误差很大。这一点对 VaR 估计很关键,见 7.3 节。
7.1.3 一致收敛:Glivenko–Cantelli 定理
定理 7.3 只说每个点上收敛。更强的结论是整条曲线一起收敛:
定理 7.4(Glivenko–Cantelli)。
这是"用历史数据代表未来分布"这一做法最基本的理论支撑——前提是数据 IID。Glivenko–Cantelli 只是经验过程(empirical processes)理论的冰山一角,后者是现代统计理论的基础。
7.1.4 有限样本误差界:DKW 不等式
Glivenko–Cantelli 不告诉我们收敛有多快。DKW 不等式给出了一个不依赖于 \(F\) 的有限样本界:
定理 7.5(Dvoretzky–Kiefer–Wolfowitz 不等式)。 对任意 \(\epsilon>0\),
把它和第 01 章的 Hoeffding 不等式对比:右边一模一样。Hoeffding 管的是一个点上的 \(\hat F_n(x)\),DKW 管的是所有 \(x\) 上的最大偏差——一致性没有付出额外代价,这是相当惊人的。
白话解释:为什么"同时对所有点成立"本来应该付出代价?想象你要同时检查 100 个独立的点,每个点出错概率 5%,那么至少一个出错的概率接近 \(1-0.95^{100}\approx99\%\)。这就是第 10b 章多重检验的问题。DKW 之所以不用付代价,是因为 \(\hat F_n\) 在不同 \(x\) 上的误差高度相关(同一批数据、曲线单调),一个点上误差大,邻近的点也大,"实际独立的检查"并不多。这里要注意顺序:\(\sup\) 在概率里面,意思是"整条曲线都落在带内"这一个事件的概率至少 \(1-\alpha\)。
\(F\) 的非参数置信带。 令
例 7.6. 神经数据 \(n=799\),95% 置信带的半宽
7.2 统计泛函与插入原则
7.2.1 插入估计量
回忆第 06 章:统计泛函 \(T(F)\) 是 \(F\) 的任意函数,例如均值 \(\mu=\int x\,dF(x)\)、方差 \(\sigma^2=\int(x-\mu)^2\,dF(x)\)、中位数 \(m=F^{-1}(1/2)\)。
定义 7.7(插入估计量,plug-in estimator)。 \(\theta=T(F)\) 的插入估计量是
插入原则的直觉很朴素:既然 \(\hat F_n\) 一致地逼近 \(F\),那么"\(F\) 的函数"就应该被"\(\hat F_n\) 的同一个函数"逼近。只要 \(T\) 足够"连续",这个直觉就是对的。
7.2.2 线性泛函
定义 7.8. 形如 \(T(F)=\int r(x)\,dF(x)\) 的泛函称为线性泛函(linear functional),因为 \(T(aF+bG)=aT(F)+bT(G)\)。
定理 7.9. 线性泛函的插入估计量是样本平均:
原因是 \(\hat F_n\) 在每个数据点放 \(1/n\) 的质量,"对 \(\hat F_n\) 积分"就是"对数据点等权求和"。这个简单事实把"积分"和"样本平均"统一了起来,也是第 08 章 bootstrap 的出发点。
金融直觉:"线性"的含义可以用组合来理解。把两个分布按权重混合 \(aF+bG\)(比如 60% 的日子来自平静市场 \(F\)、40% 来自动荡市场 \(G\)),期望收益就是 \(a\cdot\mathbb E_F+b\cdot\mathbb E_G\)——均值是线性泛函。但混合分布的方差不等于两个方差的加权平均(还多出两种状态均值差异带来的部分,正是第 01 章全方差公式),分位数(VaR)也不能简单加权,所以方差和 VaR 不是线性泛函。线性泛函的插入估计永远是简单平均;非线性泛函的插入估计也可以算,但标准误就没那么直接了。
7.2.3 正态区间
插入估计量的标准误有时可以算出来,很多时候不行——第 08 章的 bootstrap 给出了通用方法。在许多情况下
7.2.4 例子:常见统计量都是插入估计
例 7.10(均值)。 \(\hat\mu=\int x\,d\hat F_n(x)=\bar X_n\),\(\text{se}=\sigma/\sqrt n\),\(\widehat{\text{se}}=\hat\sigma/\sqrt n\),正态区间 \(\bar X_n\pm z_{\alpha/2}\widehat{\text{se}}\)。
例 7.11(方差)。 \(\sigma^2=\int x^2\,dF-\big(\int x\,dF\big)^2\),插入估计
例 7.12(偏度)。 偏度(skewness)
例 7.13(相关系数)。 设 \(Z=(X,Y)\)。相关系数可写成五个线性泛函的函数:\(\rho=a(T_1,\dots,T_5)\),其中
推导拆解:\(a(\cdot)\) 的写法来自三个熟悉的公式:\(\operatorname{Cov}(X,Y)=\mathbb E(XY)-\mathbb EX\,\mathbb EY=T_3-T_1T_2\),\(\mathbb V(X)=\mathbb EX^2-(\mathbb EX)^2=T_4-T_1^2\),\(\mathbb V(Y)=T_5-T_2^2\),再按 \(\rho=\operatorname{Cov}/\sqrt{\mathbb V(X)\mathbb V(Y)}\) 组合。把每个 \(T_j\) 换成样本平均后,分子分母同乘 \(n\),整理即得 \(\hat\rho\) 的熟悉形式。同理,Beta \(=\operatorname{Cov}(R_i,R_m)/\mathbb V(R_m)=(T_3-T_1T_2)/(T_5-T_2^2)\),只用四个线性泛函。
例 7.14(分位数)。 设 \(F\) 严格递增且有密度,\(0<p<1\),第 \(p\) 分位数 \(T(F)=F^{-1}(p)\)。\(\hat F_n\) 是阶梯函数、不可逆,为避免歧义定义
除均值外,上面这些估计量的标准误如何求?参数方法将在第 09 章给出公式,非参数情形则用第 08 章的 bootstrap。
7.2.5 两组比较
例 7.15(血浆胆固醇)。 Scott et al. (1978) 测量了 371 名胸痛患者的血浆胆固醇(mg/dl):51 人无心脏病证据,320 人有动脉狭窄。视为分别来自 \(F_1\)、\(F_2\) 的两组独立样本。
- 插入估计:\(\hat\mu_1=195.27\),\(\hat\mu_2=216.19\)。
- 标准误 \(\widehat{\text{se}}(\hat\mu)=\hat\sigma/\sqrt n\),得 \(\widehat{\text{se}}(\hat\mu_1)=5.0\),\(\widehat{\text{se}}(\hat\mu_2)=2.4\);95% 区间分别为 \((185,205)\) 和 \((211,221)\)。
- 差 \(\theta=T(F_2)-T(F_1)\) 的插入估计 \(\hat\theta=20.92\)。因两组独立,
\[\text{se}(\hat\theta)=\sqrt{\mathbb V(\hat\mu_2-\hat\mu_1)}=\sqrt{\text{se}^2(\hat\mu_1)+\text{se}^2(\hat\mu_2)},\qquad\widehat{\text{se}}=\sqrt{5^2+2.4^2}=5.55.\]
- 95% 区间 \(\hat\theta\pm2\widehat{\text{se}}=(9.8,\ 32.0)\)。
结论:动脉狭窄者的胆固醇似乎更高。但作者特别提醒:不能据此断言胆固醇导致心脏病。从统计关联到因果非常微妙(原书第 16 章)。量化研究里的因子与收益同理:相关不代表因果,回测里看到的关系可能来自共同的第三个因素或纯属巧合。
7.3 量化实战
7.3.1 历史模拟法 VaR/ES 就是插入估计
历史模拟法(historical simulation)是最常用的非参数风险度量方法,它和本章的关系一句话就能说清:
- \(p\) 水平的 VaR(以收益计)是收益分布的 \(p\) 分位数 \(F^{-1}(p)\),历史法 VaR 就是样本分位数 \(\hat F_n^{-1}(p)\)——插入估计。
- 预期损失 ES(expected shortfall)\(=\mathbb E[X\mid X\le F^{-1}(p)]=\frac1p\int_0^pF^{-1}(u)\,du\),历史法 ES 就是低于样本分位数的那些收益的平均——同样是插入估计。
所以"历史法"隐含的假设正是本章的假设:过去 \(n\) 天的收益是来自同一个 \(F\) 的 IID 样本。
推导拆解:ES 的积分式可以这样理解。若 \(U\sim U(0,1)\),则 \(F^{-1}(U)\) 与 \(X\) 同分布(第 01 章的逆变换抽样)。"\(X\) 落在最差的 \(p\) 部分"等价于"\(U\le p\)",所以 \(\mathbb E[X\mid X\le F^{-1}(p)]=\mathbb E[F^{-1}(U)\mid U\le p]\)。给定 \(U\le p\),\(U\) 在 \([0,p]\) 上均匀,密度 \(1/p\),于是条件期望 \(=\frac1p\int_0^pF^{-1}(u)\,du\)。直观地说:把最差的 \(p\) 比例的分位数逐一取出来平均。历史法对应的是:\(n=1000\)、\(p=2.5\%\) 时,把最差的 25 天收益取平均。
7.3.2 用 DKW 带给分位数加置信区间
DKW 置信带可以直接转化为分位数的置信区间。若 \(\sup_x|\hat F_n(x)-F(x)|\le\epsilon\),记 \(q=F^{-1}(p)\):
- 对任何 \(x<\hat F_n^{-1}(p-\epsilon)\),有 \(\hat F_n(x)<p-\epsilon\),从而 \(F(x)<p\),所以 \(q\ge\hat F_n^{-1}(p-\epsilon)\);
- 在 \(x=\hat F_n^{-1}(p+\epsilon)\) 处 \(\hat F_n(x)\ge p+\epsilon\),从而 \(F(x)\ge p\),所以 \(q\le\hat F_n^{-1}(p+\epsilon)\)。
于是
白话解释:上面两条的意思是把置信带"横过来读"。DKW 带是在竖直方向(概率)上给 \(\hat F_n\) 上下各留 \(\epsilon\) 的余量;要问分位数(水平方向)的范围,就看真实曲线 \(F\) 最早、最晚在哪里穿过高度 \(p\)。最早不会早于 \(\hat F_n\) 达到 \(p-\epsilon\) 的位置,最晚不会晚于 \(\hat F_n\) 达到 \(p+\epsilon\) 的位置。数值例:\(n=1000\)、\(\epsilon=0.043\),95% VaR(\(p=0.05\))的区间就是"样本中第 \(\lceil0.0071\times1000\rceil=8\) 小"到"第 \(\lceil0.0929\times1000\rceil=93\) 小"的收益之间——跨度很大。
下面的代码用 1000 天 \(t(4)\) 日收益演示:(a) 插入法 VaR/ES 及其 DKW 区间;(b) DKW 带对正态、\(t(2)\)、柯西三种分布的覆盖率;(c) 两个样本期平均收益之差的推断。
import numpy as np
from scipy import stats
rng = np.random.default_rng(7)
def q_hat(x, p):
"""样本分位数 F_n^{-1}(p) = inf{x: F_n(x) >= p}"""
xs = np.sort(x)
k = int(np.ceil(p * len(xs))) - 1
return xs[min(max(k, 0), len(xs) - 1)]
# 模拟 1000 天 t(4) 日收益(年化波动约 16%)
n, nu = 1000, 4
r = 0.0003 + 0.01 * rng.standard_t(nu, n) / np.sqrt(nu / (nu - 2))
true_q = lambda p: 0.0003 + 0.01 * stats.t.ppf(p, nu) / np.sqrt(nu / (nu - 2))
# (a) 插入估计:历史法 VaR / ES,以及 DKW 置信带推出的分位数区间
alpha = 0.05
eps = np.sqrt(np.log(2 / alpha) / (2 * n))
print(f"n={n}, DKW 95% 带半宽 eps={eps:.4f}")
for p in [0.01, 0.05, 0.50]:
q = q_hat(r, p)
lo = q_hat(r, p - eps) if p - eps > 0 else -np.inf
hi = q_hat(r, p + eps)
es = f" ES={r[r <= q].mean():+.4f}" if p < 0.5 else ""
print(f"p={p:.2f}: 插入分位数={q:+.4f} (真值 {true_q(p):+.4f}) DKW 区间=[{lo:+.4f}, {hi:+.4f}]{es}")
# (b) DKW 置信带覆盖率:与分布形状无关
R, cover = 2000, {}
for name, gen, cdf in [("正态", lambda m: rng.standard_normal(m), stats.norm.cdf),
("t(2)", lambda m: rng.standard_t(2, m), lambda x: stats.t.cdf(x, 2)),
("柯西", lambda m: rng.standard_cauchy(m), stats.cauchy.cdf)]:
hit = 0
for _ in range(R):
xs = np.sort(gen(250))
F = cdf(xs)
i = np.arange(1, 251) / 250
D = max(np.max(i - F), np.max(F - (i - 1 / 250))) # sup|F_n - F|
hit += D <= np.sqrt(np.log(40) / 500)
cover[name] = round(float(hit) / R, 3)
print("n=250 时 DKW 95% 带的实际覆盖率:", cover)
# (c) 两段样本的均值差:插入估计 + 独立样本标准误
r1 = 0.0008 + 0.012 * rng.standard_normal(500) # 样本期 1
r2 = 0.0002 + 0.012 * rng.standard_normal(500) # 样本期 2
m1, m2 = r1.mean(), r2.mean()
se1, se2 = r1.std() / np.sqrt(len(r1)), r2.std() / np.sqrt(len(r2))
d, se_d = m1 - m2, np.hypot(se1, se2)
print(f"均值差={d*1e4:.2f}bp se={se_d*1e4:.2f}bp 95%区间=({(d-2*se_d)*1e4:.2f}, {(d+2*se_d)*1e4:.2f})bp")
print(f"插入偏度={stats.skew(r):.3f} 插入峰度={stats.kurtosis(r, fisher=False):.2f}")
输出:
n=1000, DKW 95% 带半宽 eps=0.0429
p=0.01: 插入分位数=-0.0245 (真值 -0.0262) DKW 区间=[-inf, -0.0165] ES=-0.0286
p=0.05: 插入分位数=-0.0168 (真值 -0.0148) DKW 区间=[-0.0253, -0.0119] ES=-0.0211
p=0.50: 插入分位数=-0.0002 (真值 +0.0003) DKW 区间=[-0.0010, +0.0006]
n=250 时 DKW 95% 带的实际覆盖率: {'正态': 0.957, 't(2)': 0.959, '柯西': 0.961}
均值差=6.66bp se=7.50bp 95%区间=(-8.34, 21.65)bp
插入偏度=0.084 插入峰度=4.96
解读。
- 尾部才是难点。 四年的日数据(\(n=1000\)),DKW 带半宽 \(\epsilon_n=0.043\),已经超过 1% 这个尾部概率本身,所以 99% VaR 的 DKW 区间下界是 \(-\infty\);95% VaR 的区间 \([-2.53\%,-1.19\%]\) 宽达一倍多。中位数则估得很准。原因在 7.1.2 节:DKW 对整条曲线给出同一个绝对误差,在尾部这个误差相对于 \(p\) 太大了。DKW 是同时对所有 \(p\) 成立的保守区间,单个分位数可以用更窄的方法(基于二项分布的次序统计量区间,或第 08 章的 bootstrap),但"尾部数据稀少"这一根本限制无法消除。监管上用 99% 甚至 99.9% 的风险度量,历史法单靠几年数据必然很不稳定,这是参数法、极值理论(EVT)和压力测试存在的原因。
- DKW 真的与分布无关。 正态、\(t(2)\)(方差无穷)、柯西(均值都不存在)三种分布下,95% 置信带的实际覆盖率都在 95.7%–96.1%,略高于名义值(DKW 界本身略保守)。这是非参数方法的魅力:不需要矩存在。
- 两个样本期的平均收益差。 两段各 500 天、真实日均收益相差 6bp 的样本,估计差 6.66bp,但标准误 7.5bp,95% 区间包含 0——即使真实差异存在,两年数据也分辨不出来。"策略在后半段失效了"这类结论,常常经不起这样一个简单的标准误检查。注意例 7.15 的公式要求两组独立;比较同一时期的两个策略时,应直接对每日收益之差求均值和标准误。
- 插入偏度/峰度。 \(t(4)\) 的真实峰度无穷,样本峰度 4.96 只是一个不稳定的数,换一个样本可能大不相同。偏度、峰度这类高阶矩的插入估计在厚尾数据下噪声很大,其标准误需要 bootstrap(第 08 章例 8.2),而在矩不存在时连 bootstrap 也会失效。
7.3.3 本章方法在量化中的位置
- 插入原则无处不在:样本均值、波动率、偏度、峰度、相关矩阵、Beta、历史 VaR,全是插入估计。"把经验分布当真分布"也是回测本身的隐含假设。
- IID 假设要打折扣:金融收益有波动聚集,近期的 \(F\) 和三年前的 \(F\) 未必相同。实务中常用指数加权的经验分布(给近期观测更大权重)或"过滤历史模拟"(先用 GARCH 标准化收益,再对标准化残差做经验分布,见第 06 册),本质上都是在修正"同分布"这一条。
- DKW 的其他用途:检验两个经验分布是否相同(Kolmogorov–Smirnov 检验,统计量正是 \(\sup|\hat F_n-F|\) 型),以及检验模型预测分布的校准性(PIT 值是否均匀)。
本章小结
经验分布函数 \(\hat F_n\) 在每个数据点放 \(1/n\) 质量,在每个点上无偏、相合(\(n\hat F_n(x)\) 服从二项分布),并且由 Glivenko–Cantelli 定理一致收敛到 \(F\);DKW 不等式给出与分布无关的有限样本一致误差界 \(2e^{-2n\epsilon^2}\),由此得到对所有 \(x\) 同时成立的置信带。插入原则用 \(T(\hat F_n)\) 估计 \(T(F)\):线性泛函的插入估计就是样本平均,均值、方差、偏度、相关系数、分位数都是插入估计量;配合标准误可以构造正态区间,独立两组之差的标准误是各自标准误的平方和开方。历史模拟法 VaR/ES 是插入估计,其主要弱点是尾部数据稀少和收益非 IID。
| 概念 | 公式 / 结论 |
|---|---|
| 经验 CDF | \(\hat F_n(x)=\frac1n\sum I(X_i\le x)\) |
| 点态性质 | \(\mathbb E\hat F_n(x)=F(x)\),\(\mathbb V\hat F_n(x)=F(x)(1-F(x))/n\) |
| Glivenko–Cantelli | \(\sup_x\lvert\hat F_n(x)-F(x)\rvert\to0\) |
| DKW | \(\mathbb P(\sup_x\lvert\hat F_n-F\rvert>\epsilon)\le2e^{-2n\epsilon^2}\) |
| 置信带 | \(\hat F_n(x)\pm\epsilon_n\),\(\epsilon_n=\sqrt{\log(2/\alpha)/(2n)}\),截断到 \([0,1]\) |
| 插入估计 | \(\hat\theta_n=T(\hat F_n)\) |
| 线性泛函 | \(T(\hat F_n)=\frac1n\sum r(X_i)\) |
| 样本分位数 | \(\hat F_n^{-1}(p)=\inf\{x:\hat F_n(x)\ge p\}\) |
| 正态区间 | \(T(\hat F_n)\pm z_{\alpha/2}\widehat{\text{se}}\) |
| 独立两组之差 | \(\widehat{\text{se}}=\sqrt{\widehat{\text{se}}_1^2+\widehat{\text{se}}_2^2}\) |
练习
基础
- 证明定理 7.3。
- 用 CLT 求 \(\hat F_n(x)\) 的极限分布。(答案:\(\sqrt n(\hat F_n(x)-F(x))\rightsquigarrow N(0,F(x)(1-F(x)))\)。)
- 设 \(\theta=F(b)-F(a)\)。写出插入估计、标准误估计和近似 \(1-\alpha\) 区间。(答案:\(\hat\theta=\hat F_n(b)-\hat F_n(a)\),它是落入 \((a,b]\) 的比例,\(\widehat{\text{se}}=\sqrt{\hat\theta(1-\hat\theta)/n}\)。)
- 两种抗生素:A 治愈 90/100,B 治愈 85/100。求 \(\theta=p_1-p_2\) 的估计、标准误、80% 和 95% 区间。(答案:\(\hat\theta=0.05\),\(\widehat{\text{se}}=\sqrt{0.9\cdot0.1/100+0.85\cdot0.15/100}\approx0.0466\);80% 区间约 \((-0.010,0.110)\),95% 区间约 \((-0.041,0.141)\)。)
- 某账户有 750 个交易日的历史收益。用 DKW 不等式计算 95% 置信带半宽,并判断 97.5% VaR(\(p=0.025\))的 DKW 区间下界是否有限。(答案:\(\epsilon_n=\sqrt{\log40/1500}\approx0.0496>0.025\),下界为 \(-\infty\)。)
进阶
- 求 \(\text{Cov}(\hat F_n(x),\hat F_n(y))\)。(答案:\(x\le y\) 时为 \(F(x)(1-F(y))/n\)。提示:\(\text{Cov}(I(X\le x),I(X\le y))=F(\min(x,y))-F(x)F(y)\)。)
- 把 ES 写成统计泛函 \(T(F)=\frac1p\int_0^pF^{-1}(u)\,du\),说明历史法 ES 是它的插入估计(忽略 \(np\) 非整数时的细节)。ES 是线性泛函吗?(提示:不是;分位数不是 \(F\) 的线性函数。)
- 计算机实验(原书习题 3 的改编):分别从 \(N(0,1)\) 和柯西分布各抽 100 个观测,画出经验 CDF 与 95% DKW 带,重复 1000 次统计覆盖率。再把数据换成 GARCH(1,1) 模拟的收益(参数自选),覆盖率还能保持 95% 吗?为什么?
- 用例 7.13 的结构和多元 Delta 方法,推导 \(\hat\rho\) 在二元正态下的渐近方差。(答案:\((1-\rho^2)^2/n\)。这个计算较长,可只写出思路;也可以先跳到第 08 章,用 bootstrap 数值验证。)
原书推荐习题:第 7 章习题 3(DKW 覆盖率模拟,正态与柯西对比)、4、5、6、9;有数据的习题 7(斐济地震震级)、8(老忠实泉)、10(人工降雨实验)需要从作者网站下载数据,可选做。
原书对照
| 本章内容 | 原书章节 | PDF 页码 |
|---|---|---|
| 经验分布函数、定理 7.3、Glivenko–Cantelli、DKW、置信带 | 7.1 | p.110–112 |
| 统计泛函、插入估计、线性泛函、例 7.10–7.15 | 7.2 | p.112–116 |
| 文献注(经验过程) | 7.3 | p.117 |
| 习题 | 7.4 | p.117–118 |