量化 - 多因子策略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(主成分分析)进行多个高相关因子的合成。
是在回测的时候,做因子合成进行选股。
对于因子的暴露值--某一天的因子值(而不是因子的序列值--一段时间的因子序列)进行合成。