1. HHI的逻辑及局限性
有一个指标叫 HHI(赫芬达尔指数),原本用来衡量"集中度"。有研究声称它能预测股票收益,而且呈现出 U 形特征:HHI 特别高和特别低的股票,收益都好;中间区间的反而不行。
但当我实际实现这个因子后,发现它与一篇研报的结论始终对不齐。排查了各种可能的原因,最终定位到问题所在:HHI 因子在 ETF 场景下表达的,可能并不是真正的"集中度",而是在计算"这只股票被几只 ETF 持有"。
用一个班级成绩的"集中度"来类比,能更直观地理解这个毛病:
- 班上只有 1 个学生时,无论他考多少分,集中度都恒等于 100%,这个值完全没有特征意义;
- 有 2 个学生时,集中度只能落在少数几个固定值上(比如 50/50 或 90/10),无法连续变化,大量并列;
- 只有当班里有几十个学生时,集中度才能在 0 到 1 之间平滑取值,才真正具备区分度。
回到 ETF 问题上,HHI 的取值范围 [1/n, 1] 会随着"被多少只 ETF 持有"的 n 一起漂移。n=1 时 HHI 恒为 1(这部分占样本 11.6%,等于没有信息),n=2 时只有几个离散取值,只有被几十只 ETF 持有时,HHI 才能正常变化。
所以,"HHI 高"实际上对应"被很少 ETF 持有"的小盘冷门股,"HHI 低"对应"被很多 ETF 持有"的大盘核心股。这两类完全不同的股票被硬塞进同一个排序里做多空,从逻辑上就站不住脚。
因此我不确定那篇研报是否发现了这个问题,以及是否找到了对应的解决办法。如果没有处理过,就无法推导出报告中的结论。毕竟这个因子一旦放到 ETF 上,就会暴露出上面所说的数据层面的问题。
因子定义如下:
π_if = Shares_if / Σ_f Shares_if # 股票 i 被 ETF f 持有的份额占比
HHI_i = Σ_f π_if²
其中 Shares_if 由 PCF 申赎清单重建(篮子份数 × 成分数量)。
HHI 的取值范围是 [1/n, 1]:
- 当某只股票被 100 只 ETF 均匀持有时,HHI 趋近 0;
- 当只被 1 只 ETF 持有时,HHI 恒等于 1。
原始研报的论点是:ETF 是被动且刚性的资金。一旦某只股票高度依赖单只 ETF,它对该 ETF 的申赎行为就极度敏感——大额赎回会造成非基本面抛压,资金流入又会形成集中买盘。因此报告认为 HHI 与未来收益呈 U 形关系:
- 低 HHI(极度分散):宽基指数核心成分,享受 ETF 持续扩容带来的稳定增量资金;
- 高 HHI(极度集中):主题 ETF 的独门重仓股,受主题资金追捧时弹性最大;
- 中间段:既没有宽基的稳定流入,也没有主题的爆发力,表现反而最差。
报告给出的分组结果显示:组 1 年化超额 10.33%、组 5 为 12.63%,两端高、中间低。
2. HHI的显著性
基于前面的原理分析与实证结果,HHI 这个因子确实没有独立的预测能力。它看起来能选股,只是因为它碰巧和"小盘股"绑定在一起,而小盘股本身存在溢价。一旦把"小盘"这个因素排除掉,HHI 因子基本就没有超额了。
HHI 高的股票 = 被很少 ETF 持有 = 小盘股 = 有小盘溢价。
在这个链条里,真正贡献超额收益的是"小盘"这个属性,HHI 反而更像这条链上的一个"标签"。
实证中,在相同 ETF 家数的股票内部比较 HHI(t 值从 -2.41 变为 0.42),或者排除掉 n_etf=1、2 的极端股票(t 值降至 -0.06),信号基本为零。这说明 HHI 的全部"显著性"都依赖 n_etf 的极端取值。
3. HHI可以作为一个系数
原本是把 HHI 当作选股因子来用,但它在截面上没有 alpha。不过换一个思路,可以把这个因子作为系数来使用。逻辑是:
- 一只股票被 1 只 ETF 持有 → HHI² = 1,权重最大;
- 被 80 只 ETF 持有 → HHI² 接近 0,权重最小。
所以 HHI² 在这里的作用是:给每只股票打一个"结构权重"。这个权重刻画的是"这只股票究竟是独门小盘股(权重大)还是核心大盘股(权重小)"。
它不是用来排序选股的,而是用来决定其他信号该放大多少。
这个系数可以作为某个因子的乘数,叠加成衍生因子。这一点我用另一个因子验证过,确实是存在的。
4. 实证过程
实现链路分四步:
1)持股重建。
用 PCF 的 QUANTITY 与 FIXED_CASH_AMOUNT 反推每份申赎篮子的份额数 units_per_basket = (Σ QUANTITY×P + 现金)/NAV,再乘以总份额得到实际持股。关键处理:A 股代码必须按 PCF 原始长度 6 位判定(港股 00700 补零后会与 A 股 000700 撞码);只保留成分全为 A 股的 ETF,避免跨境、商品、债券 ETF 无法定价导致持股被系统性高估。份额主源为 wind UNIT_TOTAL(万份 → 份),缺失时回退 ETF 日线字段。篮子份数合理性用「总份额 / 篮子份数应接近整数」校验,实测相对偏差中位数仅 0.08%。
2)因子计算。
在月末截面上,以 ETF 篮子市值权重计算 π,得到 HHI、Entropy、Top1 三个集中度指标,并同步计算 FF、OI、EOC、FP。
3)中性化。
用自建 Barra CNE5 十风格加行业哑变量做 OLS 取残差,得到 NHHI。
4)检验。
月频五分组,下月 VWAP 进场、下月末 VWAP 出场,计算 RankIC、ICIR 与各组年化收益。
5. 注意问题
回测细节上有几点必须固定下来,否则不同口径之间没法做横向比较:
- 其一,股票池在每月末剔除 ST、停牌、上市不足 60 个交易日、价格或市值缺失的样本,月均约 3,600 只;
- 其二,成交价一律使用当日成交额除以成交量得到的 VWAP,避免收盘价带来的不可实现收益;
- 其三,基准取中证全指 000985 替代万得全 A,超额收益因此会有小幅水平差,但不影响组间比较;
- 其四,中性化回归的截面样本与股票池保持一致,行业哑变量使用申万一级分类,缺失归入 UNKNOWN。
在 69 期月度截面上,HHI 的覆盖稳定在 3,500~3,700 只之间,没有缺失断档。
为了验证持股重建的正确性,额外做了两项交叉校验:
- 一是篮子份数应接近 50 万、100 万、200 万份的整数倍,实测相对偏差中位数 0.08%;
- 二是用持股总量除以自由流通股本得到 OI,其分布上界没有出现明显大于 1 的异常值,说明持股量级没有被系统性放大。
这两项都通过之后,才认定 HHI 的输入端是可信的。
6. 复现结果
| 口径 |
组1(低HHI) |
组2 |
组3 |
组4 |
组5(高HHI) |
| 报告 |
10.33% |
— |
— |
— |
12.63% |
| 原始 HHI |
-0.5% |
2.8% |
5.5% |
4.5% |
6.8% |
| 仅 Size 中性化 |
9.9% |
3.6% |
1.9% |
2.2% |
1.8% |
| 全风格+行业中性化 |
8.1% |
1.8% |
3.2% |
3.1% |
3.2% |
NHHI 的 RankIC 为 -0.0089、ICIR 为 -0.290,多空年化 -4.76%。
最大的遗憾是:U 形没有复现出来。
左端 9.9% 与报告的 10.33% 几乎一致,说明 π 的计算口径、ETF 宇宙、分组方式基本没有大问题;差异全部集中在右端——原始研报组 5 是 12.63%,我这里只有 1.8%。
尝试了三种中性化方式,对应得到三种不同形状(单调递增、单调递减、先降后平),没有任何一种能产生 U 形结论。
7. 问题分析
问题一:HHI 本质上是 Size 的代理。
截面 Spearman 相关稳定在 -0.62~-0.74(六年区间),均值 -0.667。低 HHI 等于被上百只 ETF 持有,等于大盘指数成分;高 HHI 等于小盘。2021~2026 年小盘风格占优,所以原始 HHI 单调递增(组 1 的 -0.5% → 组 5 的 +6.8%),本质上就是小市值溢价;中性化剥掉 Size 之后又变成单调递减,本质上是 2021~2022 年核心资产行情的残留。方向完全由「Size 怎么处理」决定,因子本身没有独立信息。
问题二:右端八成是机械值。
HHI 最高 10% 的样本中,80% 是 n_etf == 1 的股票。此时 HHI 恒等于 1,不携带任何信息。这些股票的市值中位数只有 36.8 亿元,属于主题 ETF 的独门重仓。而低 HHI 端(最低 10%)平均被 79 只 ETF 持有。两端的经济含义根本不对称:一端是「极度分散的高流动性大盘股」,另一端是「只有一家机构关注的小盘股」。把它们放进同一个排序里做多空,逻辑上不成立。
问题三:U 形跨档混合后是伪形状。
按 ETF 家数分 5 档,在档内再按 HHI 三分组:
| ETF家数档 |
占比 |
HHI低 |
HHI中 |
HHI高 |
| 1-2 |
18.0% |
5.5% |
10.5% |
6.0% |
| 3-5 |
14.5% |
7.8% |
6.6% |
4.0% |
| 6-15 |
29.1% |
5.0% |
3.6% |
3.1% |
| 16-50 |
22.9% |
1.2% |
1.6% |
2.2% |
| 51+ |
15.6% |
-5.1% |
0.5% |
-1.4% |
五档给出了五种完全不同的形状(倒 U、递减、递减、递增、弱 U)。所谓 U 形是跨档混合的产物,并不是真实的非线性规律。
问题四:离散并列污染分组。
n_etf ≤ 2 时,HHI 只能取几个离散值,11.6% 的样本 HHI 恰好等于 1。截面排序出现大量并列,rank(method="first") 按行序切分等于让高集中度端的成分随机化,进一步压低了右端的稳定性。
问题五:替代指标同样单调。
Top1 分组收益为 {-0.3%, 3.3%, 4.4%, 4.9%, 6.8%},Entropy 为 {6.7%, 4.9%, 5.7%, 2.3%, -0.5%},都是单调而非 U 形。三个指标方向一致,排除了「只有 HHI 这一个指标算错」的偶然性。
问题六:分组收益的统计显著性不足。
69 期样本下,NHHI 的 RankIC 均值仅 -0.0089、ICIR 为 -0.290,绝对值都不到 FF(-0.0214 / -0.289)的一半。即便只看多空,年化 -4.76% 在 69 个月里的 t 值也不足 2。换句话说,即使形状对上了,HHI 单独作为选股因子的信息量也偏弱。这与其「67% 波动由 Size 解释」的判断相互印证。
8. AI反馈的几个待进行的实证
1. 按 ETF 家数分层后再比较(首选)。
HHI 的可比性依赖于 n_etf。应该在 n_etf 的分档内做组内分位排名,或者直接用「相对于同 n_etf 分档中枢的偏离」作为因子值。这样低 HHI 与高 HHI 的比较才有意义。
2. 设定最低 ETF 家数门槛。
剔除 n_etf < 3 的样本(占 18%),或者把 n_etf == 1 单独作为一类、不参与排序。这是最小改动、最容易验证的一步。
3. 改用「相对集中度」而非绝对 HHI。
构造 ResidHHI = HHI - E[HHI | n_etf 分档],消除 ETF 家数对 HHI 值域的机械约束(n_etf=1 时 HHI 必为 1,n_etf=2 时必 ≥ 0.5)。
4. 修掉并列处理。
截面排序改用 rank(method="average"),对 HHI 取值为 1 的样本随机打散(jitter)后再分组,避免行序导致的系统性偏置。
5. 用分组方式验证而非残差。
报告若报的是原始 HHI,那么 2021~2026 年 A 股大盘股并没有 10% 的超额,逻辑上不成立。建议改成「HHI 三分位 × Size 三分位」的 3×3 联合分组,直接观察 U 形是否在控制 Size 后依然残留。
6. 重新审视 EOC 中的 HHI² 项。
EOC = OI_z × HHI_z² 的平方项隐含假定了 HHI 的 U 形。既然 HHI 不呈 U 形,平方项的作用只是放大 HHI 的噪声权重,并不增加信息。但 EOC 的 IC 0.0146 与报告中的 0.017 吻合,说明有效信息来自 OI 一侧。建议保留 EOC,但改用秩次而非 z 分数平方,或者直接测试 OI × HHI 与 OI × HHI² 哪个更稳健。