原始因子值(如「20 日涨幅 15%」)不能直接用:量纲混杂、行业暴露污染、因子间相关性纠缠。本篇是因子从「原始值」到「可用信号」的四个加工工序——每一步都有数学选择,每个选择都影响检验与实盘。
工序一:横截面标准化(Z-Score vs Rank)
Z-Score:z = (x − μ_cross) / σ_cross。保留距离信息(差多少)、对线性模型友好。弱点:对异常值敏感——一只暴涨 300% 的妖股会把全市场的 z 值挤扁。所以 z 之前必须 winsorize(±3σ 或 ±3×MAD 截尾)。
Rank(秩)/百分位:转成横截面排名(0–1)。对任何单调变换免疫——异常值自动「降服」,分布无关。弱点:丢失「差多少」的信息(第 1 名比第 2 名好多少被抹平)。
选择的经验法则:因子分布近似正态、极端值可解释 → Z-Score;分布重尾、极端值可疑 → Rank。量价类因子(成交额、换手)几乎必然重尾 → Rank 或对数化后 z;财务比率 → winsorize + 行业内 z。两者对 IC 的差异通常不大(IC 只用到排序),但合成权重与组合优化的输入对分布敏感,全流程要统一。
行业处理嵌在标准化里:行业内标准化(分组 z-score/rank)是最简洁的「去行业」方式,与回归中性化(工序二)二选一或叠加。
工序二:中性化——剥离不想要的风险暴露
目的:把因子中「行业 × 市值 × Beta」的系统性成分剥掉,只留下选股信息。标准做法是横截面回归取残差:
| |
为什么不用「市值 × 因子值」简单剔除?因为暴露是非线性的(小市值因子的暴露集中在尾部)、且行业暴露是离散的——回归法统一处理离散与连续变量,残差的「正交性」在统计上有保证。
中性化的成本要心里有数:中性化后 IC 下降是常态(你主动放弃了行业/市值暴露的收益,比如小市值搭车)。判断标准:中性化前 IC 高而中性化后消失 → 你原本赚的是风格钱,不是因子钱——这个「消失」是诚实而非损失(例子:纯「低价股」因子中性化后 IC 从 0.05 掉到 0.01,说明它主要是小市值的代理,见因子投资概论 )。
工序三:合成因子——等权、IC 加权与优化加权
多个低相关因子的合成,分散化收益远超单因子增强(前提:先查相关性,见因子库建设 ):
- 等权合成:各因子标准化后求和。零参数、防过拟合——基准方案,任何复杂加权都要先跑赢等权才有存在意义;
- IC 加权(滚动 IC):
w_k = mean(IC_k, 最近 N 期),动量式地给近期有效的因子加权重。折中方案;注意滚动窗口的选择本身就是参数(12/24 期),且在因子失效拐点有「追高」风险; - 优化加权:最大化合成因子的复合 IC(带权重非负约束)或组合层的均值-方差优化(见约束优化 )。参数最多、最容易过拟合——必须配样本外验证(见Walk-Forward )。
合成的层次纪律:先在「同类内合成」(价值家族内部合成一个价值大因子),再跨类合成——避免 20 个价值变体淹没 2 个量价信号。每个大类因子的合成权重独立检验。
工序四:正交化——处理「因子打架」
当两个因子相关性 0.7+(如动量与分析师上调),等权合成等于重复计数。两种处理:
- Schmidt 正交化:按预定顺序,把后面的因子对前面的因子回归取残差——「残差动量 = 剔除价值后的动量」。适合「主从关系」明确(我要纯净的 X,剥离 Y 的搭车成分)。顺序就是假设,要写进文档;
- PCA / 对称正交:因子组整体旋转到互不相关的主成分——适合不知道谁主谁从的场景。弱点:主成分失去经济学含义,且样本间旋转方向可能跳变,实盘稳定性要检验。
正交化的典型应用——残差动量:普通动量因子被批「暴跌时暴露差」(动量崩溃),把动量对市场与行业收益回归取残差后,崩溃特征显著减弱、IC 稳定性提升——这是「先剥离系统性成分,再利用特异性成分」思想的招牌案例(与统计套利的 PCA 中性化同源,见统计套利 )。
加工流程的工程化
四个工序串联成一条可配置的流水线(实现骨架见基本面因子构建规范 与因子存储 ):
| |
每一步都是配置项并记录进因子元数据——「这个 IC 是中性化前的还是后的」必须能一眼查到,否则因子之间的绩效比较全是歧义。新手最常见的事故:A 因子用中性化口径、B 因子用原始口径合成,合成因子的 IC 完全不可解释。