【量化金融】因子的中性化

为什么中性化?

在因子投资的研究中,深入探索和理解因子的作用至关重要,包括对因子的检验和因子收益的计算等关键步骤。而为了提高因子的表现,降低因子在各个维度的风险暴露,我们通常会遵循一个去极值、标准化、中性化的标准流程。其中,去极值、标准化都很容易理解,那么什么叫中性化,又如何中性化呢?

我们一般会针对因子在行业上的暴露中性化,有些因子与特定行业关联紧密,例如银行业或制造业。当我们仅仅通过回归分析得出一个因子与收益的关系良好,但没有考虑到不同行业之间的差异时,我们可能过早得出这一因子非常有效的结论。

市值也是一个需要格外留意的因素。在过去,小市值股票通常表现出更高的平均收益,而如今大市值股票可能更具吸引力。若某因子在小市值股票中表现出色,我们需要搞清楚,是因为市值本身的作用还是因为因子本身的效用。市值中性化有助于解决这一谜团。

当然我们也可以对更多的风险因子进行中性化,比如Barra的十个风险因子就是常用的用于风险中性化的指标。

为什么要中性化?用生活中的场景举例,通常我们可以用价格评价一个苹果的好坏,毕竟一分价钱一分货,但是进口的苹果一般会比国产贵不少,能说明进口苹果一定好吗?显然不行!所以,对“苹果价格”这一因子在“税”这一维度进行中性化,消除关税的影响,能让这一评价体系更有效。

如何中性化?

因子对离散因素的中性化

但是还要关注一点,“税”这一维度应该如何度量。我们可以将其分为“有关税”和“无关税”,就像是股票的行业信息一样,针对这种离散的风险,我们通常使用分组标准化的方法进行中性化:

1
2
factors["neu_"+fac_name] = factors.groupby([date, industry])[fac_name] \
.apply(lambda x:(x - x.mean()) / x.std())

当然也可以通过回归残差法进行中性化。将行业转化为虚拟变量,将因子对行业虚拟变量进行回归后计算残差。当不同组内方差差别不大时,两种方法事实上是等价的,但是组内标准化法比回归法更加简单有效:

1
2
3
4
5
6
dummies = pd.get_dummies(factors[industry])
factors = pd.concat([factors, dummies], axis=1)
dummies_col = list(dummies.columns)

factors["neu_"+fac_name] = factors.groupby(date)[fac_name] \
.apply(lambda x: sm.OLS(x[fac_name], x[dummies_col]).fit().resid)

因子对连续因素的中性化

“税”这一维度也可以通过税率这样的连续变量来衡量,就像是股票的“市值”、“动量”等风险因子,是一种连续的风险要素,对其中性化时,主要还是通过回归求残差的方法中性化。

1
2
factors[fac_name] = factors.groupby(date)[fac_name] \
.apply(lambda x: sm.OLS(x[fac_name],x[style_names]).fit().resid)

在这一步,如果想要对多个风险因素进行中性化,我们直接拟合多元线性回归计算残差即可。而且最好对风险因子进行标准化,虽然这样的线性变化不影响回归的结果,但是可以帮助我们分析每一种风险因素对因子的影响情况。

当然,对连续因子进行区间分组后再通过分组标准化法中性化也是一种选择,但是这样就太麻烦了。

ROE因子的中性化前后对比

我对ROE因子进行行业中性化前后的效果变化如下:

ROE因子-行业中性化前

ROE因子-行业中性化后

看起来确实有一点的改进,分组收益排序有一定的变好,多头收益也有增加。

是否要中性化?

我认为下面这一篇文章中有一个观点很好:”如果能够基于ROE选股的同时,对行业选股数量进行限制(与行业中性化起到相同的作用),照理来说能够降低风险。但是事实一定如此吗?如果经过行业中性化后的ROE因子的评价指标很低,难道就说明ROE因子不能用或者是归类于风险因子吗?如果ROE本身就指示行业的呢,ROE实际上起到行业轮动的作用呢?”

虽然我测试下来确实有改进(っ °Д °;)っ和文中说的不一样。但是他的分析很有道理,对我很有启发。

如果一个因子本身就具有挖掘潜在行业轮动关系的能力,而其所具有的alpha本身就是有行业而带来的,那么经过行业中性化后他一定会瞬间变得平平无奇。固然,我们可以希望alpha本身可以pick行业,这样在组合优化的时候,alpha可以自己去做一些行业的偏离,那么它就不适合做行业中性化。但是行业确实算是一种风险因子,如果不做中性化的话会导致行业上的重复暴露,实质上就是在赌行业,是一个很好的行业风格因子而不是一个好的因子。