Jikipedia
Jikipedia量化聚宽量化课堂(低频量化策略 43 篇)因子研究四:市值与行业的中性化
第 30 篇

因子研究四:市值与行业的中性化

因子研究系列第四篇(postId=4594,作者 Sunx,编辑肖睿,2017-01-19 上线)。前三篇发现单因子「最大/最小端都赚钱、走势杂乱」,本篇给出解释与修法:因子取值被市值与行业污染,所以要先按分组做去极值(缩尾/截尾)与中性化(标准化),再分组回测。全篇用 BP 因子做贯穿案例,方法底座是第 18 篇的多回测/分位回测框架。核心结论:处理后的 BP 分位回测区分度与稳定性明显变好;市值、行业两个干扰源里,行业的干扰更大。素材见 raw/collections/jq-quant-classroom/30-30-因子研究四-市值与行业的中性化md.md。

量化因子研究中性化缩尾去极值标准化BP

这是什么

一篇「因子预处理 + 分组回测」的方法论案例。它先说清一个现象:单因子的值在未经处理时跨股票不可比(BP 为例:银行股平均 >1,互联网相关服务近一年平均约 0.1;大盘股 BP 一般比小盘股高)——直接按 BP 排序会「只买银行不买科技」。于是把受同样因素影响的股票归成堆(按市值、按行业),堆内做去极值、中性化,再用第 18 篇的框架做分组(分位)回测看效果。

核心要点

为什么单因子不可比(以 BP 为例)

  • 银行股 BP 平均 >1,互联网相关服务近一年平均约 0.1;大盘股 BP 一般比小盘高。以为「高 BP = 低估」会只买银行、不买科技——不合理。
  • 市值端:2005–2016 每年年底按总市值分三组(group1 小 / group2 中 / group3 大)看 BP 均值——牛市 BP 低、熊市 BP 高;早年大盘股受追捧(估值高、BP 相对低),2008 年后反转:小盘股更被关注、估值相对高、BP 相对低
  • 2016 年底分组的 BP 分布:各组的一至四阶矩(均值、方差、峰度、偏度)都不同;看似对数正态,但试过对数转换后仍离正态很远 → 后续处理用 BP 原始值而非对数值。

按市值分组的研究流程(框架示范)

  • 三个市值等权基准:按当天市值排序分三组,每月初等权持有组内「上月未停牌」股票;2006-02-01 ~ 2016-11-01,初始资金 200 万,上证股票。结果:2008 年后小市值组收益明显高(对应 BP 组间排名反转的时点)。
  • 每个市值组内再按 BP 分 10 组回测:小市值各 BP 分位收益都明显高、最大回撤也更小;各组内 BP 越大回报相对越高;高 BP 结合等权基准对冲后超额回撤低。
  • 小市值中 BP 不带来额外超额(小市值整体好,但 BP 在小市值内部区分不出超额),大市值中 BP 的超额很好
  • 对数轴超额走势:大市值高 BP 超额持续扩大;小市值高 BP 的超额主要产生于 2011 年前,之后回撤,BP 最大的小市值股完全没有超额。判断:2011 年前市场认 BP 价值投资(大中小市值都认,中小市值回报更多);2011 年后高 BP 回报集中到大市值,小市值转向炒作——这是风格切换的时序证据。

按行业分组

  • 行业分类:证监会行业分类 / 聚宽行业分类。把证监会细分行业按首字母合并到上级(A01–A05 → A),得约 14–16 个一级行业(A 农业、B 开采、C 制造、D 能源、E 建筑、F 零售、G 交通运输、H 餐饮住宿、I IT、J 金融、K 房产、L 商务租赁、M 研发、N 公共产品、P 教育、R 文化、S 综合等);删除无行业(2016 年底约占总股票 9%)、只有一只股票的行业、双行业标签的股票。
  • 行业 BP 观察:金融 BP 各年都最高、IT 相对低(行业估值逻辑稳定);多数行业 BP 在 2015 年低于 2014/2016 年(跟随大盘波动);偏离这两条规律的行业体现投资风向变动。
  • 行业数多,不为每个行业分别回测;直接给「按行业处理后的整体 BP 回测」。

两个处理方法

  • 缩尾(winsorize)与截尾(trim):尾 = 分布图拖长但概率很小的部分。缩尾 = 超阈值的值用阈值替换(如 BP>1.5 就按 1.5 处理);截尾 = 把超阈值样本删掉再处理。阈值两种生成法:指定分位(如最大/最小 1%);或数据驱动,用均值 ± 标准差圈范围(本文用均值 ±2σ ≈ 覆盖 95% 概率)。对 2016 年底 BP 缩尾后右尾明显被压向中间(原始分布右拖长)。
  • 中性化 / 标准化:把原始值减去均值再除以标准差,(x−μ)/σ → 均值 0、一个标准差 = 1。类比:「3 个苹果和 2 个橘子哪个好?折成人民币标准就能比」——假设各行业(市值组)BP 最大的公司可能有相同的「相对低估」程度,标准化后就可比了。缩尾后再做市值中性化的分布更像正态。
  • 缩尾 vs 截尾对样本量的影响:截尾会减少备选股票池。对纯排序的单因子策略,缩尾影响不大——排序只与相对大小有关,除非处理参数碰到原始值很多。

处理后的回测结论

  • 市值中性化后:BP 分位回测区分度明显、时序一致;高 BP 相对等权全指的超额持续放大;超额收益最大回撤最小处(第 2、3 分位)约 10%——「已经还不错」。
  • 行业中性化后:与市值中性化都明显好于不处理;行业中性化的分位区分度比市值中性化更好——说明对 BP 而言,行业干扰 > 市值干扰(不同行业估值逻辑差异大,不同市值 BP 也有均值/分布差异)。
  • 小结:具体股票分类与中性化标准要随因子变(市值/行业是常用特征,但不是所有因子都适用);找到合适标准后按本文流程做分组研究 + 中性化更科学。

机制 / 论证

  • 为什么「一组内处理」而不全球处理:BP 的取值受投资者对不同行业/规模公司的成长预期与市场热点影响。把「受影响因素相同」的股票归一堆,堆内去极值/中性化,堆之间才可比——这是处理「行业/市值风格污染」的通用思路。
  • 为什么缩尾而不是截尾:两者都是处理极值;缩尾用阈值替换(保留样本),截尾删除样本(股票池变小)。对排序类因子影响有限,但缩尾不丢样本、适合排序前先压掉极端值。
  • 为什么中性化用 (x−μ)/σ:把「绝对水平」换成「相对组内均值的偏离度」,让不同组的股票在同尺子上比——「每组最大的 BP 公司可能同样被低估」这个假设是中性化能比的理论前提。
  • 为什么处理前 BP 分位走势乱:分位混着不同市值(BP 高低与市值负相关)与不同行业(金融天然高 BP),组内差异被组间差异淹没;分组 + 处理后,分位间的超额才稳定显示出来。

可操作

  • 因子预处理流水线(本文示范):分组成堆(市值三分组 / 行业分组)→ 组内缩尾(均值 ±2σ 或指定分位)→ 组内中性化标准化 (x−μ)/σ → 再用处理后的因子排序、分位回测。
  • 回测框架沿用第 18 篇 parameter_analysis:等权全指/分市值等权作基准、超额收益与超额回撤、对数轴(细节与用法见 多回测与参数网格分析(分位回测、超额评估))。
  • 分组回测参数(照录):市值三组(按当天总市值排序)、组内 BP 十分位、月度调仓、等权、2006-02-01~2016-11-01、初始资金 2,000,000、上证股票。
  • 行业预处理细节:删除无行业(2016 底约 9%)、单只股票行业、双行业标签股票;行业合并到一级。
  • 反用价值:BP 处理前「高 BP = 低估」的朴素用法会系统性偏向银行/大盘——先问「这个因子受什么污染」,再决定分组与中性化标准(不限于市值/行业)。

术语

  • 去极值:处理分布两端极端值(缩尾/截尾的总称)。
  • 缩尾(winsorize):超过阈值的值替换为阈值。
  • 截尾(trim):删除超过阈值的样本。
  • 中性化 / 标准化(neutralize / standardize):(x−μ)/σ,使均值 0、方差 1,消除组间水平差。
  • 市值/行业暴露:组合因成分构成不同而天然偏向某类市值或行业(风格偏差),是因子比较时的干扰源。
  • 超额收益/超额回撤:相对匹配基准(等权全指等)的收益与回撤,见 回测评价三指标(收益 / 最大回撤 / 交易次数)多回测与参数网格分析(分位回测、超额评估)

不确定 / 待验证

  • 分组回测的收益/回撤具体数字大多在附图表里,raw 正文只有定性(「约 10%」的超额回撤是少数给数的点)。
  • 「BP 干扰中行业的问题更大」是基于行业中性化区分度优于市值中性化的判断,无单一数字量化两源贡献。
  • 市值三分组阈值、±2σ 缩尾、一级行业合并等参数都是本案例选择;换因子/换分组是否同样有效未给通用法则。
  • 文中「对数转换后仍离正态很远所以用原始值」的判据未量化;分布图形状描述(对数正态、右拖尾)基于图。
  • 处理只讲了市值与行业两个维度;其他污染源(流动性、波动率暴露等)未展开;2011 年前后风格切换的解释是推测。
  • 代码(去极值/中性化实现、分组回测)与函数、变量说明书在附图,raw 未含完整实现 [需要验证]。

相关

更新 2026-09-06

检索知识库

按标题、类型或正文检索