文献标识码: A
DOI:10.16157/j.issn.0258-7998.190304
中文引用格式: 张伟楠,鲁统宇,孙建明. 支持向量机在多因子选股的预测优化[J].电子技术应用,2019,45(9):22-27.
英文引用格式: Zhang Weinan,Lu Tongyu,Sun Jianming. An SVM improvement prediction in multifactor model for stocks selection[J]. Application of Electronic Technique,2019,45(9):22-27.
0 引言
哪些因子决定了股票的收益,是股票市场的重要问题。投资者希望通过分析股票的相关数据,根据内在的关系建立一个投资策略,使得在长期能够获得超额收益。如何从众多不同行业、不同规模的股票中挑选出具有投资价值的股票,是很困难的。多因子选股模型是投资领域研究的常用模型。资本市场十分复杂,为了更好地解释股票价格的波动,以往的研究往往引入大量的因子来实现模型的复杂性和精确性,本文则主要优化模型的预测能力。
2008年,李云飞在使用支持向量机来构建选股模型研究中发现,尽管选出的股票组成能够超过指数回报率,但也发现组合中存在不少缺乏潜力的股票[1]。为了克服这一问题,一些新的方法被引入模型中,主要是数据预处理(预测前)和股票组合调整(预测后)两个方向。对于数据预处理,2009年,蔡健林通过小波SSNF算法对数据进行预处理[2];2011年,徐国祥和杨振建引入主成分分析和遗传算法构建模型[3]。对于股票组合调整,2017年,周渐结合在线学习、动态调整持仓和因子轮动来优化模型[4];2018年,田浩使用马科维茨的均值方差模型进行风险评估,来决定投资组合中的权重[5]。在支持向量机的预测优化方面,2017年,武海燕和李卫平采用本征分解方法对核矩阵进行降维处理和随机抽样训练样本,提高SVM分类器的运算效率[6];2018年,朱菲和金炜东利用Platt概率模型将不同核函数SVM分类器的硬输出转化为概率输出[7]。
本研究主要使用股票的财务指标,使用股票各个方面的代表性指标来构建模型,有效降低因子数量的同时保证模型的精准性。建立量化选股的多因子模型后,使用机器学习中的支持向量机算法(Support Vector Machine,SVM)进行选股。本文中使用排序法来对数据进行预处理,使用支持向量机中数据到分离超平面的距离来对支持向量机的预测进行优化。其内在含义十分明确,实证的结果表现良好;结合技术分析进行择时,还能进一步优化收益表现。
1 预测原理
1.1 因子选择
文献[8]指出国内股票的收益情况与盈利情况有很强的关联。这是传统股票投资考虑的主要因素,但盈利有滞后性和不确定性,所以还要考虑公司盈利的内在机制,即公司的运行情况。股票投资中股价的涨跌受市场情况影响,股价价格回到内在价值水平往往受市场情况的影响。文献[9]指出股票在市场上的交易表现情况也十分必要。通过盈利、运营、市场三方面的考虑,股票价格从外在到内在,从直接到间接的影响因子都被考虑进多因子模型之中。
在以往研究中,使用回归方法必须要考察因子间的相关性,避免多重共线性。使用支持向量机模型很好地回避了这一问题,只需要考虑因子的显著性和代表性。以往实证中还发现:单因子模型中有效解释股价的因子,在双因子模型、多因子模型中未必有效。因而,多因子模型中,因子的组合必须要考虑彼此的组合效果,而非单纯考虑单因子模型中效果最佳的。参考文献[10]的研究,选出各方面的代表性指标作为因子。
本次选取的因子如表1所示。
1.2 支持向量机原理
对于线性可分问题,设线性可分样本集为(xi,yi), i=1,2,…,n,x∈Rd,y∈{1,-1}是类别标签。判别函数的一般形式为g(x)=w·x+b,w和b为待求参数。w为法向量,决定了超平面的方向;b为位移项,决定超平面到原点的距离。分类平面方程为w·x+b=0 。将线性判别函数进行归一化,使样本集内的两类样本都能够满足条件|g(x)|=1,也就是使离分类面最近的样本的|g(x)|=1,此时分类间隔等于2/||w||,因此使分类间隔2/||w||最大,就等价于使得||w||(或者||w||2)最小。分类超平面能够将两类样本正确分开,也就是要满足以下条件:
对于非线性问题,可以通过引入核函数将非线性转换化为某个高维空间中的线性问題,然后在高维特征空间构造最优分类超平面。简而言之,支持向量机就是通过某种事先确定的非线性映射(核函数),将输入特征向量映射到一个高维特征空间中,然后在这个特征空间中按照线性算法构造最优分类超平面。将目标函数和分类决策函数中的实例内积xi xj用核函数K(xi,xj)=来代替。选择不同内积核函数,就可以构造不同的支持向量机模型。将上面预处理好的数据导入支持向量机模型中进行训练。支持向量机的参数使用超参数和交叉验证进行确定,从而在训练数据中得到最优模型。
1.3 支持向量机在选股上的优化
训练数据中,类别“1”和类别“0”的样本数量大致相当。在训练好模型后,对股票池中的股票进行预测,支持向量机的预测中,两类股票的数量也大致相当。以中证500成分股作为股票池,在支持向量机模型预测后,类别“1”的股票也有大约200支。这意味者,预测为类别“1”的股票中存在大量类别“0”的股票。这样的股票组合收益效果不好,股票数量过多也难以实际操作。由于国内股票市场对卖空的限制,只针对类别“1”股票进行买卖操作。预测结果中,真正例(True Positive,TP)就十分重要,查准率P的情况直接表现了分类效果和投资收益。二分类混淆矩阵表如表2所示。其中,FP表示假正例(False Positive),FN表示假反例(False Negative),TN表示真反例(True Negative)。
查准率P定义为:
显然,0≤P≤1,在P=1时所有预测为类别“1”的股票都属于类别“1”,即组合中所有股票的收益均属于前20%,这是最为理想的情况。通过支持向量机模型的预测,难以达到这样的效果。需要对支持向量机中预测为类别“1”的股票进行再预测分类,减少股票组合的数量和提高查准率P,保证股票组合的实际可操作性和良好的收益情况。
针对上面的实际需要和支持向量机的特点,对支持向量机模型进行如下优化。支持向量机模型中,使用最优参数训练模型之后,得到了最优解和分离超平面。利用分离超平面,可以轻易地计算出预测数据到分离超平面的距离。对所有预测为类别“1”的股票,计算各自到分离超平面的距离,进行降序排序,取前5%股票再预测为类别“1”。支持向量机模型中距离最远的前5%的股票,优化支持向量机的分类预测,作为股票的投资组合。这一优化,既灵活地调整组合的股票数量,又直接地提高查准率P。
2 实验结果及分析
2.1 数据来源及预处理
实证数据为中证500指数及其成分股,从2016年1月1日~2018年3月31日,共9个季度,所有数据均来自Wind金融终端。所有数据均按下面的方法进行数据预处理,使用“滑窗”方法进行预测,得到的预测结果从2016年10月~2018年3月,共6个季度。
对数据检查缺失项,由于填充难度较大、所有因子均十分重要,直接剔除含缺失项的股票。股票的因子的数值差异巨大、因子间的量纲不统一,必须要进行标准化处理。由于股票的行业差别巨大,财务情况的因子存在较大差异,如银行业的负债率很高;市场环境存在差别,市场情况的因子也存在较大差异,如牛市中市值较大、熊市较小。常见的标准化方法,如z-score进行处理后,数据间仍有较大差异、季度间的可比较性较差。股票池中的股票数量固定,对单个因子在当单个季度在股票池中进行排序,再将名次除以最大名次,将因子的原始数据缩放到(0,1]之间。这样的处理,既实现了数据的标准化,又避免数据间的较大差异,还能够保证季度之间具有可比性。
数据标记,在模型训练前需要对股票进行类别标记。对所有股票的季度收益率进行统计,收益率为前20%的股票标记为类别“1”;收益率后20%的股票标记为类别“0”。这两类股票用于模型训练,两类间较大的差异有助于得到优秀的分类模型。这样的处理会损失60%的数据,为避免训练数据过少,使用“滑窗”方法,使用3个季度数据用于训练模型,预测下一季度股票的类别。需要注意的是,由于国内股票市场对卖空的限制,预测结果中只关注类别“1”股票。因此,在预测数据中,收益前20%的股票标记为类别“1”,其余股票均标记为类别“0”。分类预测结果与这一标记结果进行比对,观察分类预测效果。
2.2 因子和模型情况
图1中,roic和roe的相关系数较大,其他因子间的相关系数都处于较低的水平。表明,这些因子可以很好地衡量股票的基本面情况;在机器学习中,这些特征具有很好的代表性。
图2中,使用3个季度的数据做训练集测试模型的准确率的收敛情况。模型准确率可以得到收敛,数据规模的增加对模型的收敛准确率提高有一定的作用,最终准确率收敛于59%。
2.3 预测结果
本文中查准率P更为重要,混淆矩阵会用来观察模型的分类预测结果。图3~图5中,图(a)的混淆矩阵为优化前使用支持向量机进行分类预测;图(b)的混淆矩阵为使用距离指标对支持向量机分类进行优化后的分类预测。
图3~图5中,优化前的支持向量机模型能够将大多数的类别“0”正确分类。优化后,预测为类别“1”的组合中,属于类别“1”的比例大大提高。2017年三季度的预测结果最为优秀,11支股票中10支属于类别“1”。
2.4 结果分析
如图6所示,中证500成分股的收益情况呈正偏态分布,这使得类别“1”的收益率远远高于平均水平。最终的股票组合还有部分类别“0”的股票,支持向量机模型中距离分离超平面较远,这部分股票收益仍有很大概率能够超过平均水平。
在预测出投资组合的股票后,在季度的第一个交易日以收盘价买入等权重股票(每支股票买入相同金额),在季度最后一个交易日以收盘价卖出全部股票。再预测下个季度股票组合进行以上重复操作。将该策略简称为SVM策略,即收益表现完全依靠模型的选股效果。下面的回测结果未考虑交易费用。
图7中,选出的股票组合在测试时间段内,获得的收益超过同期的中证500指数,收益率足够优秀。但图7和表3中出现了大幅度的回撤和较大波动。这在实际中会严重影响投资者信心,影响投资决策。本文判断这主要是使用财务数据进行选股,数据存在一定的滞后性、模糊性,难以快速反映出市场的变化。
出于这一问题的考虑,在选股之后使用择时策略可以减少市场引起的收益波动。将这一策略拓展为“财务指标数据——基本面分析选股——技术指标数据——技术分析择时——交易”。均线策略和通道突破策略是捕获市场变化的常用策略。下面使用它们来获取交易的买卖信号,选股情况不变,仍使用之前的股票组合。
均线策略(Moving Average,MA)是获取趋势的普遍方法。使用中证500指数的5日和30日均线构成一个双均线策略,当5日均线向上突破30日均线作为买入信号,5日均线线下穿过30日均线作为卖出信号。通道突破策略(Channel Breakout,CB)是另一种判断趋势的常用方法。中证500指数的20日最高价和最低价作为通道上限和下限。当价格突破上限时,作为买入信号;突破下限时,作为卖出信号。利用以上两种策略作为判断交易时机,结合之前的股票组合以后,重新测算收益情况。
从图8和表4的收益情况来看,回撤的幅度得到了显著的降低,收益率并没有原有策略高。特别是通道突破策略的收益率大幅落后原有策略,研究其买卖信号可以看到,有大量的时间段是处于空仓状态。这是导致收益率偏低的主要原因,也使得资金利用率不高。
均线策略也极大地降低了回撤的幅度,但获得的收益相对接近原有策略,远高于通道突破策略。但由于均线的滞后性,导致仍有几段较大的回撤,特别是2018年3月份的回撤,均线策略在此处效果不够显著。考虑均线策略的效果和自身的滞后性,需要对均线策略进行在优化。解决滞后问题,使用高频数据来重构均线策略,进而降低滞后影响,更有效地选择交易时机。下面使用中证500指数的半小时价格数据来构建均线策略,捕获交易时机。
从图9和表5的收益情况来看,高频均线策略(HFMA)的收益情况略低于均线策略,最大回测相当,波动率更小。收益的差异主要在2018年一季度导致的,这期间的股票组合与中证500指数有一定的差异。因而,交易时机进一步精准,收益却没有进一步提高。
3 结论
本文使用财务数据构建了一个多因子模型来进行股票选择。数据使用排序法进行预处理,再使用支持向量机对股票进行收益的预测分类,最后使用数据到分隔超平面的距离进行优化预测分类。使用这一方法提高了选股的查准率,减少了投资组合的股票数量。
实证部分,以中证500指数成分股为股票池,从2016年~2018年一季度,以3个季度作为“滑窗”长度用于训练模型,预测下一季度的股票收益类别,得到股票组合。2016年四季度~2018年一季度中,股票组合在每个季度第一个交易日买入、最后一个交易日卖出,获得累计收益率88.96%。这远远超过同期中证500指数的-5.16%累计收益,但组合的收益有较大波动和较大回撤。引入技术分析进行择时,使用常见的捕获趋势方法(均线策略、通道突破策略)来进行择时,均有效地降低波动率和回测,累计收益率分别为63.88%和23.73%。均线策略有着更好的收益表现,但本身存在较大滞后性的缺陷。使用高频的数据来构建均线策略,波动率进一步降低,累计收益率为53.18%,总体收益表现仍相当不错。
参考文献
[1] 李云飞.基于人工智能方法的股票价值投资研究[D].哈尔滨:哈尔滨工业大学,2008.
[2] 蔡健林.中国A股市场选股模型研究[D].上海:上海交通大学,2010.
[3] 徐国祥,杨振建.PCA-GA-SVM模型的构建及应用研究——沪深300指数预测精度实证分析[J].数量经济与及数据经济研究,2011(2):135-147.
[4] 周渐.基于SVM算法的多因子选股模型实证研究[D].杭州:浙江工商大学,2017.
[5] 田浩.基于XGBoost的沪深300量化投资策略研究[D].上海:上海师范大学,2018.
[6] 武海燕,李卫平.结合本征分解和抽样学习的快速SVM分类器[J].电子技术应用,2017,43(9):141-145.
[7] 朱菲,金炜东.一种SVM-DS决策融合方法及在高铁故障中的应用[J].电子技术应用,2018,44(7):127-130,134.
[8] 张信东,李建莹.盈利因子与投资因子具有定价能力吗?——来自中国股市的实证[J].金融与经济,2018(2):10-18.
[9] 李兴玉,罗守贵.员工持股计划增加股东财富的路径研究与多因子投资组合策略[J].管理现代化,2017,37(5):64-66.
[10] TORTORIELLO R.量化投资策略——如何实现超额收益Alpha[M].李洪成,许文星,译.上海:上海交通大学出版社,2013.
作者信息:
张伟楠,鲁统宇,孙建明
(中国计量大学 经济与管理学院,浙江 杭州310018)