Mark
一、数据准备
该部分内容包括:
1.1 加载财务数据,包括净资产、净利润、负债、营业收入,开发支出等数据;
1.2 加载因子数据与下月收益数据,因子包括PB, PE, 反转、换手因子。
1.1 加载财务数据
本文仿照研报数据,首先加载后续模型中需要用到的相关财务数据, 包括净资产、净利润、负债、营业收入,开发支出等数据。
查看完整代码请前往优矿量化社区
1.2 加载因子数据与下月收益数据
加载部分常见因子数据,为后续正交化特异市值因子做准备。因子包括PB, PE, 反转、换手因子;
加载下月收益数据,便于计算IC。
查看完整代码请前往优矿量化社区
二、市值解释模型
本章节利用线性模型与Xgboost模型来解释市值
1、线性市值解释模型
模型形式为:
其中, mit为股票i在t时候的对数市值,INDit为行业哑变量,bit为股票对数净资产,NI为公司净利润,这里根据净利润的正负拆分了两个变量,LEVit为公司财务杠杆,即负债除以资产, git为季度同比的营业收入增长率, RDit为开发支出。
2、xgboost非线性市值解释模型
将线性模型的自变量作为xgboost模型的输入特征,对数市值作为数据的标签,进行训练;
查看完整代码请前往优矿量化社区
利用上述定义的函数及常量,分别训练两种模型,取其残差经过去极值、行业中性化、标准化后作为特异市值因子;
最后,分析线性模型与xgboost模型的拟合程度。
查看完整代码请前往优矿量化社区
可以看出,线性模型的系数均显著,拟合R2均值78.8%左右;非线性模型拟合R2高达95.4%,与线性模型相比提升了16.6%的解释程度,因此非线性模型的残差部分基本面信息更少,信号的纯净度更高。
三、因子分析
本章节有如下内容:
因子测试,主要是测试线性模型与xgboost模型的特异市值因子表现情况,主要查看分组超额收益与IC。注意:此处回测采取了简易回测,节省时间,没考虑交易费用,涨跌停等;
查看特异市值因子与常见财务面、技术面因子(包括BP, EP, 反转、换手率等)的相关性,正交化特异市值因子后,再进行因子测试。
3.1 因子回测
首先,合并第一章节读取的因子文件与第二章节训练的两个模型信号文件,方便后续分析。
查看完整代码请前往优矿量化社区
进行特异市值因子的分组测试,并查看IC。
查看完整代码请前往优矿量化社区
可以看出,xgboost模型表现较线性模型更好
从分组回测来看,线性模型提取的因子long-short年化收益24.3%,信息比率2.19;而xgboost模型提取的因子long-short年化收益28.5%,信息比率2.89;
从IC来看,线性模型的IC均值-0.0733,ICIR在-2.7691;xgboost模型的IC均值-0.0791,ICIR在-3.2847。
3.2 相关性分析及正交化特异市值因子
首先,查看特异市值因子与一些常见财务、技术面因子的相关性情况。
查看完整代码请前往优矿量化社区
从上表可知,特异市值因子与BP因子有很强的相关性,所以需要剔除掉这些相关因子后,再次查看特异市值因子的选股效用。
查看完整代码请前往优矿量化社区
对正交化后的特异市值因子进行测试。
可以看出,正交化后特异市值因子的效果有些减弱,但xgboost模型提取的因子效果依然强于线性模型。
四、因子回测
4.1 回测框架
对正交后的两种模型抽取的特异市值因子进行回测,选取中证全指为基准,每次选取100个股票。选取的股票等权分配。
查看完整代码请前往优矿量化社区
4.2 回测结果分析
查看完整代码请前往优矿量化社区
回测结果看出,非线性模型提取的因子更有优势。xgboost模型提取的因子IR在1.45左右、年化收益20.03%,线性回归模型提取的因子IR为1.34、年化收益17.4%。
另外,本文只是选取了TOP100的股票进行回测,只用了因子的头部信息,读者也可以尝试其他方法进行测试。
参考
1、 东方证券 《用机器学习解释市值:特异市值因子》——《因子选股系列研究之二十八》
-- the end --
利用平台强大的资源,优矿特推出2018量化精英养成计划,培养最优秀的Quants,寻找夜空中最亮的那颗星!来自毕业于牛津大学、北京大学、香港大学等高校的地表最强量化金工团队,手把手带你从0到1玩转量化。点击2018量化精英养成计划了解详情。
$格力电器(SZ000651)$ $中国平安(SH601318)$ $贵州茅台(SH600519)$