量化交易中文教材

第 06 章 统计推断的基本框架

本章对应 Wasserman 原书第 6 章《模型、统计推断与学习》。它篇幅不长,但定义了整个第 II 部分的语言:模型、参数、估计量、偏差、标准误、均方误差、置信区间、假设检验。后面每一章(经验分布、bootstrap、最大似然、假设检验、贝叶斯)都是在回答这里提出的问题。

学习目标

  1. 区分参数模型与非参数模型,理解"感兴趣参数"与"冗余参数",能把均值、方差、中位数、相关系数等目标写成统计泛函 \(T(F)\)。
  2. 理解回归函数 \(r(x)=\mathbb E(Y\mid X=x)\),以及任何回归都可写成 \(Y=r(X)+\epsilon\)、\(\mathbb E\epsilon=0\) 的原因。
  3. 掌握点估计的评价标准:偏差、标准误、均方误差、相合性、渐近正态性,会证明 MSE = 偏差² + 方差。
  4. 准确理解置信区间的含义:随机的是区间,不是参数;会构造基于正态近似的区间和基于 Hoeffding 的有限样本区间,并比较它们。
  5. 了解假设检验的基本框架(原假设、备择假设、检验统计量)。
  6. 能把以上概念用到回测指标上:任何回测数字都是带抽样误差的估计量。

读前导读

这一章在解决什么问题。 CFA 一级的"抽样与估计"给过你一套操作:样本均值估计总体均值,标准误 \(s/\sqrt n\),置信区间 \(\bar x\pm1.96\,s/\sqrt n\)。这一章把这套操作抽象成通用语言,使它能套到任何目标上,包括 Sharpe 比率、VaR、因子 IC、回归系数。核心只有三句话:你想知道的东西是真实分布 \(F\) 的某个函数 \(T(F)\);你手里的估计量是数据的函数,所以是随机变量;评价估计量看它离真值平均有多远(MSE),而 MSE = 偏差² + 方差。

对你最有用的改变是视角:回测报告里的"年化 Sharpe 1.2"不是策略的属性,而是一个估计量的一次实现。审计里你习惯区分"账面数"和"真实经济实质",这里是同样的区分——\(\hat\theta_n\) 是账面数,\(\theta\) 是实质,标准误告诉你两者可能差多远。

需要先想起来的数学。

  • 期望的线性与"展开平方"。 \(\mathbb E(aX+b)=a\mathbb EX+b\);\((u+v)^2=u^2+2uv+v^2\)。定理 6.9 的证明就只用这两件事:在 \(\hat\theta-\theta\) 中间插入 \(\pm\mathbb E\hat\theta\) 再展开。例:估计量取 1.1 或 0.7 各半,真值 1,则均值 0.9、偏差 −0.1、方差 0.04,MSE \(=0.01+0.04=0.05\),直接算 \(\tfrac12(0.01)+\tfrac12(0.09)=0.05\)。见 第 00 册第 07 章 概率中的分析工具。
  • 条件期望与迭代期望。 \(\mathbb E(Y\mid X)\) 是"知道 \(X\) 后对 \(Y\) 的最佳平均预测",本身是 \(X\) 的函数;\(\mathbb E[\mathbb E(Y\mid X)]=\mathbb EY\),即"分组平均再平均 = 总平均"。回归函数那一段要用。同见第 07 章。
  • 函数的函数(泛函)。 普通函数输入一个数、输出一个数;泛函输入一个分布(整条曲线)、输出一个数。均值、方差、分位数都是泛函。不必掌握更多。
  • \(\inf\)、\(\liminf\)。 \(\inf_\theta\) 是"对所有 \(\theta\) 取最坏(最小)值";\(\liminf_n\) 第一次读可理解为"\(n\) 很大以后的最低水平"。只在 6.4.4 附录出现。见 第 00 册第 01 章 函数极限与连续。

怎么读这一章。 6.3(偏差、标准误、MSE、相合性)和 6.4.1–6.4.3(置信区间的含义与两种构造)是核心,必须读懂。6.2 的模型分类和回归函数读一遍留下印象即可,后面章节会反复回来。6.4.2 的 Berger–Wolpert 反例值得花十分钟,它会彻底纠正"参数有 95% 的概率落在区间里"这种说法。6.4.4 附录和 6.5 第一次可以略读。最后一定要看 6.6 的解读 (b):收缩估计是本章概念在组合管理里最直接的用处。


6.1 什么是统计推断

统计推断(statistical inference),在计算机科学里叫"学习"(learning),是用数据推断生成数据的分布的过程。典型问题是:给定样本 \(X_1,\dots,X_n\sim F\),我们对 \(F\) 能说什么?有时我们要整个 \(F\),有时只要它的某个特征,比如均值。

放到量化交易里:\(X_i\) 是某策略第 \(i\) 天的收益,\(F\) 是"策略收益的真实分布"。我们能看到的只有历史上的 \(n\) 个数,想知道的是 \(F\) 的均值(真实期望收益)、标准差(真实波动)、左尾分位数(真实 VaR),以及这些量估得有多准。

6.2 统计模型

6.2.1 参数模型与非参数模型

统计模型(statistical model)\(\mathfrak F\) 是一组分布(或密度、回归函数)的集合。

参数模型(parametric model)可以由有限个参数刻画,一般写作

\[\mathfrak F=\{f(x;\theta):\theta\in\Theta\},\]
\(\theta\) 是未知参数(可以是向量),\(\Theta\) 是参数空间(parameter space)。例如正态模型
\[\mathfrak F=\Big\{f(x;\mu,\sigma)=\frac1{\sigma\sqrt{2\pi}}\exp\Big\{-\frac{(x-\mu)^2}{2\sigma^2}\Big\}:\ \mu\in\mathbb R,\ \sigma>0\Big\}\]
是两参数模型。记号 \(f(x;\mu,\sigma)\) 中,分号前的 \(x\) 是变量取值,分号后的是参数。

如果只关心 \(\theta\) 的某个分量,其余分量称为冗余参数(nuisance parameters)。例如在正态模型中只想估计 \(\mu\),\(\sigma\) 就是冗余参数。量化里的例子:用 CAPM 回归估计某基金的 alpha 时,市场 beta 和残差波动率都是冗余参数——我们不关心它们,但它们影响 alpha 估计的精度。

非参数模型(nonparametric model)不能由有限个参数刻画。最极端的例子是 \(\mathfrak F_{ALL}=\{\text{所有 CDF}\}\)。参数与非参数的严格区分其实很微妙,本书不追究。

6.2.2 六个典型推断问题

原书用六个例子勾勒出推断问题的版图:

  • 例 6.1(一维参数估计):\(X_i\) 独立 Bernoulli\((p)\),估计 \(p\)。对应"估计信号胜率"。
  • 例 6.2(二维参数估计):假设 \(X_i\) 来自正态模型,估计 \(\mu,\sigma\);只关心 \(\mu\) 时 \(\sigma\) 是冗余参数。
  • 例 6.3(CDF 的非参数估计):只假设 \(F\in\mathfrak F_{ALL}\),估计整个 \(F\)。这是第 07 章的主题,也是历史模拟法 VaR 的理论基础。
  • 例 6.4(非参数密度估计):估计 \(f=F'\)。只假设 \(F\in\mathfrak F_{ALL}\) 是做不到的,需要加光滑性假设,例如 \(f\) 属于 Sobolev 空间 \(\mathfrak F_{SOB}=\{f:\int(f''(x))^2dx<\infty\}\)——"不太扭曲(not too wiggly)"的函数。原书第 20 章展开。
  • 例 6.5(泛函的非参数估计):只假设均值存在,估计 \(\mu=\int x\,dF(x)\)。
  • 例 6.6(回归、预测与分类):见下一小节。

6.2.3 统计泛函

例 6.5 引出本书最重要的概念之一。均值 \(\mu=\int x\,dF(x)\) 可以看成"输入一个分布 \(F\)、输出一个数"的函数 \(\mu=T(F)\)。一般地,\(F\) 的任意函数都称为统计泛函(statistical functional)。例如:

  • 均值 \(T(F)=\int x\,dF(x)\);
  • 方差 \(T(F)=\int x^2\,dF(x)-\big(\int x\,dF(x)\big)^2\);
  • 中位数 \(T(F)=F^{-1}(1/2)\);
  • 5% 分位数(即 95% VaR 的相反数)\(T(F)=F^{-1}(0.05)\)。

把目标写成 \(T(F)\) 的好处是:一旦有了 \(F\) 的估计 \(\hat F\),就可以用 \(T(\hat F)\) 估计 \(T(F)\)。这就是第 07 章的插入原则。

白话解释:把 \(T\) 想成一个"计算规则",\(F\) 是"输入的完整收益分布"。规则"取平均"作用在真实分布上得到真实期望收益,作用在历史 \(n\) 天的经验分布上得到样本均值——同一个规则,换了输入。历史模拟法 VaR 就是这样做的:规则是"取 5% 分位数",把历史收益当作分布直接代进去。这种看法的好处是统一:不管目标是均值、VaR 还是 Sharpe,估计方法都是"规则不变,用数据分布替换真实分布"。

6.2.4 回归函数

观测成对数据 \((X_1,Y_1),\dots,(X_n,Y_n)\)。\(X\) 有许多名字:预测变量(predictor)、回归变量(regressor)、特征(feature)、自变量(independent variable);\(Y\) 叫结果(outcome)、响应变量(response variable)、因变量(dependent variable)。函数

\[r(x)=\mathbb E(Y\mid X=x)\]
称为回归函数(regression function)。\(r\) 属于某个有限维集合(如所有直线)时是参数回归,否则是非参数回归。用新个体的 \(X\) 预测 \(Y\) 叫预测(prediction);\(Y\) 离散时叫分类(classification);估计函数 \(r\) 本身叫回归或曲线估计(curve estimation)。

回归模型常写成

\[Y=r(X)+\epsilon,\qquad\mathbb E(\epsilon)=0.\]
这不是一个假设,而是一个恒等式:令 \(\epsilon=Y-r(X)\),由迭代期望,
\[\mathbb E\epsilon=\mathbb E\big[\mathbb E(\epsilon\mid X)\big]=\mathbb E\big[\mathbb E(Y\mid X)-r(X)\big]=0.\]
实际上更强的 \(\mathbb E(\epsilon\mid X)=0\) 也成立。所以"误差均值为零"永远可以做到,真正有内容的假设是 \(r\) 的形式(如线性)和 \(\epsilon\) 的分布(如同方差、正态)。

推导拆解:第一个等号是迭代期望 \(\mathbb E\epsilon=\mathbb E[\mathbb E(\epsilon\mid X)]\)。第二个等号把 \(\epsilon=Y-r(X)\) 代入内层:给定 \(X\) 后 \(r(X)\) 是已知的数,可以直接拿出条件期望,所以 \(\mathbb E(\epsilon\mid X)=\mathbb E(Y\mid X)-r(X)\)。第三个等号用了定义 \(r(X)=\mathbb E(Y\mid X)\),两项相减为 0。注意内层已经是 0,这就是"\(\mathbb E(\epsilon\mid X)=0\) 也成立"。 对照 CFA 的线性回归假设:那里"误差均值为零"之所以算一条假设,是因为它和"\(r\) 是线性的"绑在一起——如果真实的 \(r\) 是曲线而你硬套直线,残差 \(Y-(a+bX)\) 在某些 \(X\) 处系统性为正、某些处为负,条件均值就不为 0 了。

在量化里,\(X\) 是因子暴露(估值、动量、质量……),\(Y\) 是下期收益,\(r(x)\) 是"给定因子暴露时的条件期望收益"。因子研究的全部工作可以概括为:估计 \(r\),并判断估计是否可靠。预测涨跌方向则是分类问题。

6.2.5 本书的两点安排

先讲非参数,再讲参数。 多数入门课先讲参数推断(最大似然),本书反过来,因为非参数方法在某些方面更好理解、也更有用。所以第 07–08 章(经验分布、bootstrap)在前,第 09 章(参数推断)在后。

频率学派与贝叶斯学派。 两大推断范式本书都讲,先讲频率学派(frequentist),贝叶斯推断见本册第 11 章,两者的优劣比较留到那里。

记号约定。 在参数模型中

\[\mathbb P_\theta(X\in A)=\int_Af(x;\theta)\,dx,\qquad\mathbb E_\theta\,r(X)=\int r(x)f(x;\theta)\,dx.\]
下标 \(\theta\) 表示"在参数等于 \(\theta\) 的分布下求概率或期望",不是对 \(\theta\) 求平均。


6.3 点估计

6.3.1 估计量是随机变量

点估计(point estimation)指对某个感兴趣的量给出一个"最佳猜测"。对象可以是参数 \(\theta\)、CDF \(F\)、密度 \(f\)、回归函数 \(r\),也可以是某个随机变量的未来值。点估计记为 \(\hat\theta\) 或 \(\hat\theta_n\)。

形式上,\(X_1,\dots,X_n\) IID 来自 \(F\),\(\theta\) 的点估计量(point estimator)是数据的函数

\[\hat\theta_n=g(X_1,\dots,X_n).\]

必须牢记一个区别:\(\theta\) 是固定的未知常数;\(\hat\theta_n\) 依赖数据,是随机变量。 回测出来的 Sharpe 比率 1.2 是 \(\hat\theta_n\) 的一次实现;如果历史重演一次、噪声换一换,你会得到另一个数。

6.3.2 偏差、标准误与均方误差

偏差(bias):

\[\text{bias}(\hat\theta_n)=\mathbb E_\theta(\hat\theta_n)-\theta.\]
\(\mathbb E_\theta(\hat\theta_n)=\theta\) 时称无偏(unbiased)。作者特别指出:无偏性过去很受重视,如今被认为没那么重要,本书许多估计量都是有偏的。

抽样分布与标准误。 \(\hat\theta_n\) 的分布称为抽样分布(sampling distribution),其标准差称为标准误(standard error):

\[\text{se}=\text{se}(\hat\theta_n)=\sqrt{\mathbb V(\hat\theta_n)}.\]
se 通常依赖未知的 \(F\),本身也未知,但一般可以估计,估计值记作 \(\widehat{\text{se}}\)。注意区分:标准差描述数据的离散程度,标准误描述估计量的离散程度。

例 6.8(伯努利)。 \(\hat p_n=\frac1n\sum X_i\),\(\mathbb E\hat p_n=p\),无偏;

\[\text{se}=\sqrt{\frac{p(1-p)}n},\qquad\widehat{\text{se}}=\sqrt{\frac{\hat p_n(1-\hat p_n)}n}.\]

均方误差(mean squared error, MSE):

\[\text{MSE}=\mathbb E_\theta(\hat\theta_n-\theta)^2.\]
这里的期望是对数据的联合分布 \(f(x_1,\dots,x_n;\theta)=\prod_if(x_i;\theta)\) 求的。

定理 6.9(偏差-方差分解)。

\[\text{MSE}=\text{bias}^2(\hat\theta_n)+\mathbb V_\theta(\hat\theta_n).\]

证明. 令 \(\bar\theta_n=\mathbb E_\theta\hat\theta_n\),则

\[\mathbb E(\hat\theta_n-\theta)^2=\mathbb E(\hat\theta_n-\bar\theta_n)^2+2(\bar\theta_n-\theta)\,\mathbb E(\hat\theta_n-\bar\theta_n)+(\bar\theta_n-\theta)^2,\]
中间项因 \(\mathbb E(\hat\theta_n-\bar\theta_n)=0\) 而消失。\(\square\)

推导拆解:关键是"加一项减一项":\(\hat\theta_n-\theta=(\hat\theta_n-\bar\theta_n)+(\bar\theta_n-\theta)\),前一段是随机波动,后一段是固定的偏差。用 \((u+v)^2=u^2+2uv+v^2\) 展开后取期望。\(\bar\theta_n-\theta\) 是常数,可以提到期望外面,所以中间项是 \(2(\bar\theta_n-\theta)\cdot\mathbb E(\hat\theta_n-\bar\theta_n)\),而一个随机变量减去自己的均值,期望为 0。剩下第一项是方差的定义,第三项是偏差的平方。

金融直觉:这和投资里"跟踪误差"的分解是一回事。组合相对基准的均方偏离 = 平均偏离(系统性的偏差)² + 偏离的波动(跟踪误差的方差)。一个总是落后基准 10bp、但几乎不波动的指数基金,可能比一个平均不落后、但上下乱跳 2% 的组合"离基准更近"。估计量也一样:小的系统性偏差换来大幅降低的随机误差,是划算的。

这个分解说明:降低 MSE 有两条路,减偏差或减方差,二者常常此消彼长。 有意引入一点偏差、换取方差大幅下降,往往能让 MSE 更小。这就是收缩估计、正则化的出发点,也是原书习题 2、3 想让读者体会的:在 Uniform\((0,\theta)\) 下,有偏的 \(\max X_i\) 比无偏的 \(2\bar X_n\) 的 MSE 小得多(见 6.6 节代码)。

6.3.3 相合性与渐近正态性

定义 6.7(相合性,consistency)。 若 \(\hat\theta_n\xrightarrow{P}\theta\),称 \(\hat\theta_n\) 是相合的。这是对估计量最起码的要求:数据越多,越接近真值。

定理 6.10. 若 \(n\to\infty\) 时 \(\text{bias}\to0\) 且 \(\text{se}\to0\),则 \(\hat\theta_n\) 相合。

证明. 由定理 6.9,\(\text{MSE}\to0\),即 \(\hat\theta_n\xrightarrow{qm}\theta\)。均方收敛蕴含依概率收敛(第 01 章 1.5.3 节)。(原书此处引用写作"定理 5.4(b)",按其内容应为 5.4(a)。)\(\square\)

例 6.11. 伯努利的 \(\hat p_n\) 无偏,且 \(\text{se}=\sqrt{p(1-p)/n}\to0\),所以相合。

定义 6.12(渐近正态,asymptotically Normal)。

\[\frac{\hat\theta_n-\theta}{\text{se}}\rightsquigarrow N(0,1).\]
许多估计量都渐近正态:样本均值靠 CLT,样本均值的光滑函数靠 Delta 方法,最大似然估计在第 09 章证明。


6.4 置信集

6.4.1 定义

参数 \(\theta\) 的 \(1-\alpha\) 置信区间(confidence interval)是 \(C_n=(a,b)\),其中 \(a=a(X_1,\dots,X_n)\)、\(b=b(X_1,\dots,X_n)\) 是数据的函数,满足

\[\mathbb P_\theta(\theta\in C_n)\ge1-\alpha,\qquad\text{对所有 }\theta\in\Theta.\]
\(1-\alpha\) 称为覆盖率(coverage),常取 95%。\(\theta\) 是向量时用置信集(球、椭球等)。

警告:\(C_n\) 是随机的,\(\theta\) 是固定的。 置信区间不是关于 \(\theta\) 的概率陈述。

6.4.2 怎样正确理解置信区间

常见的教科书解释是"重复同一实验,区间有 95% 的时间包含参数"。Wasserman 认为这虽然正确但没什么用,因为我们很少重复同一实验。他给出一个更好的解释:

第 1 天你收集数据,为参数 \(\theta_1\) 构造一个 95% 区间;第 2 天收集新数据,为一个毫不相干的参数 \(\theta_2\) 构造 95% 区间;如此继续。在你构造的所有区间里,有 95% 套住了各自的真参数。

例 6.13(民调)。 报纸说"83% 的人支持给飞行员配枪,误差 ±4 个百分点,95% 的时间准确",意思是 \(83\pm4\) 是 95% 置信区间。如果你余生每天都这样构造区间,95% 会包含真参数——即使每天问的是不同的问题。

这个解释非常适合研究团队:一位研究员长期报告的所有 95% 区间里,大约有 5% 是错的——而他事先不知道是哪 5%。

例 6.14(Berger & Wolpert 的反例)。 这个例子说明为什么不能把置信区间读成关于 \(\theta\) 的概率。\(\theta\) 是固定实数,\(X_1,X_2\) 独立且 \(\mathbb P(X_i=1)=\mathbb P(X_i=-1)=1/2\),我们只观测 \(Y_i=\theta+X_i\)。定义只含一个点的"区间":

\[C=\begin{cases}\{Y_1-1\}&Y_1=Y_2,\\ \{(Y_1+Y_2)/2\}&Y_1\neq Y_2.\end{cases}\]
覆盖率计算:\(Y_1\neq Y_2\)(概率 1/2)时 \(X_1=-X_2\),\((Y_1+Y_2)/2=\theta\),必然套中;\(Y_1=Y_2\)(概率 1/2)时,\(Y_1-1=\theta\) 当且仅当 \(X_1=1\),条件概率 1/2。所以无论 \(\theta\) 为何,\(\mathbb P_\theta(\theta\in C)=\frac12+\frac14=\frac34\),\(C\) 是 75% 置信区间。

推导拆解:把四种等可能的情形列出来最清楚(每种概率 1/4): \((X_1,X_2)=(1,1)\):\(Y_1=Y_2=\theta+1\),\(C=\{\theta\}\),套中。 \((X_1,X_2)=(-1,-1)\):\(Y_1=Y_2=\theta-1\),\(C=\{\theta-2\}\),没套中。 \((1,-1)\) 或 \((-1,1)\):\(Y_1\ne Y_2\),平均值恰好是 \(\theta\),套中。 四种里三种套中,覆盖率 3/4,而且推理中没用到 \(\theta\) 的具体值,所以对所有 \(\theta\) 都成立。

现在设观测到 \(Y_1=15\)、\(Y_2=17\)。区间是 \(\{16\}\),而此时我们确定 \(\theta=16\)。说"\(\{16\}\) 是 75% 置信区间"没有错,但它显然不是说"\(\theta=16\) 的概率是 75%"。频率意义的 75% 是对程序的保证,不是对这一次数据下 \(\theta\) 的信念。第 11 章的贝叶斯方法把 \(\theta\) 当作随机变量,给出"给定数据时 \(\theta\in C_n\) 的概率为 95%"这类陈述,但那是信念度概率,一般不保证 95% 的时间套住参数。

6.4.3 两种构造方法

有限样本区间:Hoeffding(例 6.15)。 对伯努利参数,

\[C_n=(\hat p_n-\epsilon_n,\ \hat p_n+\epsilon_n),\qquad\epsilon_n^2=\frac{\log(2/\alpha)}{2n}.\]
由 Hoeffding 不等式(第 01 章 1.4.3 节),对所有 \(p\) 和所有 \(n\) 都有 \(\mathbb P(p\in C_n)\ge1-\alpha\)。

渐近区间:基于正态(定理 6.16)。 设 \(\hat\theta_n\approx N(\theta,\widehat{\text{se}}^2)\),\(z_{\alpha/2}=\Phi^{-1}(1-\alpha/2)\),令

\[C_n=\big(\hat\theta_n-z_{\alpha/2}\,\widehat{\text{se}},\ \ \hat\theta_n+z_{\alpha/2}\,\widehat{\text{se}}\big),\]
则 \(\mathbb P_\theta(\theta\in C_n)\to1-\alpha\)。

证明. 令 \(Z_n=(\hat\theta_n-\theta)/\widehat{\text{se}}\rightsquigarrow Z\sim N(0,1)\),则

\[\mathbb P\big(\hat\theta_n-z_{\alpha/2}\widehat{\text{se}}<\theta<\hat\theta_n+z_{\alpha/2}\widehat{\text{se}}\big)=\mathbb P(-z_{\alpha/2}<Z_n<z_{\alpha/2})\to1-\alpha.\ \square\]

95% 时 \(z_{0.025}=1.96\approx2\),得到最常用的经验法则:估计值 ± 2 倍标准误。

推导拆解:证明里唯一的技巧是把"\(\theta\) 落在区间里"改写成"标准化统计量落在 \(\pm z\) 之间":\(\hat\theta_n-z\widehat{\text{se}}<\theta<\hat\theta_n+z\widehat{\text{se}}\) 各边减 \(\hat\theta_n\)、除以 \(-\widehat{\text{se}}\)(除以负数时不等号翻转),得到 \(-z<(\hat\theta_n-\theta)/\widehat{\text{se}}<z\)。这一步说明了置信区间的本质:随机的是区间的位置,它以 \(\hat\theta_n\) 为中心随样本跳动;\(\theta\) 一直不动。分母用估计的 \(\widehat{\text{se}}\) 仍然成立,靠的是第 01 章的 Slutsky 定理。 读法上,\(z_{\alpha/2}=\Phi^{-1}(1-\alpha/2)\) 就是 CFA 里查表得到的"临界值":\(\alpha=0.05\) 时 1.96,\(\alpha=0.10\) 时 1.645,\(\alpha=0.01\) 时 2.576。

例 6.17(Wald 区间)。 伯努利情形 \(\hat p_n\pm z_{\alpha/2}\sqrt{\hat p_n(1-\hat p_n)/n}\)。与 Hoeffding 区间相比:正态区间更短,但覆盖率只在大样本下近似正确;Hoeffding 区间对任何 \(n\) 严格成立,但更宽。第 01 章 1.6.1 节的模拟给出了具体数字:\(n=20\) 时 Wald 区间覆盖率约 92%,Hoeffding 约 99.8%。

6.4.4 附录:三种覆盖保证

本书的定义要求对所有 \(\theta\)、对给定的 \(n\) 覆盖率至少 \(1-\alpha\)(有限样本保证)。还有两个较弱的版本:

  • 逐点渐近(pointwise asymptotic):对每个 \(\theta\),\(\liminf_n\mathbb P_\theta(\theta\in C_n)\ge1-\alpha\);
  • 一致渐近(uniform asymptotic):\(\liminf_n\inf_\theta\mathbb P_\theta(\theta\in C_n)\ge1-\alpha\)。

白话解释:三种保证的区别在于"对谁、什么时候"兑现 95%。有限样本保证:现在、对所有可能的真值都兑现。逐点渐近:对每一个真值,最终会兑现,但不同真值需要的样本量可以差很多。一致渐近:存在一个统一的样本量门槛,过了它对所有真值都差不多兑现。打个比方,逐点渐近像"每家分行最终都会达标",一致渐近像"所有分行在同一期限前达标"。

基于正态的区间只是逐点渐近的:对每个固定的 \(p\),\(n\) 足够大时覆盖率接近 95%;但"足够大"依赖于 \(p\)。\(p\) 越接近 0 或 1(例如估计罕见事件的发生率、极端尾部概率),Wald 区间收敛越慢。这正是用 Wald 区间估计"暴跌日频率"不可靠的原因。


6.5 假设检验

假设检验(hypothesis testing)从一个默认理论——原假设(null hypothesis)\(H_0\)——出发,问数据是否提供了足够的证据拒绝它。如果证据不足,就保留原假设(retain the null;也说"接受原假设""未能拒绝原假设")。

例 6.18(检验硬币是否公平)。 \(H_0:p=1/2\) 对 \(H_1:p\neq1/2\)(\(H_1\) 称为备择假设,alternative hypothesis)。合理的做法是当检验统计量 \(T=|\hat p_n-1/2|\) 很大时拒绝 \(H_0\)。"多大才算大"——临界值、显著性水平、p 值、功效——留到本册第 10a 章。

量化里最常见的原假设是"策略真实期望收益为零"或"因子 IC 为零"。注意"保留原假设"不等于"证明了原假设":一年数据下 t 值只有 1 的策略,既不能说它有效,也不能说它无效(第 01 章 1.6.2 节的例子)。


6.6 量化实战

本章概念在量化里的落点很集中:每一个回测数字都是估计量。平均收益、波动率、Sharpe、IC、胜率、最大回撤,都有抽样分布、偏差和标准误。报告点估计时必须同时报告 se 或置信区间,否则无法判断"Sharpe 1.2"和"Sharpe 0.8"之间的差别是不是噪声。

下面的代码做三件事:(a) 用原书习题 2、3 验证偏差-方差权衡;(b) 演示收缩估计在横截面期望收益估计中的威力;(c) 检查"均值 ± 1.96 se"区间在厚尾、负偏收益下的实际覆盖率。

import numpy as np
from scipy import stats
rng = np.random.default_rng(6)

# (a) 偏差-方差:Uniform(0, theta) 的两个估计量
theta, n, R = 1.0, 20, 200_000
X = rng.uniform(0, theta, size=(R, n))
for name, est in [("max X_i", X.max(1)), ("2*mean", 2 * X.mean(1))]:
    bias, var = est.mean() - theta, est.var()
    print(f"{name:8s} bias={bias:+.4f} var={var:.5f} MSE={bias**2+var:.5f}")
print(f"理论 MSE: max={2*theta**2/((n+1)*(n+2)):.5f}, 2*mean={theta**2/(3*n):.5f}")

# (b) 收缩估计:50 只股票的期望日收益
N, T, sims = 50, 252, 2000
mu_bar, tau, sig = 0.0005, 0.0002, 0.02        # 真实均值离散度 tau 远小于抽样噪声 sig/sqrt(T)
mse_raw, mse_js = [], []
for _ in range(sims):
    mu = rng.normal(mu_bar, tau, N)
    xbar = mu + rng.normal(0, sig / np.sqrt(T), N)   # 各股样本均值
    s2 = sig**2 / T                                   # 抽样方差(此处视为已知)
    grand = xbar.mean()
    w = max(0.0, 1 - (N - 3) * s2 / np.sum((xbar - grand) ** 2))   # James-Stein 收缩系数
    js = grand + w * (xbar - grand)
    mse_raw.append(np.mean((xbar - mu) ** 2))
    mse_js.append(np.mean((js - mu) ** 2))
print(f"样本均值 MSE={np.mean(mse_raw):.3e}  收缩估计 MSE={np.mean(mse_js):.3e}  "
      f"降低 {1-np.mean(mse_js)/np.mean(mse_raw):.0%}")

# (c) 均值的正态置信区间:覆盖率与样本量、尾部
mu_true, R = 0.0005, 20000
def coverage(gen, n):
    x = gen((R, n))
    m, se = x.mean(1), x.std(1, ddof=1) / np.sqrt(n)
    return np.mean(np.abs(m - mu_true) <= 1.96 * se)
gens = {
    "正态":     lambda s: mu_true + 0.01 * rng.standard_normal(s),
    "t(3)厚尾": lambda s: mu_true + 0.01 * rng.standard_t(3, s) / np.sqrt(3),
    "负偏跳跃": lambda s: mu_true + np.where(rng.random(s) < 0.02, -0.05, 0.05 * 0.02 / 0.98)
                          + 0.005 * rng.standard_normal(s),
}
for n in [20, 60, 250]:
    print(f"n={n:3d} " + "  ".join(f"{k}:{coverage(g, n):.3f}" for k, g in gens.items()))

输出:

max X_i  bias=-0.0476 var=0.00206 MSE=0.00433
2*mean   bias=+0.0000 var=0.01672 MSE=0.01672
理论 MSE: max=0.00433, 2*mean=0.01667
样本均值 MSE=1.591e-06  收缩估计 MSE=1.044e-07  降低 93%
n= 20 正态:0.937  t(3)厚尾:0.945  负偏跳跃:0.888
n= 60 正态:0.944  t(3)厚尾:0.952  负偏跳跃:0.887
n=250 正态:0.948  t(3)厚尾:0.948  负偏跳跃:0.937

解读 (a)。 \(\max X_i\) 有偏(总是低估 \(\theta\)),\(2\bar X_n\) 无偏,但前者的 MSE 只有后者的四分之一。理论值:\(\mathbb E\max X_i=\frac{n}{n+1}\theta\),\(\text{MSE}(\max)=\frac{2\theta^2}{(n+1)(n+2)}\),按 \(1/n^2\) 下降;\(\text{MSE}(2\bar X_n)=\frac{\theta^2}{3n}\),只按 \(1/n\) 下降。"无偏"不是选择估计量的充分理由。

解读 (b)。 这是偏差-方差权衡在量化里最重要的应用。单只股票一年日数据的样本均值,其抽样噪声 \(\sigma/\sqrt T=0.02/\sqrt{252}\approx0.00126\),是真实期望收益横截面离散度(0.0002)的六倍多。此时把每只股票的样本均值向全体均值收缩(James–Stein 估计),故意引入偏差,MSE 降低了 93%。降幅大小取决于"信号离散度 / 噪声"之比:噪声越大,越该收缩。同样的逻辑出现在 Ledoit–Wolf 协方差收缩、Black–Litterman 模型、岭回归因子模型中(第 05 册、第 11 册)。均值-方差优化对期望收益输入极其敏感,用未经收缩的样本均值去优化,结果几乎就是在放大噪声。

白话解释:代码里的收缩系数 \(w=1-\frac{(N-3)s^2}{\sum(\bar x_i-\bar{\bar x})^2}\) 可以这样读:分母是"各股样本均值之间看到的总离散",它 = 真实差异 + 抽样噪声;分子 \((N-3)s^2\) 近似是"其中纯噪声贡献的部分"。所以 \(w\) 大致等于"看到的离散里有几成是真的"。噪声占比越大,\(w\) 越接近 0,每只股票的估计就越向全体平均靠拢。这和信用分析里用行业平均违约率修正单家公司的短历史违约率是同一个思路。

解读 (c)。 正态和 \(t(3)\) 收益下,"均值 ± 1.96 se"区间在 \(n=20\) 时就已接近名义 95%——CLT 对对称厚尾相当宽容。但对"2% 的天数暴跌 5%"这种负偏收益,\(n=60\) 时覆盖率只有 89%,到 \(n=250\) 才回到 94% 左右。原因与第 01 章相同:样本里没出现暴跌时,均值被高估、标准误被低估,区间整体偏离真值。负偏策略的短期回测区间,要么用更长的数据,要么改用第 08 章的 bootstrap 或更保守的方法。

其他提醒。

  • 冗余参数会吃掉精度。 估计 alpha 时要同时估计 beta,beta 估不准会传导到 alpha 的标准误。
  • 置信区间的"5% 错误率"会在多次研究中累积。 一个团队一年检验 100 个因子,即使全部无效,也会有约 5 个"显著"——这是第 10b 章多重检验的主题。
  • 回测指标本身也有偏差。 例如最大回撤的期望随样本长度增大,不同长度回测的最大回撤不能直接比较;样本 Sharpe 在小样本下也有轻微偏差。

本章小结

统计推断是从数据反推生成数据的分布。模型分参数与非参数,目标通常可写成统计泛函 \(T(F)\);回归函数 \(r(x)=\mathbb E(Y\mid X=x)\) 是预测问题的核心对象。评价点估计看偏差、标准误和 MSE,三者满足 \(\text{MSE}=\text{bias}^2+\text{方差}\);相合性是基本要求,渐近正态性让我们能构造区间。置信区间是关于随机区间的覆盖率陈述:基于正态的区间 \(\hat\theta\pm z_{\alpha/2}\widehat{\text{se}}\) 只在大样本下近似成立,Hoeffding 区间对任何样本量都严格成立但更宽。假设检验从原假设出发,看数据是否足以推翻它。在量化里,所有回测数字都是估计量,必须带着标准误看。

概念 定义 / 公式
参数模型 \(\mathfrak F=\{f(x;\theta):\theta\in\Theta\}\)
统计泛函 \(T(F)\),如 \(\int x\,dF\)、\(F^{-1}(1/2)\)
回归函数 \(r(x)=\mathbb E(Y\mid X=x)\),\(Y=r(X)+\epsilon\),\(\mathbb E\epsilon=0\)
偏差 \(\mathbb E_\theta\hat\theta_n-\theta\)
标准误 \(\text{se}=\sqrt{\mathbb V(\hat\theta_n)}\)
MSE 分解 \(\text{MSE}=\text{bias}^2+\mathbb V(\hat\theta_n)\)
相合 \(\hat\theta_n\xrightarrow P\theta\);bias→0 且 se→0 即可
渐近正态 \((\hat\theta_n-\theta)/\text{se}\rightsquigarrow N(0,1)\)
置信区间 \(\mathbb P_\theta(\theta\in C_n)\ge1-\alpha,\ \forall\theta\)
正态区间 \(\hat\theta_n\pm z_{\alpha/2}\widehat{\text{se}}\)(渐近)
Hoeffding 区间 \(\hat p_n\pm\sqrt{\log(2/\alpha)/(2n)}\)(有限样本)

练习

基础

  1. \(X_1,\dots,X_n\sim\text{Poisson}(\lambda)\),\(\hat\lambda=\bar X_n\)。求 bias、se、MSE。(答案:0,\(\sqrt{\lambda/n}\),\(\lambda/n\)。)
  2. \(X_1,\dots,X_n\sim\text{Uniform}(0,\theta)\),\(\hat\theta=\max X_i\)。求 bias、se、MSE。(提示:\(\mathbb P(\max\le x)=(x/\theta)^n\),\(\mathbb E\hat\theta=\frac{n}{n+1}\theta\),\(\mathbb V\hat\theta=\frac{n\theta^2}{(n+1)^2(n+2)}\),\(\text{MSE}=\frac{2\theta^2}{(n+1)(n+2)}\)。)
  3. 同上,\(\hat\theta=2\bar X_n\)。求 bias、se、MSE,并与第 2 题比较。(答案:0,\(\theta/\sqrt{3n}\),\(\theta^2/(3n)\);\(n\ge3\) 时 \(\max X_i\) 的 MSE 更小。)
  4. 某策略 500 笔交易中 290 笔盈利。分别给出胜率的 95% Wald 区间和 Hoeffding 区间,能否以 95% 的把握说胜率高于 50%?(提示:\(\hat p=0.58\),Wald 半宽约 0.043,Hoeffding 半宽约 0.061,两者下界都高于 0.5。)
  5. 解释"保留原假设"与"证明原假设为真"的区别,并举一个回测中的例子。

进阶

  1. 把例 6.14 改为 \(\mathbb P(X_i=1)=q\)、\(\mathbb P(X_i=-1)=1-q\),计算同一程序的覆盖率。覆盖率还与 \(\theta\) 无关吗?(提示:\(\mathbb P(Y_1\ne Y_2)=2q(1-q)\),\(\mathbb P(Y_1=Y_2,X_1=1)=q^2\),覆盖率 \(2q(1-q)+q^2=2q-q^2\),与 \(\theta\) 无关。)
  2. 证明:若 \(\hat\theta_n\) 渐近正态且 \(\text{se}\to0\),则 \(\hat\theta_n\) 相合。(提示:\(\hat\theta_n-\theta=\text{se}\cdot\frac{\hat\theta_n-\theta}{\text{se}}\),用 Slutsky 定理。)
  3. 在 6.6 节代码 (b) 中,把 \(\tau\) 依次改为 0.0005、0.001、0.002,记录收缩系数 \(w\) 的平均值与 MSE 降幅,解释二者随 \(\tau\) 的变化。
  4. 两个策略的日收益独立,各有 \(n_1,n_2\) 个观测。写出两者均值之差的标准误与 95% 正态区间。若两个策略在同一时期交易、收益相关,公式应如何修改?(提示:独立时 \(\sqrt{\text{se}_1^2+\text{se}_2^2}\);同期相关时应直接对日收益差序列求均值和标准误。)

原书推荐习题:第 6 章习题 1、2、3(2、3 必做,体会有偏估计量可能 MSE 更小)。

原书对照

本章内容 原书章节 PDF 页码
引言 6.1 p.100
参数与非参数模型、例 6.1–6.6、记号 6.2 p.100–102
点估计、偏差、se、MSE、相合、渐近正态 6.3.1 p.103–105
置信集、例 6.13–6.17、定理 6.16 6.3.2 p.105–107
假设检验 6.3.3 p.107–108
文献注、附录(逐点/一致渐近) 6.4–6.5 p.108
习题 6.6 p.108–109