经验贝叶斯 Beta-Binomial 收缩 (Empirical Bayes Beta-Binomial)

大白话:你说「我认识的 4 个人里有 1 个买了这只股票」,就断言「买的人占 25%」——这个数很不可靠,因为 4 个样本太少。

办法是拿全市场当参照:如果今天全市场买的人占 38%,那你的 1/4 就不该当真值,得往 38% 那边收一点;但如果你有 40 个样本,收得就少。样本越少,越听市场的;样本越多,越信自己的。

六步做法

第一步:构造严格的股票—日分钟样本

对每个交易日,在每只股票内部按交易分钟排序。只有 \gamma_{i,d,t}、\varepsilon^{20}_{i,d,t}、\varepsilon^{80}_{i,d,t} 都有效时,该分钟才进入成交状态判断。

  • 当前分歧状态定义为 \gamma_{i,d,t} > 0
  • 分歧命中只从当前尚未分歧的分钟出发(\gamma_{i,d,t} < 0)
  • 放量事件组 H 定义为 \varepsilon^{80}_{i,d,t} > 0;非放量对照组 \bar H 是在有效成交区间内所有不满足 \varepsilon^{80}_{i,d,t} > 0 的分钟——因此包含正常成交与异常缩量

对候选分钟 t,严格检查后续第 1 至第 5 个交易分钟的 \gamma_{i,d,t} 是否全部有效。五个位置均有效时该分钟才具备观察资格:只要其中任一 \gamma_{i,d,t} > 0 就记为一次命中。最后 5 个交易分钟因没有完整未来窗口而自动剔除。午休不当作额外的钟表时间,窗口按排序后的交易分钟位置推进。

第二步:压缩为两组充分统计量

对股票 i、日 d 和状态组 g:n 为符合条件的分钟数,h 为其中未来 5 分钟出现分歧的命中数。构造四组事件:

符号 含义
n_{i,d,H} 股票 i 在日期 d 符合异常放量 H、当前尚未分歧且未来 5 分钟数据完整的分钟数量
h_{i,d,H} 上述异常放量分钟中,未来 1–5 分钟至少出现一次分歧的分钟数量
n_{i,d,\bar H} 非放量对照组 \bar H 的有效分钟数量(\bar H 包括正常成交和异常缩量)
h_{i,d,\bar H} 上述非放量分钟中,未来 1–5 分钟至少出现一次分歧的分钟数量

第三步:估计每套先验的收缩中心

对放量组和非放量组分别汇总全市场的命中数与样本数。市场平均激活概率 m 不是股票事件率的简单平均,而是把所有分钟合并后的加权概率——样本更多的股票贡献更大。此外,通过分子加 0.5、分母加 1,避免全市场当日恰好零命中或全命中时得到 0 或 1。

m_{d,H} = \frac{\sum_i h_{i,d,H} + 0.5}{\sum_i n_{i,d,H} + 1}, \qquad m_{d,\bar H} = \frac{\sum_i h_{i,d,\bar H} + 0.5}{\sum_i n_{i,d,\bar H} + 1}

第四步:拆真实异质性与有限样本噪声

对日期 d 和状态组 g \in \{H, \bar H\},股票的原始分歧激活概率定义为:

r_{i,d,g} = \frac{h_{i,d,g}}{n_{i,d,g}} 不同股票的 r_{i,d,g} 在横截面上存在差异,但该差异既可能来自股票真实的成交响应特质,也可能只是有限样本导致的二项抽样波动。要判断这些横截面差异究竟包含多少真实信息,需要把观察到的事件率波动拆分为「股票间真实异质性」与「有限样本抽样噪声」两部分。 观察方差(以事件数 n_i 加权): v^{obs} = \frac{\sum_i n_i\left(r_i - \bar p\right)^2}{\sum_i n_i}

其中 \bar p 是全市场当日同类事件的合并响应概率。

有限样本产生的平均二项抽样噪声:

v^{noise} = \bar p\left(1-\bar p\right)\frac{N}{\sum_i n_i} 股票间真实异质性估计为: v^{between} = \max\left(v^{obs} - v^{noise},\ 0\right)

这一套是矩估计:不需要假设激活概率服从某个具体的分布族,只用「二项抽样噪声的期望等于 p(1-p) 乘以有效样本量的倒数」这一条。

第五步:把均值和真实方差转成 Beta 先验

得到市场平均概率 m_{d,g} 和股票间真实方差 v^{between}_{d,g} 后,将二者转换为 Beta 先验。m_{d,g} 决定先验的中心,\kappa_{d,g} 表示先验浓度(可以理解为市场先验提供的「等价样本量」):

\kappa_{d,g} = \mathrm{clip}\left(\frac{m_{d,g}\left(1-m_{d,g}\right)}{v^{between}_{d,g}},\ 1,\ 5,\ 200\right)

\alpha_{d,g} = m_{d,g}\,\kappa_{d,g}, \qquad \beta_{d,g} = \left(1-m_{d,g}\right)\kappa_{d,g}

解释:

  • 股票间真实方差较小时,\kappa_{d,g} 较大 → 说明股票差异主要是噪声 → 应加强收缩
  • 真实方差较大时,\kappa_{d,g} 较小 → 应保留更多个股差异
  • 实现中 \kappa_{d,g} 限制在 5 至 200;近似相当于额外加入 200 个按照市场平均概率分布的虚拟分抽(原文表述为"虚拟分抽",即虚拟的伯努利抽样)
  • 放量组 H 与非放量组 \bar H 的先验参数分别按日估计

第六步:完成 Beta-Binomial 后验更新与因子值

\tilde p_{i,d,g} = \frac{h_{i,d,g} + \alpha_{d,g}}{n_{i,d,g} + \alpha_{d,g} + \beta_{d,g}}

也可以写成股票原始命中率与市场先验均值的加权平均:

\tilde p_{i,d,g} = w_{i,d,g}\frac{h_{i,d,g}}{n_{i,d,g}} + \left(1-w_{i,d,g}\right)m_{d,g}, \qquad w_{i,d,g} = \frac{n_{i,d,g}}{n_{i,d,g} + \kappa_{d,g}}

w_{i,d,g} 是股票自身数据的权重,1-w_{i,d,g} 是市场先验的权重。有效分钟数越多,后验概率越接近股票自身命中率;先验浓度越大或个股样本越少,后验概率越接近当日市场平均概率 m_{d,g}。

最终因子是两组后验概率的对数优势:

F^{B,H}_{i,d} = \log\left(\tilde p_{i,d,\bar H}\right) - \log\left(\tilde p_{i,d,H}\right)

该因子本质上衡量「非放量状态相对于异常放量状态,更容易激活后续分歧的程度」。因子为正,说明异常放量后的分歧激活概率相对较低,即股票能够吸收异常放量带来的交易冲击;因子越大,吸收能力越强。因子为负,说明异常放量更容易引发后续分歧,放量更可能包含尚未被价格充分吸收的信息冲击。

缩量镜像版:事件组改为异常缩量 L,对照组改为非缩量 \bar L = N + H,并分别估计两组的日度 Beta 先验。核心是比较「异常缩量」和「非缩量」状态下的分歧激活概率,而不是将放量因子简单取反。

结果:为什么放量有效、缩量失效

因子 IC 均值 IC 标准差 ICIR 多空年化 多头年化 夏普 最大回撤 多头换手
bayesHighVol_onset 0.039 0.077 0.510 32.22% 11.82% 4.189 −6.77% 13.04%
bayesLowVol_onset 0.008 0.040 0.209 3.88% 3.90% 0.916 −8.19% 21.18%

贝叶斯优化显著提升了放量因子的表现(IC 0.027 → 0.039),却削弱了缩量因子的有效性(IC 0.028 → 0.008)。

为什么会有这个非对称结果

用 2026 年截至 6 月 30 日的全部可用分钟数据,对放量与缩量事件率做逐日方差分解:

事件类型 真实异质性占比中位数 二项抽样噪声占比中位数 事件分钟数中位数
异常放量 47.34% 52.66% 34
异常缩量 61.53% 38.47% 42
缩量 − 放量 +14.19% −14.19% +8

2026 年上半年每一天,缩量事件率的股票间差异都比放量事件率包含更多真实异质性。

含义是:

  • 放量事件率的股票间差异中,约一半可能只是有限事件数量造成的随机命中差异 → 适合采用经验贝叶斯方法进行动态收缩
  • 缩量事件率的股票间差异更多来自稳定的真实差别,而非随机抽样波动。这些差异可能承载股票流动性、筹码结构、交易连续性和投资者构成等长期特征
  • 如果对所有股票采用统一的强收缩,会将一部分真实股票特质误判为噪声

所以缩量事件率使用相同的全市场单一先验时应更加谨慎。 论文的结论是「放量事件率包含更高比例的有限样本噪声,适合动态收缩;缩量事件率包含更多真实而稳定的股票异质性,使用相同的全市场单一先验时应更加谨慎」。

方法论要点

收缩的强度由数据决定,而不是由研究者设定。 论文的逻辑链是:

  1. 因子横截面表现的差异,根因是事件率横截面差异的性质不同
  2. 事件率横截面差异的性质,用方差分解量化(矩估计,不需要分布假设)
  3. 方差决定先验浓度 \kappa
  4. 先验浓度决定收缩力度

这与「统一用一套先验」的常见做法相反:本文的先验是每天、每个状态组单独估计的。

与本 wiki 其他页面的接口

Open Questions

  • 矩估计的 \kappa 只有一个自由度,而 Beta-Binomial 的完整先验应该同时匹配均值和方差。只匹配均值方差的一部分,会不会让后验在极端事件率上偏移
  • 先验按日估计,等于每天重新决定收缩强度。会不会在事件率横截面本来就没什么差异的日子(真实异质性低)过度收缩
  • 分组只有 H / \bar H 两组。缩量与正常成交本该分开——为什么把缩量放进对照组,以及这样做的代价
  • v^{between} 截断在 0:完全为 0 时 \kappa 会取到上界 200,此时后验几乎完全等于市场均值——这个极端情形下因子是否退化为常数
  • A 股的涨跌停与 T+1:事件在日内发生、持仓隔夜,与 T+0 市场的结论可能不同

Sources