量化 - 多因子策略2 : 单因子有效性,多因子相关性,多因子合成


学习目标:

一、多因子的筛选阶段介绍

1.1 挖掘因子的过程

二、单因子有效性分析 - 目的

三、单因子有效性分析 - 因子IC分析 (信息系数 Information Coefficient)

3.1 信息系数IC的定义

什么是因子暴露值

其实就是因子本身在某一天的值。。。

信息系数IC计算方式 - 斯皮尔曼相关系数

越靠近1,正相关越强;

越靠近-1,负相关越强

 

3.2 如何求收益率

收益率区间:

计算公式:

3.3 案例:单因子某天的IC分析

需求:

 步骤:

3.4 因子分析工具 - Alphalens

alphalens独特的数据结构

factor数据结构:

price数据结构:

alphalens常用API

注意:这部分API需要传入数据的格式,是上一part return的merged_data

3.5 案例:使用alphalens进行单个因子的IC分析

。。。

3.6 因子IC效果图分析

三种图形分析

 时间序列图 + 移动平均图

因子IC分布直方图

因子IC Q-Q图

3.7 因子有效性分析表格填充

IC > 0.02

IR = IC mean / IC std -- 代表因子的稳定性

四、单因子有效性分析 - 因子收益率分析

为了得出如下结论:

4.1 什么是因子收益率

注意:这里求出来的系数(因子收益率),应该只有一个值!

4.2 因子收益率计算

计算数值结果

分位数分组结果

这里1-5的含义是:根据所选因子(这里是earnings_per_share)在所选股票列表(近3000只股票)中的因子值,按照0.2,0.4,0.6,0.8分成5组

可以看到大于0.8的这一组 -- 也就是第5组,平均收益表现最好。其因子方向是“因子降序” -- 因子越大越好

因此如果该因子将来用在回测中进行选股,就要选择因子值大的那部分股票进行交易。

4.3 因子在周期内的平均收益 率

五、单因子测试框架 和 单因子回测框架搭建

 

5.1 单因子测试框架

将所有统计的因子打分排名

5.2 单因子回测框架

这里的1-5组,依然是之前说的:按照0.2,0.4,0.6,0.8分成5组 。真实回测一次,验证是否是第5组收益最好。

5.3 分类因子

六、多因子相关性分析

通过之前的各种代码,从5.3节每一类的因子中,筛选出表现最好的1-2(数量自定)个因子后,需要对这些因子的IC序列进行斯皮尔曼相关系数计算。

一般来说,同类别的相关性强一些;不同类别的相关性弱一些。

需要把(同一大类别里)相关性较高的,找出来。

6.1 如何计算因子间的相关性

结果样例:

这里把相关性大于0.7的都标红了,表示相关性高。

七、多因子合成

应用PCA(主成分分析)进行多个高相关因子的合成。

是在回测的时候,做因子合成进行选股。

对于因子的暴露值--某一天的因子值(而不是因子的序列值--一段时间的因子序列)进行合成。

7.1 多因子合成代码