单因子分析对于很多读者来说,看似熟悉,但是没有自己上手做一遍,还是会产生很多问题。本篇报告中我们将给出一些基本面因子的具体测试结果,我们借鉴了光大证券的《单因子分析体系》,这也是行业内较为认可的一套测试流程,以BP和ROE_TTM因子为例,测试了预测性、稳定性、单调性和相关性等等指标。为下一步的多因子组合的构建打下基础。
未经授权,严禁转载。
根据现代金融理论的定义,投资组合获取的收益均可以分为两个部分,一部分是来自市场的收益,也就是Beta,另一部分则是超出市场的收益,也就是我们常说的Alpha。如何准确的定义和寻找股票市场中的Alpha一直是学术界和业界不断探索的问题,已有的模型包括资本资产定价模型CAPM和Fama-French三因素模型等,而多因子模型正是基于套利定价理论(APT)而建立的更为完善的定价模型。
从模型的构建目标上看,我们可以将多因子模型分为Alpha模型和风险模型。以Barra为代表的风险模型更多的用于投资组合的业绩归因,而在这篇报告中我们将首先讨论的是用于预测股票未来收益的Alpha模型,并将对Alpha模型中最关键的因子测试部分做详细介绍。
多因子模型是个较为复杂的体系,模型的构建流程往往包括以下几个方面:
首先是样本的选取,为了使得模型测试的结果更加符合实际的投资情况,我们需要对ST,PT股票以及停牌等无法买入的股票做剔除;
其次是数据的清洗,数据清洗的过程很容易被轻视或忽略,但异常值和缺失值对模型的影响往往是很显著的,在数据清洗的步骤我们需要格外的小心。
图1 多因子模型构建流程图
本文我们将展示单因子测试的框架流程。
>>> 样本筛选
测试样本范围:中证800指数成份股
测试样本期间:2012-01-01至2019-01-13
为了使测试结果更符合投资逻辑,我们设定了三条样本筛选规则:
(1) 剔除选股日ST/PT的股票;
(2) 剔除上市不满一年的股票;
(3) 剔除选股日由于停牌等原因而无法买入的股票。
>>> 数据清洗
我们本次采用研究中最常用的 winsorize 缩尾处理,取置信区间为95%,超出区间的定义为异常值。对于异常值,把数值改为95%置信区间的边界。
>>> 因子标准化
我们采用研究中常用的Rank标准化处理因子数据。达到的效果是,讲因子值转换为排序值,因子值越小,排序值越大,一定程度上降低了噪音的影响。
>>> 因子测试模型
我们采取截面回归测试的方法,每期针对全体样本做一次回归。进行截面回归判断每个单因子的收益情况和显著性时,需要特别关注A 股市场中一些显著影响个股收益率的因素,例如行业因素和市值因素。市值因子在过去的很长一段时间内都是A股市场上影响股票收益显著性极高的一个因子,为了能够在单因子测试时得到因子真正收益情况,我们在回归测试时对市值和行业进行了控制。单因子测试的回归方程如下所示:
其中, Ri-R中证 800为个股相对基准(中证800)的超额收益率, Factor 为因子值, Industry 为行业虚拟变量, Market_Capital 为市值变量。
>>> 因子有效性检验
(1)主要通过 t 检验分析因子的有效性以及稳定性。
t值绝对值序列的均值:之所以要取绝对值,是因为只要t值显著不等于0即可以认为在当期,因子和收益率存在明显的相关性。但是这种相关性有的时候为正,有的时候为负,如果不取绝对值,则很多正负抵消,会低估因子的有效性;
t值绝对值序列大于1.96的比例:检验|t| > 1.96的比例主要是为了保证|t|平均值的稳定性,避免出现少数数值特别大的样本值拉高均值。
(2)主要通过因子 IC 分析来判断因子的有效性和预测能力。
因子k的IC值一般是指个股第T期在因子k上的暴露度与T + 1期的收益率的相关系数。当得到因子IC值序列后,我们可以仿照t检验的分析方法进行计算。
IC值序列的均值及绝对值均值:判断因子有效性;
IC值序列的标准差:判断因子稳定性;
IC值序列大于零(或小于零)的占比:判断因子效果的一致性。
为了同时能够展示所检验因子的单调性以及多空组合的收益情况,我们通过分层打分回溯的方法作为补充。进行分层回溯时,我们在各期期末按照因子值大小排序分成10等分,在分组时同样做行业中性处理,组内市值加权。
下面我们就将展示通过以上测试流程得到的各个因子的具体测试结果。
基本面因子是十分重要的因子,决定了公司的内在价值。下表列出了具体的基本面因子及因子描述。
表1 基本面因子明细表
下表给出了因子 t 值和 IC 值的检验结果。
表2 基本面因子测试结果
特别地,我们为了检验因子的单调性,对于每一个因子,取前三组的平均收益率和后三组平均收益率进行了组间差异t检验,同时绘制了做多第一组做空第十组的资金曲线。组间差异t检验结果如下表所示:
表3 各因子前三组平均收益率和后三组平均收益率之差t检验
由于单因子回归法所得到的因子收益值序列并不能直观的反应因子在各期的历史收益情况以及单调性,为了同时能够展示所检验因子的单调性,我们将通过分层打分回溯的方法作为补充。
在进行分层回溯法时,我们在各期期末将因子值大小分成10等分,第一组为因子值最小的组,第十组为因子值最大的组。在分组时同样做行业中性处理。
各个因子分层回溯测试结果如下所示(以BP、ROE_TTM为例):
图2 BP因子t值柱状图
图3 BP因子IC值柱状图
图4 BP因子累积收益率折线图
图5 BP因子超额收益率折线图
图6 BP因子的策略收益、夏普比率等指标图
图7 BP因子做多第一组做空第十组资金曲线
根据BP因子的表现我们可以看出,BP因子是一个较好的选股因子,BP因子值最小的组收益率最高,最大的组收益率最低。这可能说明买入BP被低估的股票是一种较有效的投资策略。另外值得注意的是,以BP因子选股在2018年这样的极端市场中并没有一个好的效果,BP因子的多空组合收益既来自做多组,也来自做空组。
图8 ROE_TTM因子 t 值柱状图
图9 ROE_TTM因子 t 值柱状图
图10 ROE_TTM因子累计收益率折线图
图11 ROE_TTM因子超额收益率折线图
图12 ROE_TTM因子策略收益、夏普比率等指标图
图13 ROE_TTM因子做多第一组做空第十组资金曲线
根据ROE_TTM因子的表现我们可以看出,ROE_TTM因子是一个较好的选股因子,但似乎并没有BP因子更明显,ROE_TTM因子值最小的组收益率最高,但其因子值倒数第二的组收益率也几乎是最高,最大的组收益率最低。这可能说明买入ROE_TTM被低估的股票是一种较有效的投资策略。另外值得注意的是,以ROE_TTM因子选股在2018年这样的极端市场中并没有一个好的效果,ROE_TTM因子的多空组合收益既来自做多组,也来自做空组,而且做空组的贡献很大。
最后有几点注意事项提醒各位读者:
1、单因子测试对于因子选股是极其重要的,有效的单因子才可以作为多因子选股策略的基础。对于通往多因子,也是一条必经通路。
2、对于涨停跌停的股票我们没有做剔除,这一部分数据可能会影响最终的结果。大家可以在回测体系内,自行剔除。
3、有一些单因子测试报告披露的多空组合收益率可能很高,但是要注意多空组合收益率的来源。如果来源于做多组是我们期望的结果,如果来源于做空组,就要谨慎使用该因子。
点击阅读原文