量化交易中文教材

第 03 章 统计复习:计量视角

本章与第 03 册(数理统计与统计推断)重叠。估计量性质、置信区间、假设检验的一般理论见第 03 册第 6 章(统计推断的基本概念)、第 9 章(参数推断)、第 10a、10b 章(假设检验与 p 值、多重检验)。这里只围绕「总体均值」这一最简单的对象,把后面回归推断要用的每一个零件准备好:估计量的抽样分布、标准误、t 统计量、大样本 p 值、置信区间、两均值之差,以及「随机实验中的均值差就是因果效应」。第 5 章对回归系数做推断时,会把本章的每一步原样搬过去。

学习目标

读完本章,你应当能够:

  1. 用偏误、一致性、有效性评价估计量,说明 \(\bar Y\) 为什么是 BLUE、为什么是最小二乘估计量。
  2. 计算样本方差、标准误和 t 统计量,用大样本正态近似给出 p 值,并进行双侧和单侧检验。
  3. 准确解释 p 值、显著性水平、规模、功效和假阳性率,理解多重检验下「显著」的含义会如何变化。
  4. 用「检验反演」构造置信区间,并正确解释覆盖概率。
  5. 检验两总体均值之差,知道为什么默认使用允许方差不等的标准误,以及随机实验中均值差为何估计的是因果效应。
  6. 知道 Student t 分布何时精确、为何在大样本应用中可以忽略;理解样本相关系数只度量线性关系。

读前导读

这一章在解决什么问题。 本章用最简单的对象「总体均值」,把统计推断的完整流程走一遍:估计量 → 标准误 → t 统计量 → p 值 → 置信区间。CFA 里这些你都做过,比如检验某基金平均超额收益是否为 0。本章的价值在于它是第 5、7 章回归推断的模板:到时候只需把 \(\bar Y\) 换成 \(\hat\beta_1\),把 \(SE(\bar Y)\) 换成 \(SE(\hat\beta_1)\),其余一字不改。所以这里把每一步「为什么」弄清楚,后面就轻松了。

和 CFA 相比,本章多了三处值得注意的内容。第一,CFA 默认「样本小用 t 表、样本大用 z 表」,而本书一律用大样本正态近似,并在 3.6 节解释为什么 t 分布的「精确性」在经济数据中通常不成立。第二,两均值之差默认用允许方差不等的标准误,这是第 5 章「异方差稳健标准误」的前身。第三,3.2.3 节讨论「显著发现里有多少是假的」,这对因子研究极其重要,CFA 很少涉及。

需要先想起来的数学。

  • 标准正态累积分布函数 \(\Phi\):\(\Phi(z)=\Pr(Z\le z)\)。常用值:\(\Phi(1.64)\approx0.95\),\(\Phi(1.96)\approx0.975\),\(\Phi(2.58)\approx0.995\)。对称性:\(\Phi(-z)=1-\Phi(z)\),所以双侧 p 值 \(2\Phi(-|t|)\) 就是左右两个尾巴面积之和。见 第 00 册第 03 章 积分 中「密度与期望作为积分」。
  • 求和的基本运算:\(\sum_{i=1}^n(Y_i-\bar Y)=0\)(离差之和为零),\(\sum_{i=1}^n c=nc\)(对常数求和)。例如 \(Y=(1,2,6)\),\(\bar Y=3\),离差 \((-2,-1,3)\) 之和为 0。本章几个证明全靠这两条。见 第 00 册第 07 章 概率中的分析工具。
  • 依概率收敛与连续函数:若 \(A_n\xrightarrow{p}a\)、\(B_n\xrightarrow{p}b\),则 \(A_n-B_n^2\xrightarrow{p}a-b^2\),\(\sqrt{A_n}\xrightarrow{p}\sqrt a\)。直观上:每个零件都逼近真值,用连续函数组装起来的结果也逼近真值。这条规则(连续映射定理)在样本方差一致性的证明里用到。见 第 00 册第 07 章 中「收敛的几种说法」。
  • 条件概率与贝叶斯法则:3.2.3 节的假阳性率就是一次贝叶斯计算,第 2 章 2.3.2 节已复习。

怎么读这一章。 必读 3.1.1(三条评价标准)、3.2.1(标准误与 t 统计量)、3.2.3(假阳性率)、3.3(置信区间的正确解读)、3.4(两均值之差)和 3.5(实验中的因果效应)。3.1.3 和 3.7 可以快速浏览。3.6 第一次读只需记住结论:大样本下 t 分布和正态差别可以忽略,两组比较默认用不等方差标准误。量化实战中「\(t\approx\) 年化夏普 \(\times\sqrt{\text{年数}}\)」这个公式非常实用,务必看懂。


3.1 估计总体均值

统计推断(statistical inference)用随机样本了解总体,有三类方法:估计(estimation)、假设检验(hypothesis testing)、置信区间(confidence intervals)。不必调查 14 亿人,随机抽 1000 人就能对总体作出初步结论——前提是随机抽样。

3.1.1 估计量及其性质

估计量(estimator)是样本数据的函数,因抽样随机而是随机变量;估计值(estimate)是用某个具体样本算出的数,不随机。\(\bar Y\) 和 \(Y_1\)(只用第一个观测)都是 \(\mu_Y\) 的估计量。好的估计量应使抽样分布尽量紧密地集中在真值附近,由此有三条标准:

Key Concept 3.2 偏误、一致性与有效性(\(\hat\mu_Y\) 是 \(\mu_Y\) 的估计量)

  • 偏误(bias):\(E(\hat\mu_Y)-\mu_Y\);偏误为 0 称无偏(unbiased)。
  • 一致(consistent):\(\hat\mu_Y\xrightarrow{p}\mu_Y\)。
  • 有效(efficient):两个无偏估计量中,方差小的更有效。

\(\bar Y\) 无偏(\(E\bar Y=\mu_Y\)),且由大数定律一致。有效性要和具体对手比较:

  • 与 \(Y_1\) 比:\(\operatorname{var}(Y_1)=\sigma_Y^2\),\(\operatorname{var}(\bar Y)=\sigma_Y^2/n\),\(n\ge2\) 时 \(\bar Y\) 更有效。
  • 与交替加权估计量 \(\tilde Y=\frac1n(\tfrac12Y_1+\tfrac32Y_2+\tfrac12Y_3+\tfrac32Y_4+\cdots)\) 比:\(\tilde Y\) 无偏且一致,但 \(\operatorname{var}(\tilde Y)=\frac1{n^2}\cdot\frac n2\left(\tfrac14+\tfrac94\right)\sigma_Y^2=1.25\,\sigma_Y^2/n\),比 \(\bar Y\) 大 25%。

Key Concept 3.3 \(\bar Y\) 是 BLUE:在所有形如 \(\frac1n\sum a_iY_i\)(\(a_i\) 非随机)的线性无偏估计量中,\(\bar Y\) 方差最小,即最佳线性无偏估计量(Best Linear Unbiased Estimator)。(证明见本册第 5 章的高斯-马尔可夫定理。)

推导拆解:不必等到第 5 章,均值情形可以直接看出来。

  1. 无偏要求 \(E\big(\frac1n\sum a_iY_i\big)=\frac1n\sum a_i\mu_Y=\mu_Y\),即 \(\sum a_i=n\),权重平均为 1。
  2. 独立时方差为 \(\frac{\sigma_Y^2}{n^2}\sum a_i^2\)。
  3. 在 \(\sum a_i=n\) 的约束下让 \(\sum a_i^2\) 最小。把 \(a_i\) 写成 \(1+e_i\),约束变成 \(\sum e_i=0\),于是 \(\sum a_i^2=\sum(1+2e_i+e_i^2)=n+\sum e_i^2\ge n\),等号在所有 \(e_i=0\)(等权)时成立。 交替加权估计量 \(\tilde Y\) 的 \(e_i=\pm\frac12\),所以 \(\sum a_i^2=n+n/4=1.25n\),方差多 25%,与正文一致。 金融直觉:这和「方差相同、两两不相关的资产,等权组合方差最小」是同一个结论。权重偏离等权,只会白白增加方差。

3.1.2 \(\bar Y\) 是最小二乘估计量

找 \(m\) 使 \(\sum_{i=1}^n(Y_i-m)^2\) 最小。把 \(m\) 看作对每个 \(Y_i\) 的预测,这就是最小化预测误差平方和。答案是 \(m=\bar Y\)。不用微积分的证明很漂亮:令 \(d=\bar Y-m\),利用 \(\sum(Y_i-\bar Y)=0\),

\[\sum_{i=1}^n(Y_i-m)^2=\sum_{i=1}^n(Y_i-\bar Y)^2+nd^2,\]

第一项与 \(m\) 无关、第二项非负,故 \(d=0\) 时最小。第 4 章的 OLS 就是把这个想法从「一个常数」推广到「一条直线」。

3.1.3 随机抽样的重要性

非随机抽样会使 \(\bar Y\) 有偏。原书例子:在工作日上午 10 点去公园采访成年人来估计失业率,失业者会被过度抽样(oversample)。另一个例子是 2009 年印度大选民调:预测 UPA 201–235 席、NDA 165–186 席,实际 UPA 262 席、NDA 157 席——人口异质且抽样未能覆盖各地区和群体。

3.2 关于总体均值的假设检验

3.2.1 原假设、p 值与 t 统计量

原假设(null hypothesis)\(H_0:E(Y)=\mu_{Y,0}\);双侧备择(two-sided alternative)\(H_1:E(Y)\ne\mu_{Y,0}\)。检验的结论只有「拒绝」或「未能拒绝」,未能拒绝不等于证明原假设为真。

p 值(p-value):在原假设为真的前提下,抽到与原假设至少一样不利的统计量的概率,

\[p=\Pr_{H_0}\big[|\bar Y-\mu_{Y,0}|>|\bar Y^{act}-\mu_{Y,0}|\big].\]

要算它,需要 \(\bar Y\) 在原假设下的分布。大样本下由 CLT,\(\bar Y\approx N(\mu_{Y,0},\sigma_Y^2/n)\)。\(\sigma_Y\) 未知,需要估计。

样本方差(sample variance)与标准误(standard error):

\[s_Y^2=\frac1{n-1}\sum_{i=1}^n(Y_i-\bar Y)^2,\qquad SE(\bar Y)=\hat\sigma_{\bar Y}=\frac{s_Y}{\sqrt n}.\]

除以 \(n-1\) 是自由度修正(degrees of freedom correction):用 \(\bar Y\) 代替 \(\mu_Y\) 会让离差平方偏小,\(E[(Y_i-\bar Y)^2]=\frac{n-1}n\sigma_Y^2\),估计均值用掉了一个自由度。\(s_Y^2\) 无偏;在 i.i.d. 且四阶矩有限时一致(\(s_Y^2\xrightarrow{p}\sigma_Y^2\))。一致性的证明思路:

\[\frac1n\sum(Y_i-\bar Y)^2=\frac1n\sum Y_i^2-\bar Y^2\xrightarrow{p}(\sigma_Y^2+\mu_Y^2)-\mu_Y^2=\sigma_Y^2,\]

其中对 \(Y_i^2\) 用大数定律,需要 \(\operatorname{var}(Y_i^2)<\infty\),即 \(E(Y_i^4)<\infty\)。伯努利情形 \(SE(\bar Y)=\sqrt{\bar Y(1-\bar Y)/n}\)。

推导拆解:\(E[(Y_i-\bar Y)^2]=\frac{n-1}{n}\sigma_Y^2\) 是怎么来的?

  1. 写 \(Y_i-\bar Y=(Y_i-\mu_Y)-(\bar Y-\mu_Y)\),加减同一个 \(\mu_Y\)。
  2. 平方取期望:\(E(Y_i-\mu_Y)^2-2E[(Y_i-\mu_Y)(\bar Y-\mu_Y)]+E(\bar Y-\mu_Y)^2=\sigma_Y^2-2\cdot\frac{\sigma_Y^2}{n}+\frac{\sigma_Y^2}{n}\)。
  3. 中间项:\(\bar Y-\mu_Y=\frac1n\sum_j(Y_j-\mu_Y)\),与 \(Y_i-\mu_Y\) 的协方差只剩 \(j=i\) 那一项(独立时其他项为 0),为 \(\sigma_Y^2/n\)。最后一项是 \(\operatorname{var}(\bar Y)=\sigma_Y^2/n\)。
  4. 合计 \(\sigma_Y^2-\sigma_Y^2/n=\frac{n-1}{n}\sigma_Y^2\)。原因是 \(\bar Y\) 是用同一批数据算出来的,会「迁就」每个观测,使离差系统性偏小。\(n\) 个离差还要满足 \(\sum(Y_i-\bar Y)=0\),只有 \(n-1\) 个能自由变动,这就是「用掉一个自由度」的含义。 一致性证明的每一步:\(\frac1n\sum Y_i^2\xrightarrow{p}E(Y^2)=\sigma_Y^2+\mu_Y^2\) 是对新变量 \(Y_i^2\) 用 LLN,所以要求 \(Y_i^2\) 方差有限,即四阶矩有限;\(\bar Y^2\xrightarrow{p}\mu_Y^2\) 是 LLN 加上「连续函数保持收敛」。最后乘的 \(\frac{n}{n-1}\to1\) 不影响极限。

金融直觉:四阶矩有限这个条件,在金融里是实打实的问题。日收益峰度经常十几甚至更高,样本方差(以及历史波动率、VaR)的估计收敛很慢,少数极端日会显著改变结果。均值的推断只要求方差有限,方差本身的推断要求高一阶。

t 统计量(t-statistic):

\[t=\frac{\bar Y-\mu_{Y,0}}{SE(\bar Y)}.\]

大样本下 \(s_Y\approx\sigma_Y\),原假设下 \(t\approx N(0,1)\),于是

\[p=2\Phi(-|t^{act}|).\]

数值例:\(n=200\) 名近期大学毕业生,检验平均时薪 \(E(Y)=20\) 美元。\(\bar Y=22.64\),\(s_Y=18.14\),\(SE=18.14/\sqrt{200}=1.28\),\(t=(22.64-20)/1.28=2.06\),\(p=2\Phi(-2.06)=0.039\)。

白话解释:p 值公式里的 \(\Pr_{H_0}\) 表示「假定原假设成立时计算的概率」,\(\bar Y^{act}\) 是手里这份样本实际算出的均值(act = actual)。p 值回答的是:「如果真实均值就是 20,纯靠运气抽到离 20 这么远(或更远)的样本,有多大可能?」它不是「原假设为真的概率」。 从 \(p\) 的定义到 \(p=2\Phi(-|t^{act}|)\) 只需两步:两边同除以 \(SE(\bar Y)\),事件 \(|\bar Y-\mu_{Y,0}|>|\bar Y^{act}-\mu_{Y,0}|\) 变成 \(|t|>|t^{act}|\);\(t\) 近似标准正态,\(\Pr(|Z|>c)\) 等于左尾 \(\Phi(-c)\) 加右尾 \(1-\Phi(c)=\Phi(-c)\),合计 \(2\Phi(-c)\)。 这里有两层近似:CLT 让 \(\bar Y\) 近似正态;LLN 让 \(s_Y\) 接近 \(\sigma_Y\),所以用 \(s_Y\) 替换 \(\sigma_Y\) 不改变大样本下的分布。第 5 章对回归系数做检验时,用的正是这两层近似。

3.2.2 预设显著性水平与检验术语

Key Concept 3.5 假设检验术语

  • 第一类错误(type I error):原假设为真却被拒绝;第二类错误(type II error):原假设为假却未被拒绝。
  • 显著性水平(significance level):预先指定的第一类错误概率,常用 5%。
  • 临界值(critical value)、拒绝域(rejection region)、接受域(acceptance region)。
  • 规模(size):原假设为真时检验实际的拒绝概率;功效(power):备择为真时正确拒绝的概率。
  • p 值等价于「能拒绝原假设的最小显著性水平」。

5% 双侧检验:\(|t|>1.96\) 时拒绝。上例 \(t=2.06>1.96\),称 \(\mu_Y\) 在 5% 水平上与 20 统计显著不同。只报告「是否拒绝」比报告 p 值损失信息。

单侧备择(one-sided alternative)\(H_1:E(Y)>\mu_{Y,0}\):只有大的正 t 值才拒绝,\(p=1-\Phi(t^{act})\),5% 临界值 1.64。

3.2.3 用什么显著性水平?假阳性率

5% 是惯例,但这一节是本章与量化研究关系最紧的地方。

所有拒绝中错误拒绝所占的比例称为假阳性率(false positive rate,在多重检验文献中也叫错误发现率)。它不只取决于显著性水平,还取决于被检验的假设中有多少真的为假。原书习题 3.22 的计算:

  • 设 \(\sigma_Y=10\)、\(n=100\),\(SE=1\);单侧检验 \(t>1.64\)。
  • \(\mu_Y=0\)(原假设真)时拒绝概率 5%;\(\mu_Y=2\) 时功效 \(=\Pr(Z>1.64-2)=\Phi(0.36)\approx0.64\)。
  • 若 90% 的情形原假设为真、10% 备择为真,总拒绝概率 \(=0.9\times0.05+0.1\times0.64\approx0.109\),其中原假设为真的占 \(0.045/0.109\approx41\%\)。
  • 改用 0.5% 水平(单侧临界值 2.58),功效降到 \(\Phi(-0.58)\approx0.28\),但假阳性率降到约 \(0.0045/(0.0045+0.028)\approx14\%\)。

推导拆解:这是一次贝叶斯计算,把四种情形列成表就清楚了(每 1,000 个被检验的想法):

  • 原假设真(900 个):被错误拒绝 \(900\times5\%=45\) 个,即假阳性。
  • 备择真(100 个):被正确拒绝 \(100\times64\%=64\) 个,即真阳性。
  • 拒绝合计 109 个,其中假的 45 个,占 41%。 公式写成 \(\dfrac{\pi_0\alpha}{\pi_0\alpha+(1-\pi_0)\cdot\text{power}}\),\(\pi_0\) 是原假设为真的先验比例。降低 \(\alpha\) 让分子按比例缩小,而分母里的功效下降得没那么快,所以比例改善。 术语提醒:在许多统计教材里,「假阳性率」(false positive rate)指的是 \(\Pr(\text{拒绝}\mid H_0\text{ 真})\),也就是规模 \(\alpha\);本书这里说的「拒绝中错误的比例」更规范的名字是错误发现率(false discovery rate, FDR)。读文献时注意区分。

金融直觉:这和信用审批、反欺诈模型的逻辑一样。欺诈交易本来就少(先验比例低),即使模型的误报率只有 5%,被标记的交易里大多数仍可能是正常交易。因子研究也是如此:真正有效的因子稀少,所以 \(t>2\) 的结果需要比直觉更多的怀疑。

也就是说,在「大部分想法都无效」的领域,5% 水平下的「显著发现」里有四成是假的。因此有统计学家建议报告新发现时用 0.5% 水平(Benjamin et al., 2017),对应双侧临界值 2.81;p 值落在 0.005 与 0.05 之间算「提示性」证据。选择显著性水平需要判断:假阳性代价越高,门槛应越高。另外,只有原假设本身有意义时检验才有意义——检验「平均收入为零」毫无用处,检验「男女平均收入相同」则有社会意义。

Key Concept 3.6 检验 \(E(Y)=\mu_{Y,0}\):(1) 算 \(SE(\bar Y)\);(2) 算 t 统计量;(3) 算 \(p=2\Phi(-|t|)\),\(p<0.05\)(即 \(|t|>1.96\))时在 5% 水平拒绝。

3.3 置信区间

由于抽样误差,我们无法从样本得知 \(\mu_Y\) 的精确值,但可以构造一个以预设概率覆盖真值的集合。

构造思想(检验反演):对每个可能值 \(\mu_{Y,0}\) 做 5% 双侧检验,把不被拒绝的值都记下来。真值也在被检验之列,而真值只在 5% 的样本中被错误拒绝,所以在 95% 的样本中这张清单包含真值。不被拒绝的值恰好是距 \(\bar Y\) 不超过 1.96 个标准误的那些:

Key Concept 3.7 总体均值的置信区间(大样本)

\[90\%:\ \bar Y\pm1.64\,SE(\bar Y),\qquad 95\%:\ \bar Y\pm1.96\,SE(\bar Y),\qquad 99\%:\ \bar Y\pm2.58\,SE(\bar Y).\]

上例:\(22.64\pm1.96\times1.28=(20.13,\ 25.15)\) 美元。

正确解读:在所有可能的随机样本中,构造区间的程序有 95% 的机会覆盖真值,这一概率称为覆盖概率(coverage probability)。不能说「真值有 95% 的概率落在这个已经算出来的区间里」——区间算出来后,真值要么在里面,要么不在。置信区间比单次检验结果信息多:它同时回答了对所有 \(\mu_{Y,0}\) 的检验。

3.4 比较两个总体的均值

检验 \(H_0:\mu_m-\mu_w=d_0\)。两组独立随机抽样,由 CLT 与独立性,

\[\bar Y_m-\bar Y_w\approx N\!\left(\mu_m-\mu_w,\ \frac{\sigma_m^2}{n_m}+\frac{\sigma_w^2}{n_w}\right),\]
\[SE(\bar Y_m-\bar Y_w)=\sqrt{\frac{s_m^2}{n_m}+\frac{s_w^2}{n_w}},\qquad t=\frac{(\bar Y_m-\bar Y_w)-d_0}{SE(\bar Y_m-\bar Y_w)}.\]

大样本下原假设成立时 \(t\approx N(0,1)\),检验与区间完全仿照单总体:95% 区间为 \((\bar Y_m-\bar Y_w)\pm1.96\,SE\)。

推导拆解:方差为什么是两项相加?用 Key Concept 2.3 的 \(\operatorname{var}(aX+bY)\),取 \(a=1,b=-1\):\(\operatorname{var}(\bar Y_m-\bar Y_w)=\operatorname{var}(\bar Y_m)+\operatorname{var}(\bar Y_w)-2\operatorname{cov}(\bar Y_m,\bar Y_w)\)。两组独立抽样,协方差为 0;每组样本均值的方差是 \(\sigma^2/n\)。注意是相加而不是相减,差的波动来自两边。 这里每组用自己的 \(s^2\),没有假设两组方差相等。这正是第 5 章异方差稳健标准误的雏形:让数据自己告诉你每部分的波动是多少,而不是先假设它们一样。 反过来,若两组不独立而是同期配对(同一天的多头和空头),协方差为正,减去 \(2\operatorname{cov}\) 后方差更小,这就是量化实战第 2 点和练习 8 里配对检验更有力的原因。

3.5 用实验数据的均值差估计因果效应

在理想随机对照实验中,因果效应等于两个条件期望之差:

\[\text{因果效应}=E(Y\mid X=1)-E(Y\mid X=0),\]

实验背景下也称处理效应(treatment effect)。由于处理是随机分配的,两组唯一的系统差异是处理本身,所以两组样本均值之差就是因果效应的估计量,「处理无效」就是 \(H_0:\mu_1-\mu_0=0\),均值差的 95% 区间就是因果效应的 95% 区间。实验昂贵或不可行时,计量学家寻找自然实验(natural experiments,又称准实验 quasi-experiments):某个与对象特征无关的外部事件让不同对象接受了不同处理,仿佛被随机分配(本册第 13 章)。

专栏:社会阶层还是教育?(Table 3.1)父亲职业为「高级」与「常规」两组的成年家庭月收入,合并比较差 £810.25(SE 31.18,95% 区间 749.13–871.38)。按本人学历分组后,每档差距只剩 £240–£380,例如无学历组:

\[SE=\sqrt{\frac{2115.12^2}{1129}+\frac{1487.29^2}{6383}}=65.64,\qquad \text{差 }£380.15,\ 95\%\text{ 区间 }(251.38,\ 508.93).\]

各档差距仍显著,但远小于合并的 £810:两组的学历构成不同,教育解释了相当一部分差距。这是「控制变量」和「遗漏变量偏误」的预告——分组比较就是最原始的回归控制,第 6 章会把它系统化。

专栏:提高投票率。2005 年英国大选前在曼彻斯特某选区(2001 年投票率 48.6%)随机选出电话游说组、上门游说组和对照组。上门组投票率 55.1%,电话组 55%,与对照组的差异统计显著,说明个人接触可以「助推」投票。这是一个用随机实验和均值差得出因果结论的干净例子。

3.6 小样本与 Student t 分布

若 \(Y_1,\dots,Y_n\) i.i.d. 来自正态分布,则 \(t=(\bar Y-\mu_{Y,0})/\sqrt{s_Y^2/n}\) 精确服从 \(t_{n-1}\)。例:\(n=8\)、\(t=2.15\),\(t_7\) 的 5% 双侧临界值为 2.36,不拒绝;对应区间 \(\bar Y\pm2.36SE\) 比用 1.96 的更宽。

两均值之差的情形更微妙:(3.19) 的 t 统计量即使总体正态也不服从 t 分布。((3.19) 是原书公式编号,指 3.4 节用 \(\sqrt{s_m^2/n_m+s_w^2/n_w}\) 作分母的 t 统计量。)合并方差(pooled variance)

\[s^2_{pooled}=\frac{1}{n_m+n_w-2}\Big[\sum_{i\in m}(Y_i-\bar Y_m)^2+\sum_{i\in w}(Y_i-\bar Y_w)^2\Big]\]

在两组正态且方差相等时给出精确 \(t_{n_m+n_w-2}\) 分布;但若方差不等且样本量不等,合并方差估计量不一致,检验在大样本下也不对。导致两组均值不同的经济原因往往也让方差不同,因此默认使用允许方差不等的标准误。

实践结论:经济数据很少正态,所以 t 分布的「精确性」大多不成立;大样本下 t 与正态的差别又可以忽略(\(n>15\) 时两者给出的 p 值相差不超过 0.01,\(n>80\) 时不超过 0.002)。本书所有推断都基于大样本正态近似。

3.7 散点图、样本协方差与样本相关

样本协方差和样本相关系数:

\[s_{XY}=\frac1{n-1}\sum_{i=1}^n(X_i-\bar X)(Y_i-\bar Y),\qquad r_{XY}=\frac{s_{XY}}{s_Xs_Y}.\]

\(r_{XY}\) 无量纲、\(|r_{XY}|\le1\),所有点在一条上升(下降)直线上时为 \(+1\)(\(-1\))。i.i.d. 且四阶矩有限时 \(s_{XY}\xrightarrow{p}\sigma_{XY}\),从而 \(r_{XY}\) 一致。

例:200 名计算机与信息系统经理,年龄标准差 9.57 年,时薪标准差 19.93 美元,协方差 91.51,\(r=91.51/(9.57\times19.93)=0.48\)。改用美分计量,协方差变成 9151,相关仍为 0.48。

两点要牢记:

  • 高相关不代表斜率陡,只代表点紧贴直线。
  • 相关只度量线性关联。原书 Figure 3.3d 中 \(Y\) 随 \(X\) 先升后降,关系明显,但 \(r=0\)。

量化实战

本章是量化研究中最常用的统计工具,几乎每天都会用到。

1. 策略或因子收益是否显著为正。 检验 \(H_0:\mu=0\),\(t=\bar r/(s/\sqrt T)\)。注意 \(\bar r/s\) 就是每期夏普比率,所以

\[t=\text{SR}_{\text{每期}}\times\sqrt T\approx\text{SR}_{\text{年化}}\times\sqrt{\text{年数}}.\]

推导拆解:\(t=\dfrac{\bar r}{s/\sqrt T}=\dfrac{\bar r}{s}\sqrt T\),前一个因子就是每期夏普比率。日夏普年化要乘 \(\sqrt{252}\),即 \(\text{SR}_{\text{日}}=\text{SR}_{\text{年化}}/\sqrt{252}\);\(T=252\times\text{年数}\)。代入得 \(t=\frac{\text{SR}_{\text{年化}}}{\sqrt{252}}\sqrt{252\times\text{年数}}=\text{SR}_{\text{年化}}\sqrt{\text{年数}}\),数据频率被约掉了。 推论:提高数据频率(日频改分钟频)不会让「平均收益是否为正」的检验更有力,因为 t 值只取决于日历时间的长度。频率提高能改善的是波动率估计,不是均值估计。

年化夏普 0.6 的策略,3 年回测的期望 t 值只有 1.1,要接近 10 年数据才能让期望 t 值到 2。这个公式假设收益 i.i.d.;收益有自相关或波动聚集时要用 HAC 标准误(本册第 16 章)。

2. 多空组合与 A/B 测试。 高分位组与低分位组的收益差检验就是两均值之差;比较两种执行算法的平均滑点也是。两组波动不同是常态,默认用 \(\sqrt{s_1^2/n_1+s_2^2/n_2}\)。如果两组观测在时间上一一配对(同一天的多头和空头),用配对差 \(d_t=r^{top}_t-r^{bot}_t\) 做单样本 t 检验会更精确,因为共同的市场波动被抵消了(原书习题 3.16 的思想)。对执行算法做随机化分配,就得到了第 3.5 节意义上的因果结论。

3. 多重检验与「因子动物园」。 3.2.3 节的假阳性率讨论是量化研究的核心风险。尝试成百上千个候选因子、真正有效的比例又很低时,5% 水平「显著」的因子里大部分是假的。Harvey、Liu 与 Zhu(2016)主张把因子的 t 值门槛提高到 3 左右,思路与原书提到的 0.5% 水平(2.81)一致;实践中还有 Bonferroni、Benjamini–Hochberg 等修正(第 03 册第 10b 章)、以及考虑试验次数的「去偏夏普比率」(deflated Sharpe ratio)。

4. 样本选择偏差。 「公园里调查失业率」在量化里对应幸存者偏差(只用现存股票)、前视偏差(用了当时不可得的数据)、只研究流动性好的样本等。

5. 相关只看线性。 截面 IC(因子与下期收益的相关系数)接近 0,不代表因子没有预测力——可能存在 U 形等非线性关系。要配合分组收益、秩相关或非线性模型检查。

下面的代码把这些点串起来:单策略 t 检验与所需样本长度、多空差的 t 检验、原书习题 3.22 的假阳性率、因子动物园模拟、厚尾数据下置信区间的覆盖率。

import numpy as np
from scipy import stats

rng = np.random.default_rng(7)

# ---- 1. 策略平均收益的 t 检验与置信区间 ----
T = 750                                    # 3 年日收益
r = 0.0004 + 0.01 * rng.standard_t(5, T) / np.sqrt(5 / 3)   # 真实年化 SR ≈ 0.63
mean, sd = r.mean(), r.std(ddof=1)
se = sd / np.sqrt(T)
t = mean / se
p = 2 * stats.norm.sf(abs(t))
sr_daily = mean / sd
print(f"均值 {mean*1e4:.2f}bp, SE {se*1e4:.2f}bp, t = {t:.2f}, p = {p:.3f}")
print(f"日 SR × sqrt(T) = {sr_daily*np.sqrt(T):.2f};年化 SR = {sr_daily*np.sqrt(252):.2f}")
print(f"95% CI: ({(mean-1.96*se)*1e4:.2f}, {(mean+1.96*se)*1e4:.2f}) bp")
SR_true = 0.0004 / 0.01 * np.sqrt(252)
Et = SR_true * np.sqrt(T / 252)            # t 的期望值 ≈ 年化 SR × sqrt(年数)
print(f"真实年化 SR {SR_true:.2f}: 3 年样本 E[t] = {Et:.2f}, 功效 Pr(t>1.96) = {stats.norm.sf(1.96-Et):.2f}")
print(f"要让 E[t] = 2 需要 {(2/SR_true)**2:.1f} 年数据")

# ---- 2. 多空组合:两均值之差(不等方差 SE) ----
top = 0.0006 + 0.015 * rng.standard_normal(500)
bot = 0.0001 + 0.010 * rng.standard_normal(800)
d = top.mean() - bot.mean()
se_w = np.sqrt(top.var(ddof=1) / len(top) + bot.var(ddof=1) / len(bot))
print(f"均值差 {d*1e4:.2f}bp, SE {se_w*1e4:.2f}bp, t = {d/se_w:.2f}")

# ---- 3. 原书习题 3.22:假阳性率 ----
def fpr(c, prior_null=0.9, mu_alt=2.0):
    size = stats.norm.sf(c)                 # 单侧检验规模
    power = stats.norm.sf(c - mu_alt)       # μ=2、SE=1 时的功效
    rej = prior_null * size + (1 - prior_null) * power
    return size, power, prior_null * size / rej
for c in [1.64, 2.58]:
    s, pw, f = fpr(c)
    print(f"临界值 {c}: 规模 {s:.3f}, 功效 {pw:.3f}, 假阳性率 {f:.2f}")

# ---- 4. 因子动物园:1000 个候选因子,只有 5% 真有效 ----
n_fac, T = 1000, 120                       # 10 年月度多空收益
true = rng.random(n_fac) < 0.05
mu = np.where(true, 0.006, 0.0)            # 有效因子月均 0.6%
R = mu[:, None] + 0.03 * rng.standard_normal((n_fac, T))
tstat = R.mean(1) / (R.std(1, ddof=1) / np.sqrt(T))
for c in [1.96, 3.0]:
    sel = np.abs(tstat) > c
    print(f"|t|>{c}: 选出 {sel.sum():3d} 个, 其中假阳性 {np.sum(sel & ~true):3d} 个"
          f" ({np.mean(~true[sel]):.0%}), 漏掉真因子 {np.sum(~sel & true)} 个")

# ---- 5. 置信区间覆盖率:厚尾数据、不同样本量 ----
for n in [20, 100, 1000]:
    X = rng.standard_t(3, size=(20000, n))          # 均值 0,方差有限、四阶矩无穷
    m, s = X.mean(1), X.std(1, ddof=1) / np.sqrt(n)
    cover = np.mean(np.abs(m) < 1.96 * s)
    print(f"n={n:4d}: 95% 区间实际覆盖率 {cover:.3f}")

关键输出:

均值 -1.60bp, SE 3.39bp, t = -0.47, p = 0.637
日 SR × sqrt(T) = -0.47;年化 SR = -0.27
95% CI: (-8.24, 5.04) bp
真实年化 SR 0.63: 3 年样本 E[t] = 1.10, 功效 Pr(t>1.96) = 0.19
要让 E[t] = 2 需要 9.9 年数据
均值差 8.53bp, SE 7.54bp, t = 1.13
临界值 1.64: 规模 0.051, 功效 0.641, 假阳性率 0.42
临界值 2.58: 规模 0.005, 功效 0.281, 假阳性率 0.14
|t|>1.96: 选出  81 个, 其中假阳性  53 个 (65%), 漏掉真因子 25 个
|t|>3.0: 选出  20 个, 其中假阳性   4 个 (20%), 漏掉真因子 37 个
n=  20: 95% 区间实际覆盖率 0.943
n= 100: 95% 区间实际覆盖率 0.950
n=1000: 95% 区间实际覆盖率 0.953

解读:

  • 第一段最值得警惕:真实年化夏普 0.63 的好策略,这次 3 年回测估出来是 负的 −0.27。这不是代码错误,而是抽样误差本来就这么大:3 年样本的功效只有 19%。95% 置信区间 \((-8.2, 5.0)\) bp/日 宽到几乎什么也说明不了。
  • 第三段复现了原书习题 3.22:5% 水平下假阳性率 42%,0.5% 水平下 14%。
  • 因子动物园里,\(|t|>1.96\) 选出的 81 个因子中 65% 是假的;把门槛提到 3,假阳性比例降到 20%,代价是漏掉更多真因子。门槛是在两类错误之间取舍,没有免费的选择。
  • \(t(3)\) 分布的四阶矩无穷,但方差有限,CLT 依然成立,所以均值的置信区间覆盖率仍接近 95%。真正受影响的是方差和波动率本身的估计(需要四阶矩有限),这一点在风险模型中更要紧。

本章小结

\(\bar Y\) 是总体均值的无偏、一致、BLUE 估计量,也是最小二乘估计量;它的抽样标准差 \(\sigma_Y/\sqrt n\) 用标准误 \(s_Y/\sqrt n\) 估计。t 统计量在大样本原假设下近似标准正态,由此得到 p 值、拒绝域和置信区间;置信区间是检验的反演,其 95% 指的是程序的覆盖概率。p 值不是原假设为真的概率;当被检验的假设中真正为假的比例很低时,5% 水平下的显著发现可能大半是假阳性。两均值之差的检验默认使用允许方差不等的标准误;随机实验中的均值差就是因果效应的估计。Student t 分布只在总体正态时精确,大样本下与正态无实质差别。样本相关只度量线性关联。

概念 公式 / 要点
偏误、一致、有效 \(E\hat\mu-\mu\);\(\hat\mu\xrightarrow{p}\mu\);方差更小
样本方差 \(s_Y^2=\frac1{n-1}\sum(Y_i-\bar Y)^2\),一致需四阶矩有限
标准误 \(SE(\bar Y)=s_Y/\sqrt n\)
t 统计量 \(t=(\bar Y-\mu_{Y,0})/SE(\bar Y)\approx N(0,1)\)
p 值 双侧 \(2\Phi(-\vert t\vert )\);单侧 \(1-\Phi(t)\)
临界值 5% 双侧 1.96,单侧 1.64;1% 双侧 2.58;0.5% 双侧 2.81
置信区间 \(\bar Y\pm1.96\,SE(\bar Y)\)
假阳性率 \(\dfrac{\pi_0\alpha}{\pi_0\alpha+(1-\pi_0)\cdot\text{power}}\)
两均值差 \(SE=\sqrt{s_1^2/n_1+s_2^2/n_2}\)
因果效应(实验) \(E(Y\mid X=1)-E(Y\mid X=0)\)
样本相关 \(r_{XY}=s_{XY}/(s_Xs_Y)\),只度量线性关系
策略 t 值 \(t\approx\text{SR}_{\text{年化}}\sqrt{\text{年数}}\)(i.i.d. 下)

练习

基础

  1. 500 名选民中 270 人支持某候选人。估计支持率 \(p\) 及其标准误,检验 \(H_0:p=0.5\)(双侧和单侧 \(p>0.5\)),给出 95% 置信区间。(原书习题 3.3、3.4) 答案要点:\(\hat p=0.54\),\(SE=\sqrt{0.54\times0.46/500}\approx0.0223\),\(t\approx1.79\);双侧 \(p\approx0.073\),单侧 \(p\approx0.037\);95% 区间 \((0.496,0.584)\)。
  2. 证明 \(\tilde Y=\frac1n(\tfrac12Y_1+\tfrac32Y_2+\cdots)\) 无偏且方差为 \(1.25\sigma_Y^2/n\)。(原书习题 3.11)
  3. 某检验的 p 值为 0.07。90% 置信区间是否包含原假设值?95% 区间呢?(原书习题 3.6 改编) 提示:p 值大于 0.05 而小于 0.10,所以原假设值在 95% 区间内、不在 90% 区间内。
  4. 布鲁塞尔 400 个学区:小班 150 个,均值 721.8、标准差 24.4;大班 250 个,均值 710.9、标准差 20.6。小班成绩是否显著更高?(原书习题 3.13) 答案要点:差 10.9,\(SE=\sqrt{24.4^2/150+20.6^2/250}\approx2.38\),\(t\approx4.6\),显著。

进阶

  1. 集成电路平均寿命 1000 小时、标准差 100。经理抽 50 个,样本均值超过 1100 才相信改进有效。求该检验的规模;真实均值为 1150 时的功效;若想要规模 1%,临界值应是多少?(原书习题 3.9) 提示:\(SE=100/\sqrt{50}\approx14.1\),1100 相当于 \(t\approx7.07\),规模几乎为 0;功效 \(\Pr(Z>-3.54)\approx1\);1% 单侧临界值 \(1000+2.33\times14.1\approx1033\)。
  2. 证明 \(E(\bar Y^2)=\mu_Y^2+\sigma_Y^2/n\),因此 \(\bar Y^2\) 是 \(\mu_Y^2\) 的有偏但一致的估计量。类比:用样本夏普比率的平方估计真实夏普的平方会有什么偏差?(原书习题 3.19)
  3. 重做原书习题 3.22:若 99% 的候选因子无效、功效为 0.5,5% 水平下的假阳性率是多少?要把它压到 20% 以下,显著性水平应设为多少? 提示:\(0.99\times0.05/(0.99\times0.05+0.01\times0.5)\approx0.91\);令 \(0.99\alpha/(0.99\alpha+0.005)\le0.2\),得 \(\alpha\le0.00126\)(这里简化为功效不变,实际上提高门槛会降低功效)。
  4. 600 名学生考试均值 508、标准差 75;他们上备考课后重考,平均提高 7 分、个人提高量标准差 40。另有 500 名独立学生上课后均值 514、标准差 65。分别用配对差和独立两样本检验「备考课有效」,比较两个 t 值,并说明在策略比较中这意味着什么。(原书习题 3.16) 提示:配对 \(t=7/(40/\sqrt{600})\approx4.3\);独立样本 \(t=(514-508)/\sqrt{65^2/500+75^2/600}\approx1.42\)。同期配对的收益差能消掉共同波动,检验力强得多。但配对设计也混入了「第二次考试」的经验效应,需要对照组区分。
  5. 构造一个数据集使 \(r_{XY}=0\) 但 \(Y\) 完全由 \(X\) 决定,并说明在因子研究中如何发现这类关系。

原书推荐习题:3.5、3.9、3.12、3.13、3.16、3.18、3.19、3.22;实证题 E3.2(List 的禀赋效应随机实验)。


原书对照

本章内容 原书章节 PDF 页码
统计推断概述 第 3 章开篇 p.104–105
估计量性质、BLUE、最小二乘、随机抽样、印度民调专栏 3.1 p.105–110
p 值、标准误、t 统计量、检验术语、显著性水平争论 3.2 p.110–118
置信区间 3.3 p.118–120
两均值之差 3.4 p.120–122
实验中的因果效应、社会阶层专栏、投票率专栏 3.5 p.122–125
小样本 t 分布、合并方差 3.6 p.124–128
散点图、样本协方差与相关 3.7 p.128–131
小结、习题 第 3 章末 p.132–141
附录 3.1 CPS;3.2 \(\bar Y\) 是最小二乘估计量;3.3 样本方差一致性 附录 p.142–144

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