多因子模型怎么搭:把多个标签合成一个分数
青铜段位讲过,单个因子时好时坏——有些年份很灵,有些年份让人难受。既然单一维度只能解释股价差异的一部分,自然的想法就是把几个因子合起来用。这就是多因子模型。
为什么要合成
不同因子捕捉的是不同维度的信息,而且它们失效的时点往往不一样。合在一起,组合的波动通常比单因子更小,体验也更平稳。这不是说收益一定更高,而是同样的收益水平上,过程更容易坚持下来。
合成要走四步
其一,去极值。极端值会主导排序结果。一家市值特别大的公司,会把整个市值因子的分布拉歪;一个异常高的增速,会让成长因子失去分辨力。常用做法是分位数截尾,把超出某个分位的值拉回到分位上;也有人用中位数加减若干倍绝对偏差的方式处理,对异常值更不敏感。
第二步,标准化。不同因子的量纲完全不同——市值是几百亿的数字,净资产收益率是百分之十几。要变成可比的分数才能相加。常见做法是减均值除标准差的标准化;更稳健的是排序标准化,把排名映射到零到一的区间,这样完全不受异常值影响。如果在行业内做标准化,还能顺带解决行业之间的可比性问题。
第三步,加权。怎么分配几个因子的权重,有三类做法。等权最简单,不需要估计任何东西,稳健但没用上信息;按因子历史表现加权,有效但容易追高——过去表现好的因子被给更多权重,正好在它要回落的时候;回归法是用历史收益对因子做横截面回归,回归系数就是权重,它能自动处理因子之间的相关性,但估计误差也更大。
第四步,处理重复。这一步常被忽略,却很要紧。因子之间常常高度相关:价值和低波有重叠,质量和成长也有重叠。不处理的话,等于给同一个信息加了两倍权重,你以为分散了,其实没有。常用的手段是正交化——把新因子对已有因子做回归,取残差部分,只保留它独有的信息。具体做法在王者段位展开。
一条提醒
合成的步骤越多,可调的参数就越多,过拟合的空间也就越大。所以每加一个处理,都要问一句:这一步有独立的道理,还是只是让回测曲线变得好看?
区分这两者的办法是:把这一步去掉,看结果是不是明显变差;以及换一批数据、换一段时间,这一步是不是还成立。如果只在特定样本里有效,多半是调出来的,不是想出来的。
一句人话:多因子合成就像把几个评委的打分汇总成一个总分。要让打分可比(标准化)、别让一个评委说了算(去极值)、商量好权重(加权),还要注意评委们可能只是重复了同一个意见(正交化)。
写在最后
分数合出来了,下一个问题是:它到底有没有用?下一篇讲因子检验的三件套——IC、分层回测与多空组合。
本文为投研学习参考资料,仅供研究参考,不作为投资决策依据。市场有风险,投资需谨慎。
← 返回智远教投