单因子测试框架

SignalFactorAnalyse单因子测试框架哪些因子可以为组合提供超额收益?这是构建多因子模型的第一步,也是最关键一步。

特征选择非常关键,只有把握关键特征才能对数据达到重要性认识,选择好的因子,才能获取超额收益率。

对于传统交易经验、金融理论、微观市场、机器学习、深度学习等不断挖掘出来的巨量待验因子,一个快速且有效的因子测试框架,将是Multi-factor策略系统中最为关键的一环。

因子模型测试思路

因子有效性的判断与筛选:

备选因子确定: 数学意义、经济意义、统计意义

预处理: 数据空缺与错误、剔除异常值、ZScore等

非参数分析: 分组回测

参数分析: 信息系数IC分析、回归分析

测试背景:

1.一个有效的因子在逻辑上与收益率一定是有着经济意义上的联系,这也是检验因子有直接最初始的手段。本框架在此基础上对因子进行实证分析,目的是筛选掉与收益率相关性不高的因子,从而得到真正有效的因子池。

2.因子有效性、因子衰减周期、因子轮动。因子模型本质上是通过因子来解释股票收益率,衡量因子有效性的指标是信息比。因子衰减周期,一些研究报告也做了诸如此类的研究,提出了因子的半衰期。半衰期是指因子IC_IR下降到一半的时间。因子轮动,有效性高的因子种类可能会发生改变,需根据最新有效因子进行资产重新配置,将会提高资产组合的换手率造成大量的交易成本,因此还需要对因子组合换手率进行分析,在交易成本与因子收益上进行权衡。

3.回归分析:用于检验因子有效性,将T期因子暴露与T+1(也可按周5、月20)股票收益率的回归系数即为T期因子收益率。本框架回归模型中包含行业哑变量,能够排除行业差异影响,此外,回归采用加权最小二乘回归(WLS),权重为个股流通市值的平方根,排除小盘股的影响以及回归的异方差性。通过分析序列t值,能够判断出对应回归系数的显著性。

3.IC分析:本框架在因子收益的分析上,主要使用IC分析及其衍生的指标对因子的有效性进行多维评估。IC(信息系数)可以定义为每个时间截点上因子在各个股票的暴露度和股票下期收益的 pearson 或 spearman 相关系数,本框架对IC数值、IC方向、IC检测P值等进行了多角度的分析。

4.分组回测:分组回测将使我们更容易的理解因子模型的作用方式。方法是按照因子大小对股票排序,将股票池均分为N个组合,或者对每个行业内进行均分。个股权重一般选择等权,本框架使用流通市值加权方式。通过分组累计收益图来判断因子是否和收益率有着单调递增或递减的关系。同时回测结果的多种评价标准,例如年化收益率、夏普比率、信息比率、最大回撤等也能帮助我们判断此因子策略能否在真实市场环境中发挥作用。

部署环境说明

工具语言:python2.7,JupyterNote

数据来源:通联数据

依赖包:数据处理(pandas、numpy)、数学工具(scipy、自带包statsmodels)、绘图包(matplotlib、seaborn)

数据预处理与中性化处理

因子历史数据的质量可能存在很多问题,为了避免数据质量对后续分析的影响,必须进行一系列的数据处理过程。

极值处理

本文采用Boxplot方法处理极端值,即将分布处于所有数据(±2.5%)两端的极端数据拉回边界的分位值,避免极端值对因子分析带来的影响。

标准化

采用(因子值-因子平均值)/因子标准差,将所有因子归一到统一的中心值和标准差分布,使其具有等权可加性。

因子中性化

因子中性化是为了避免因子与某些行业和风格过度耦合所带来的偏差。本文中对因子进行了行业和市值的中性化,主要做法是:对每期的因子值对行业哑变量和流动市值做线性回归,取得回归的残差作为对原始因子值的替代。

标准化与去极值还有很多计算方式可参考,本文从简。

回归分析

行业哑变量处理:

forward_returns是经过数据整合后的超大参数矩阵(处理模块请见文尾)

每个数值化的行业分类都是0−1哑变量,比如股票600301属于行业12,暴露度为1,股票对应的其他行业为0。在本测试中,不会对公司所属行业进行比例拆分,即股票只能属于一个特定的行业,在本行业上的暴露度为1,在其他所有行业的暴露度为0。

评价方法:

1.t值绝对值均值:判断显著性

2.因子收益率大于0的占比:判断该因子对股票收益率的正向影响是否明显

3.t值绝对值中大于2的占比:判断显著性是否稳定

4.因子收益率零假设的t值:判断该因子的收益率序列是否显著不为零。

IC分析模块

此IC模块主要基于以下两种IC指标,

Pearson相关系数(IC):因子值与股票收益之间的线性相关性。

Spearman相关系数(RankIC):因子与股票收益之间的序数相关性。

在利用IC值评价因子有效性时,需先进行因子中性化处理(与回归分析法一致)。具体来说,就是在因子标准化处理之后,在每个截面期上用其做因变量对市值因子及行业因子等做线性回归,取残差作为因子值的一个替代,这种做法可以消除因子在行业、板块、市值等方面的偏离。

指标评价:

1.IC 值序列的均值及绝对值均值: 判断因子有效性;

2.IC 值序列的标准差: 判断因子稳定性;

3.IC 值序列大于零(或小于零)的占比: 判断因子效果的一致性。

分组回测分析

依照因子值对股票进行打分,构建投资组合回测,是最直观的衡量指标优劣的手段。具体来说,在某个截面期上,可以根据一个或几个因子值对个股进行打分,将所有个股依照分数进行排序,然后分为N个投资组合,进行回测。

分组法下因子有效性的评估指标:

- 策略胜率:多空组合收益大于零的比例。

- 策略月均收益:多空组合的月收益率均值。

- 策略月标准差:多空组合的月收益率标准差。

- 策略信息比率:月收益率/月标准差

- 其他:组合夏普比率、累计年化收益率等

本分组模块参考Alphalens的思路,引用了turnover模块等函数,详情请查阅Alphalens相关资料。

参数矩阵统一

数据数据规范化模块是将输入的股票价格矩阵(DataFrame)、行业字典(dict)、股票因子与流通市值矩阵(DataFrame)进行整合,方便后续函数的参数引用。

数据规范化模块主要分为三部分: industrytype部分、前瞻收益计算部分、分组函数部分。industrytype部分即将行业字典({'000503.XSHE': 16,'000630.XSHE': 4,```})转换为行业哑变量矩阵。

consistencypriceand_sector为辅助函数,意图将输入多三个参数块进行横向对齐,剔除不含于三者交集中的股票。

END

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【LeCun台大演讲】AI最大缺陷是缺乏常识,无监督学习突破困境

【新智元导读】近日,在台湾大学,卷积神经网络之父、FacebookAI 研究院院长 Yann LeCun 以「Deep Learning and the Pat...

36440
来自专栏数据科学与人工智能

特征工程简介|机器学习

(I)特征工程可以解决什么样的问题? 特征工程是一个非常重要的课题,是机器学习中不可缺少的一部分,但是它几乎很少出现于机器学习书本里面的某一章。在机器学习方面的...

44180
来自专栏美团技术团队

深度学习在美团点评推荐平台排序中的运用

美团点评作为国内最大的生活服务平台,业务种类涉及食、住、行、玩、乐等领域,致力于让大家吃得更好,活得更好,有数亿用户以及丰富的用户行为。随着业务的飞速发展,美团...

63380
来自专栏AI研习社

谷歌大脑发布神经网络的「核磁共振」,并公开相关代码

神经网络的可解释性一直是所有研究人员心头的一团乌云。传统的尝试进行可解释性研究的方法是通过查看网络中哪个神经元被激发来来理解,但是即使我们知道「第 538 号神...

384140
来自专栏人工智能头条

模仿学习(Imitation Learning)完全介绍

69950
来自专栏AI科技评论

ICPR 图像识别与检测挑战赛冠军方案出炉,基于偏旁部首来识别 Duang 字

随着互联网的飞速发展,图片成为信息传播的重要媒介,图片中的文本识别与检测技术也一度成为学界业界的研究热点,应用在诸如证件照识别、信息采集、书籍电子化等领域。

49620
来自专栏人工智能头条

ICLR 2018最佳论文出炉,无华人获奖

19160
来自专栏企鹅号快讯

Kaggle大神带你上榜单Top2%:点击预测大赛纪实(下)

作者:Gabriel Moreira 编译:修竹、柳青秀、王梦泽、钱天培 在上周,文摘菌为大家介绍了资深数据科学家Gabriel参加Kaggle的Outbrai...

44980
来自专栏AI2ML人工智能to机器学习

图文并茂,卡曼滤波

我务必向大家介绍卡尔曼滤波器(Kalman Filter),因为它之所能, 忒惊人!

9420
来自专栏机器之心

学界 | 5.5%语音识别词错率究竟如何炼成?IBM发布相关研究论文

选自arXiv 机器之心编译 参与:晏奇、吴攀 语音识别是人工智能领域所研究的核心问题之一,研究者一直以来都在竞相努力以期能首先达到比肩人类的里程碑。去年十月,...

385120

扫码关注云+社区

领取腾讯云代金券