多因子权重优化方法比较

多因子权重优化方法比较

在多因子量化投资体系中,具有稳定的预期收益,可解释的经济驱动理论,与其他因子的低相关性是选择alpha因子的关键指标。本篇文章中,我们以此为因子选取标准,简单地构建了自己的因子库,总共包括八个大类因子,每个大类因子中包含四到五个子类细分因子。为了比较不同的权重优化方法的优劣,本文首先采取不同的方法对各个大类因子下的细分因子进行合成,确定了不同大类因子的各自最优的合成方法;其次,通过不同权重合成方法对合成的大类代理因子进行二次权重合成,并比较了这些不同合成方法下的因子表现差异。基于上述多因子权重优化建模体系,我们初步得出以下结论:

 

1、 同一大类因子下细分因子之间存在相关性,表现为细分因子IC值整体变化方向相近。

2、 不同大类因子适合不同的合成方式,PCA方法适用于具有较强相关性的细分因子,在选股绩效指标中,具有较大的累积收益和较低的回撤值,同时夏普比率和胜率表现良好,平均换手率较低,可以降低投资者在手续费佣金上的支出。

3、 在细分因子的合成方法中,逐步回归stepwise)方法稳健性不佳,在不同的时期上同一大类因子下不同的细分因子的占比可能存在较大差异。

4、 在大类代理因子权重配置上,通过计算大类因子的IC进一步配置权重,可以看出合成后的因子受市场风格轮动影响,权重取值波动频繁,通过观察选股绩效指标,使用压缩矩阵最大化复合因子IR的权重配置方式可以达到较佳权重优化的效果。使用平均IC赋予大类因子权重时,选股结果显示这种方式对市场风格变化的敏感程度较强。

一、 驱动逻辑与建模框架

在前两篇文章中,我们对估值因子和波动率因子进行了详细的分析,但是前文的分析仅仅局限于某个大类因子中其包含的细分因子的有效性检验。然而在真实的市场环境下,投资者将所有的风险都暴露在某一个因子下,显然是不够理性的。为此,本篇将对因子的合成方法进行探讨,以求能最大化各因子有效性带来的溢价的同时降低单个因子带来的风险暴露,达到二者之间的一个动态平衡。

常见的多因子合成方法包括:

1. 等权加权

2. IC均值加权

3. IR_IC加权

以往的多因子合成方法的研究,很少考虑到大类因子本身的合成,仅纯粹地对所选定的因子进行合成,用某一个大类因子下的细分因子代替该大类因子,具有一定的随意性。本文尝试首先对大类因子内的细分因子进行选取合成,然后利用相对表现较好的合成方法得到的大类因子的代理变量来进一步合成最终的选股因子。

通过前两篇对估值因子和波动率因子的分析,我们发现大类因子中的细分因子之间存在较高的相关性。具有高相关性的细分因子大多代表了相同的一类信息,为了消除细分因子之间的共线性,最大化地提取该大类因子的信息,本文对大类因子下的细分因子信息进行提取,主要采取了以下三种方法。

方法一:基于等权的思想对大类因子下的细分因子进行加权

方法二:利用PCA方法对具有高相关性的因子进行降维,使用降维后的特征变量作为该大类因子的代理变量,其中方差解释率最低要求为70%

方法三:利用逐步回归法对各大类因子下的细分因子进行回归,选取能够最大程度提升模型解释力度的细分因子进入备选因子集,对所有备选因子进行简单平均得到合成后的大类因子代理变量

 

 

图1 逐步回归stepwise)流程图

注:图片来源于wikipedia

在根据以上三种方法合成得到大类因子后,我们选取整体表现最好的合成方法作为大类因子的代理变量生成器,在此基础上,对各大类因子进行再次合成。此时,大类因子之间的合成将采用以下四种方法:

方法一:大类因子之间进行等权处理,即赋予每个大类因子相同的权重。该种处理方法没有考虑到各大类因子之间的有效性以及稳定性的差异,也忽略了因子之间的相关性。

方法二:根据大类因子的IC均值加权合成。不同的大类因子之间其因子有效性是存在差异的,根据以往的研究结果,一般而言估值因子和规模因子都是表现相对显著的,而杠杆,运营因子都是表现相对较差的因子,如果以等权的方式来对各大类因子进行加权,则忽略了不同因子的解释力度。

方法三:基于大类因子的IR_IC值进行加权。基于IR_IC的加权方法综合考虑了因子有效性和稳定性,在保证因子收益的同时也考虑了因子的波动性。其中IR的定义为IC的均值除以IC的标准差。

方法四:最大化复合因子IR。根据Qian在《Quantitative Equity Portfolio Management》中提出的方法,我们可以通过最大化复合因子的IR来获得因子最优权重,利用求解得到的最优权重去合成新的因子。假设测试期内N个因子的权重向量分别为,因子IC值的向量分别为 IC构成的协方差矩阵为,则复合因子的 ,其中,通过对W求导,可以直接解得最优权重的解析解为。


二、 数据选取

表1 因子定义

大类因子

因子简称

因子解释

估值因子

pe_ratio

市盈率

pb_ratio

市净率

pcf_ratio

市现率

ps_ratio

市销率

EBIT/EV

息税前利润/企业价值

波动率因子

idio_vol_FF

基于Fama的特质波动率

idio_vol_CAPM

基于CAPM的特质波动率

idio_vol_Carhart

基于carhart的特质波动率

downside_idio_vol_FF

基于Fama的特质下行波动率

upside_idio_vol_FF

基于Fama的特质上行波动率

营运能力因子

fixed_asset_turnover

固定资产周转率

inventory_turnover

存货周转率

total_asset_turnover

总资产周转率

current_asset_turnover

流动资本周转率

规模因子

shareMC_allMC_ratio

流通与总市值比

log_market_cap

市值自然对数

log_share_market_cap

流通市值自然对数

log_asset

总资产自然对数

技术因子

turnover_22

换手率(22)

mp5_mp22

5日均价/22日均价

rets_22

过去22个交易日的累计涨跌幅

avg_rets_22

22日收益平均值

vwap

22日交易量加权的平均值

杠杆因子

debt_to_equity_ratio

负债权益比

debt_to_asset_ratio

资产负债比

tangible_asset_to_debt

有形资产负债比

current_ratio

现金比率

quick_ratio

流动比率

财务质量因子

return_on_equity

净资产收益率

return_on_asset

总资产收益率

earnings_per_share

每股收益

net_profit_to_revenue

净利润/营业收入

profit_from_operation_to_revenue

经营收入/营业收入

成长性因子

inc_net_profit

净利润同比增长率

inc_total_asset

总资产同比增长率

inc_revenue

收入同比增长率

inc_eps

每股收益同比增长率

inc_cash_from_operations

经营现金流同比增长率

 

本文将所有细分因子划分为八个大类因子,分别为估值因子、波动率因子、营运能力因子、规模因子、技术因子、杠杆因子、财务质量因子以及成长性因子。因子股票池为扣除上市时间不满一年的次新股后的全市场A股,测试区间为2014-01-01~2017-06-30,涵盖一轮牛熊周期。因子调仓周期统一设置为月调仓,每月月底根据合成因子值更新股票池,表现最好的前20%的股票进入股票池。


三、 细分因子分析

在前两篇文章中,我们对估值类和波动率类大类因子的细分因子进行了详细测试,本文为节约篇幅,仅计算了其余各大类因子的细分因子的IC表现,具体表现可参考附录1,此处以规模类因子为例:

 

图2 规模细分因子的IC变化图

可以发现在规模类因子下,其细分因子的IC值整体变化方向一致,只是强弱有差异。方向一致说明了细分因子之间存在显著相关性,即各细分因子蕴含着对未来收益率变化的一致信息。而强度不同则表明某些细分因子更加有效,而其他因子有效性相对较差。如对数流通市值IC的绝对值峰值达到了0.5以上,而对数总市值的IC峰值则在0.3附近,说明流通市值相比于总市值具有更好的预测能力。若此时简单地对各细分因子等权加权,则有时会损失某些表现较强的因子的信息价值。顺便提一下,从规模类因子的各细分因子的IC方向来看,从16年12月开始,整个市场的市值风格偏好发生了明显的变化,以往以小为美的偏好开始转变为以大为美,且整个17年上半年IC值全部为正,若此时继续坚持购买小盘股,恐怕投资者不得不为自己的执着买单。

四、 大类代理因子的合成

通过对同类细分因子的分析,我们可以了解到细分因子之间存在较强的相关性,对大类因子的解释程度上存在冗余信息;基于大类因子下的细分因子蕴含相同的信息的前提,本文对大类因子下的细分因子进行了合成处理,以期得到一个能够更好代理该大类因子的变量。根据前文所提出的三个方法,我们来一一验证。以估值因子为例,我们列举了三种方法下各因子占比前20%的股票构成的股票池所得到的累积收益率、最大回撤、年化波动率、夏普比率、胜率占比以及换手率。

表2 三种合成估值代理因子方式的绩效指标(前20%股票)

 

累积收益

最大回撤

波动率

夏普比率

胜率

换手率

等权

228.26%

30.79%

30.54%

0.87

69.05%

16.01%

PCA

230.40%

29.89%

28.74%

0.91

71.43%

13.87%

逐步回归

222.49%

34.29%

32.85%

0.78

69.05%

56.67%

 

图3 三种合成估值代理因子方式的累计收益对比(前20%股票)

 

图4 三种合成估值代理因子方法的累积收益图

根据表格数据可知,针对特定的估值类因子而言,PCA方法合成得到的因子综合表现更好,具有更大的累积收益和更低的回撤值,同时夏普比率和胜率都是表现最好的,而且其平均换手率最低,仅为13.87%,如果考虑手续费对回测结果的影响,PCA方法合成得到的因子将具有更加优秀的表现。在逐步回归方法中,合成得到的估值因子的换手率达到了惊人的56.67%,一定程度上说明了逐步回归法得到的结果不具有稳健性,导致不同月份有效因子的细分成分存在很大差异。

为了节约行文的篇幅,此处仅列举出以夏普率为比较基准的条件下不同合成方法对大类因子细分因子合成的影响。对于其他大类因子各合成方法的具体表现,就不再赘述,有兴趣的读者可以联系作者获取。

3 不同合成方法下不同大类因子的夏普率比较

 

估值

成长

波动率

质量

规模

杠杆

技术

营运能力

等权

0.87

1.12

0.95

0.98

0.81

0.91

1.02

0.88

PCA

0.91

0.91

1.03

0.90

0.83

0.72

0.48

0.97

逐步回归

0.78

1.14

0.96

1.03

0.84

0.89

1.10

0.85

根据表格内容可知,不同大类因子对应的最优合成方法存在差异,总体而言,相比于纯粹的等权组合,PCA和逐步回归法具有一定的比较优势。在八大类因子中,逐步回归法占优的次数为4次,PCA的方法占优的次数为3次,而等权的方法仅有一次占优。同时,结合我们对各大类因子下细分因子的定义,可以发现PCA方法更适用于细分因子之间具有高相关性的大类因子。以波动率因子和技术因子为例,技术因子的各细分因子的平均相关系数值为0.41,而此时合成的技术大类因子夏普值为0.48,波动率因子之间的平均相关系数为0.90,而合成的波动率类因子的夏普值为1.03。

基于以上的统计结果,我们对不同的大类因子应

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于组合权重优化的风格中性多因子选股策略使用Python可以分为以下几个步骤: 1. 因子选取:首先,选择一些能够解释股票收益率的因子,常用的有市场因子、估值因子、动量因子等。可以使用Python编写代码,通过获取市场数据和财务数据,计算这些因子。 2. 因子预处理:对于每个因子,需要进行预处理,以便使得它们具有可比性。预处理方法包括标准化、中性化等。可以使用Python中的pandas、numpy等库进行数据处理。 3. 因子打分:根据每个因子的历史数据,为每支股票计算一个因子得分。可以使用Python中的pandas、numpy等库进行计算。 4. 因子加权:将每个因子的得分进行加权,得到每支股票的综合得分。可以通过编写Python代码实现加权计算。 5. 组合优化:使用组合优化方法确定每支股票的权重,以构建一个风格中性组合。可以使用Python中的优化库,例如cvxpy、scipy等。 6. 回测和评估:使用历史数据进行回测,评估策略的表现。可以使用Python编写代码,计算策略的收益率、风险等指标,并绘制相关图表。 总体而言,基于组合权重优化的风格中性多因子选股策略使用Python可以灵活地进行因子选取、数据处理、计算和优化等过程,帮助投资者构建一个风险与收益均衡的股票投资组合。同时,Python的丰富的数据分析和优化库,方便了策略的实现和评估。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值