因子投资-03-概率抽样显著性与置信区间

QUANT RESEARCH NOTE LESSON 03

一条因子在 36 个月中平均每月赚 1%,这是真实规律还是抽样运气?有限样本永远混合了信号与噪声。统计推断的任务不是给结论盖“显著”印章,而是量化:在明确假设下,我们对未知效应有多不确定。

类型核心课程
模块基础语言
阅读约 7 分钟
材料10 节 · 1 段代码

本节解决什么问题

一条因子在 36 个月中平均每月赚 1%,这是真实规律还是抽样运气?有限样本永远混合了信号与噪声。统计推断的任务不是给结论盖“显著”印章,而是量化:在明确假设下,我们对未知效应有多不确定。

前置知识与学习目标

前置知识是第 01 讲收益率和第 02 讲均值、标准差。学完后你应该能:

  • 区分总体、样本、统计量、参数和抽样分布;
  • 解释标准差与标准误为什么不同;
  • 正确陈述零假设、p 值和置信区间;
  • 区分第一类与第二类错误;
  • 说明反复尝试很多因子为何制造假发现。

直觉与手算

假设一个因子有 T=36 个月收益,样本均值每月 1%,样本标准差每月 3%。若月收益独立且方差稳定,均值标准误近似为:

检验“总体平均收益等于零”,t 统计量是 1%/0.5%=2。由于总体方差未知,35 个自由度下双侧 p 值约 5.3%,略高于常用 5% 门槛。95% t 置信区间约为:

这个例子说明,“t 约等于 2”不是自然法则,门槛取决于样本、尾部、单侧或双侧假设以及标准误模型。

再假设我们检验 100 个实际上都无效且相互独立的因子,每个用 5% 显著水平。预期会有 5 个假阳性;至少出现一个假阳性的概率是:

研究者若只展示最漂亮的一个,读者无法从单个 p 值知道背后尝试了多少次。

定义与公式

总体、样本与抽样分布

总体是研究希望推断的数据生成过程,例如“在当前制度下所有可交易 A 股未来月收益”;样本是实际观察到的股票和月份。总体均值 μ 是未知参数,样本均值是统计量。若从同一总体反复抽取等长样本,每次样本均值会不同,这些可能值形成抽样分布。

收益标准差 s 描述每个月收益的波动;均值标准误 SE 描述样本均值作为估计量的波动。独立同分布近似下:

样本增加四倍,标准误才减半。若收益存在自相关或横截面聚类,上式会低估不确定性,需要 HAC、聚类或自助法等与数据结构一致的方法。

假设检验与 p 值

零假设 H0 是要接受数据挑战的具体命题,例如 μ=0;备择假设 H1 可以是 μ≠0。统计量:

p 值是:假设 H0 成立时,得到当前或更极端统计量的概率。 它不是 H0 为真的概率,不是结果由随机造成的概率,也不衡量收益的经济大小。

置信区间

一般形式是估计值加减临界值乘标准误:

95% 置信的频率学派含义是:若重复抽样并按同一规则构区间,长期有 95% 的区间覆盖固定真参数。它不表示本次区间有 95% 概率包含参数。

两类错误与功效

  • 第一类错误:H0 真实却拒绝,概率上限通常记为 α。
  • 第二类错误:H0 错误却未拒绝,概率记为 β。
  • 检验功效:1-β,即真实效应存在时被发现的概率。

降低显著水平会减少假阳性,但在样本不变时常增加假阴性。研究设计需要同时考虑效应大小、噪声、样本量和错误代价。

多重检验

Bonferroni 控制族错误率的简单规则是把单次门槛改为 α/M,其中 M 是检验数;Benjamini–Hochberg 更关注发现中的预期假发现比例。资产定价中检验彼此相关、尝试次数常不透明,因此没有一个校正能替代完整研究日志、样本外验证和经济机制。

Python 最小实验

下面用固定随机种子模拟 100 个无效因子,每个有 60 个月标准正态收益,并计算传统双侧 t 检验下的假阳性数。

PYTHON 可复现实验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np
from scipy import stats

rng = np.random.default_rng(42)
returns = rng.normal(0, 1, size=(60, 100))
means = returns.mean(axis=0)
ses = returns.std(axis=0, ddof=1) / np.sqrt(returns.shape[0])
t_values = means / ses
p_values = 2 * stats.t.sf(np.abs(t_values), df=returns.shape[0] - 1)

false_positives = int((p_values < 0.05).sum())
bonferroni_positives = int((p_values < 0.05 / 100).sum())
print(false_positives, bonferroni_positives)
assert 0 <= false_positives <= 100

一次模拟的数字可能高于或低于 5;固定种子只是保证教学结果可复现。真正含义来自重复抽样分布,而不是某次恰好得到的计数。

A 股实现注意事项

  1. 横截面并不独立。 同行业股票共享政策和基本面冲击,把每只股票当作独立观测会夸大有效样本量。
  2. 时间序列并不独立。 重叠持有期、平滑估值、涨跌停和缓慢调仓会造成自相关,普通标准误通常偏小。
  3. 制度分段。 股权分置改革、注册制、涨跌停制度、交易费用和投资者结构改变可能使总体分布发生变化。跨时期平均不一定对应一个稳定总体。
  4. 小盘支配。 等权结果可能由数量多、收益极端、成本高的微盘股主导。统计显著不代表大规模资金可实现。
  5. 试验次数。 若同一数据上尝试估值分母、滞后月数、去极值阈值、股票池和持有期,每一次都属于研究自由度,应纳入多重检验和样本外设计。
  6. 退市与缺失。 删除亏损、退市或缺字段股票会改变样本进入机制,标准误无法修复这种系统性选择偏差。

常见错误与边界

  • p=0.03 被写成“零假设只有 3% 概率为真”。
  • p>0.05 被写成“证明没有效应”。它也可能是样本小、噪声大、检验功效不足。
  • 只报告显著性,不报告月均收益、成本、置信区间和样本期。
  • 根据看到的数据方向把双侧检验改成单侧检验。
  • 同一最终测试集被反复查看和调参,实际上已经变成训练集。
  • 把月份×股票数当作完全独立观测数,忽略时间和行业相关。
  • 从数百个信号中挑最高 t 值后仍使用单次检验的临界值。

统计方法也不能纠正坏数据、未来函数或不可交易价格。若数据生成过程错了,更精确的标准误只会让错误结论显得更有把握。

原书与论文

原书第 2 章(PDF 文件页 27–96)涉及因子模型和实证检验,附录 A(381–388)提供统计基础。本讲把显著性语言前置,后续第 10、17、20 讲会分别处理回归标准误、因子评价和因子动物园。

核心阅读是 Harvey、Liu 与 Zhu(2016),作者把已发表因子的累积搜索纳入显著性门槛讨论:DOI 10.1093/rfs/hhv059。不要只记住某个 t 值阈值;重点读他们怎样估计试验数量与相关结构。

练习

  1. 64 个月平均收益 0.8%、标准差 4%,在独立近似下计算标准误和 t 值。
  2. 用自己的话解释“95% 置信区间”,并写出一个常见但错误的概率解释。
  3. 20 个独立无效检验在 5% 门槛下,至少一个假阳性的概率是多少?
  4. 设计一份因子研究日志,至少记录变量、股票池、样本、滞后、持有期、成本和查看结果的时间。
  5. 如果某因子毛收益 t=3,但扣除合理成本后平均收益接近零,统计结论和投资结论分别是什么?

校验:第 1 题标准误 0.5%,t=1.6;第 3 题为 1-0.95²⁰,约 64.15%。

小结与下一步

样本统计量只是未知总体参数的含噪估计。标准误量化估计精度,p 值是在零假设下评价数据极端程度,置信区间展示一组与数据相容的参数。任何显著性都依赖抽样和误差结构,多重尝试会系统性制造漂亮结果。

下一讲把这种推断语言放进线性回归,理解 Alpha、Beta、残差和 R² 是怎样从最小二乘产生的。


因子投资-03-概率抽样显著性与置信区间
https://www.polarishaw.top/2026/07/17/因子投资-03-概率抽样显著性与置信区间/
作者
Polaris
发布于
2026年7月17日
许可协议