一种基于主成分LSTM 模型在股票预测中的研究

2021-03-22 04:28王霄鹏杨川东
关键词:原始数据特征值股票

王 东,王霄鹏,杨川东

(重庆理工大学 计算机科学与工程学院,重庆 400054)

随着我国经济的高速发展及人们经济意识的提高,理财行为逐渐成为广大家庭实现资产增值的主流方法之一。股票作为一种无偿还期限的有价证券,以其高风险、高收益的特征成为许多家庭理财投资的首要选择。因此,针对股市的波动特性及存在的特定规律进行合理分析从而正确预测出股市的走势,对于国家和家庭都具有重要意义。

一个良好的股票预测模型需要有较好的泛化能力,在模型的建立中,为了更加全面系统地分析问题,必须要考虑众多指标。但过多的变量无疑会增加分析问题的难度与复杂性。股票各项基础数据之间存在的相关性也使得数据所反映的信息会在一定程度上有部分重叠,并且不能很好地展现深层隐含的规律。针对此类问题,本研究在LSTM模型的基础上结合对股票价格反应更加敏感的相关技术指标,根据股票特性对模型进行改进,提高模型泛化性。并引入主成分分析法来提取出互不相干的几项主成分,在最大程度保留原始数据信息的同时,用较少的主成分代替原来较多的变量作为训练模型的输入数据。降低模型复杂度,提高学习速率。

1 基于主成分分析的LSTM 模型

1.1 获取训练数据

通过各大财经网站的股票数据站以及python的tushare财经数据接口包,获取了所选股票的九项基础数据:开盘价、收盘价、最高价、最低价、前收盘价、涨跌额、涨跌幅度、成交量以及成交金额。如表1所示。将针对基础数据计算得出的KDJ、MACD指标共同作为模型的训练数据。

表1 股票基础数据

KDJ指标是一种反映敏感快速的技术分析指标,主要是利用股票价格波动的真实波幅来反映价格变化趋势的强弱,可以在股价尚未上升或下降之前发出买卖信号。通过一段周期内出现过的最高价、最低价、周期最后的收盘价及这三者之间的比例关系,计算出周期最后一天的未成熟随机值RSV,然后根据滑动平均线的方法来计算K、D、J值。

K值为RSV的n天移动平均值,由K值连接而成的K线又被称为快线,在3条曲线中变化速度中等。D值为K值的n天的移动平均值,3条线中D线变化速度最慢,被称为慢线。J值变化最快,作为辅助观察K线与D线所发出的买卖信号,J线被称为超快线或确认线。3条线在同一坐标上就组成了能反映价格波动趋势的KDJ指标。

式中:Cn为第n日的收盘价;Ln为n日内的最低价;Hn为n日内的最高价;Kp、Dp为前一日的K值和D值,若无,则都用50代替。

MACD称为异同移动平均线。由快慢2条均线的聚合与分离状况代表市场趋势的变化,也是股票的一项常用技术指标。快速与慢速的移动平均值EMA一般选择12日与26日,由它们的离差值DIF与离差值的9日移动平均值DEA经过计算最终得到MACD。

式中:n为移动平均值的天数;C为当日收盘价;PEMA与PDEA为前一日的EMA与DEA。

1.2 利用主成分分析法将数据降维

主成分分析法是将多个互相关联的原始数据通过空间坐标旋转,不改变样本数据结构地转化为少量且两两不相关的线性组合。在最大程度地反映原始数据的信息的同时,用较少的变量取代原来较多的变量,从而实现降维,将复杂的多维问题简单化。

提取主成分首先要将原始数据标准化,即减去对应变量的均值再除以方差,以消除量纲不同的影响。

特征值λi是各个主成分的方差。用来描述对应特征向量方向上包含的信息量,也就是特征值的大小直接反映了各个主成分的影响力。将某一特征值除以所有特征值的和的值就得到了该特征向量的方差贡献率。为第i个主成分的贡献率为前i个主成分的累计贡献率。根据主成分个数的选取规则,选取的主成分要求特征值都大于1且累计贡献率达到一个较高的百分数以上(一般为大于85%)。保证选取的主成分中包含原始数据的大部分信息。

最后计算主成分载荷值,并求得主成分得分值作为新的训练数据。

1.3 使用LSTM 模型进行预测

LSTM的全称是长期短期记忆人工神经网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。它是循环神经网络的一个变种,LSTM在算法中比循环神经网络多了一个判断信息有用与否的细胞结构,如图1所示。

图1 LSTM细胞结构

LSTM在一个细胞中设置了3道门,分别是遗忘门、输入门和输出门。一个数据进入LSTM的网络之后,会根据规则来判定该数据是否有用,符合算法规则的会留下,不符合的会通过遗忘门遗忘。只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。

而后输入门会更新细胞状态,首先通过sigmoid层确定需要更新的值,以及tanh层创建的候选值向量,两者相乘就可以得到新的候选值。

然后将旧的细胞状态与遗忘门定义的丢弃信息相乘,再加上新的候选值就得到了更新之后的细胞。

最后基于当前的细胞状态,由sigmoid层确定输出部分,将其与tanh处理后的细胞状态相乘,得到确定输出的值。

在LSTM模型中,模型可以选择保留哪些内容和忘记哪些内容,以便模型分析那些与任务最相关的数据。LSTM模型还可以学习数据的更加抽象表示,以便模型学习数据更多的特征。这些特性使得LSTM模型应用于股票中时,可以更有效地分析股票走势。

2 实例分析

2.1 样本和指标数据选取

LSTM模型需要进行多次训练,最终建立一个更优的模型。所以训练数据不仅要足够,而且要更加契合训练目标,才能使模型的预测效果更加准确。为了数据具有代表性,本文中选取平安银行000001.SZ从2002年1月21日到2018年5月18日每个开盘日共3 800个相关数据作为原始LSTM模型的建模数据,包括开盘收盘价、每日最高最低价、前收盘价、涨跌额、涨跌幅度、成交量、成交金额等。

在针对股票特性改进的S-LSTM模型中,对原始数据进行进一步处理,计算周期的未成熟随机指标值RSV、DIF、DEA等,并将所得出的每日的KDJ、MACD等相关指标,共同作为训练数据。

在S-LSTM模型基础上结合主成分分析法提取出原始数据的主成分,将原始数据标准化后根据式(4)计算相关系数矩阵R,再解特征方程求得特征值与方差贡献率如表2所示。根据方差贡献率由大到小对变量进行排序。依照主成分选择规则,前3个成分的特征值均大于1,且累计方差贡献率达到了98%,故选择前3个作为主成分。

表2 特征值及贡献率

最后经过计算得到前3个成分的成分载荷值,如表3所示。利用式(5)得到3个主成分得分值。将主成分得分值与KDJ、MACD等相关指标,共同作为训练数据来建立基于主成分的PCA-SLSTM模型。

在原始LSTM模型、针对股票特性改进的SLSTM模型与基于主成分的PCA-S-LSTM模型中,均采用平安银行000001.SZ从2018年5月21日到2019年3月14日,共200 d的相关数据作为测试集。

表3 主成分载荷值

2.2 确定训练参数

将训练集的起止日期之间的每个工作日的相关数据作为输入值,将第2天的收盘价格作为输出值,通过模型来进行训练。原始模型的输入值为开收盘价等基础数据,神经网络参数设定为:输入层维度为12,输出层维度为1,初始化学习速率0.000 06,训练时间步长为20,隐含层神经元为25个。

针对股票特性对模型进行改进,在基础数据之上添加了处理计算后得到的KDJ,MACD指标共16个变量。故输入层维度提高为16。并根据股票波动周期通常为1~2周的特点,如图2所示,通过逐一测试改进训练时间步长为10。

图2 训练时间步长测试结果曲线

针对过拟合问题,根据隐含层神经元个数的经验公式(10),以及多次对比测试,确定隐含层神经元为14个。

式中:m为输入层神经元数;n为输出层神经元数;α为1~10的常数。

基于主成分的LSTM模型中,在针对股票特性改进的基础上,结合主成分分析法,将输入层的维度降至10,并经过反复测试后,调整隐含层神经元为7个,其他参数与原始模型保持一致。

2.3 仿真结果对比与分析

将原始LSTM模型、针对股票特性改进的SLSTM模型与基于主成分的PCA-S-LSTM模型分别进行训练。在将三者都训练至loss=0.016的情况下,记录每个模型的单次训练时间、总误差值、平均误差率以及误差的标准差。模型的性能以及误差如表4所示。可以看出:S-LSTM模型比起原始LSTM模型改变了输入变量以及网络结构,减少了误差以及训练时间,预测效果也更加稳定。

表4 3种LSTM模型的性能及误差

以S-LSTM模型为基础,结合主成分分析法,在不改变输入样本数据结构的基础上实现降维,直接减少了输入层的维度与隐含层节点数,使网络结构更加精简。将单次训练时间缩短了一半左右,由原本的0.171 s减至0.082 s,进一步提高了模型的学习速率。

PCA-S-LSTM模型在预测精度方面也有所提升。将S-LSTM模型预测的误差总值由71.48到49.26下降明显,平均误差率由原本的3.48%减少至2.43%。而且误差的标准差也有所减少,预测误差的离散程度变低说明预测效果更加稳定。

模型改进前后的预测曲线如图3~5。图中预测曲线与真实值曲线基本拟合,能够反映股票整体走势。对比图3~5可以看出:基于主成分的PCA-S-LSTM模型预测值与真实值的偏差比原始模型有所减少,曲线拟合程度更高,结果更加准确。

图3 原始LSTM模型预测结果曲线

图4 S-LSTM模型预测结果曲线

图5 PCA-S-LSTM模型预测结果曲线

在忽略交易手续费的情况下,盈利率计算公式为

根据波浪理论,在预测曲线中取上涨趋势中第2个波谷后向上突破颈线时为买入点,取下跌趋势中第2个波峰作为卖出点。利用所取点日期的平安银行真实收盘价进行盈利率计算,在测试集200 d中共得到9段交易,如表5所示。

表5 交易详情以及盈利率

从盈利率可以看出阶段性有盈有亏,但总体处于盈利状态,且受整体市场影响。在股票市场兴旺向上,整体走高的时候盈利率较高,大部分时候处于比银行利率略高的水平。预测效果结合实际操作结果可以接受,模型具有一定的实用价值。

3 结论

本研究使用改进后的LSTM模型对股票价格进行预测,引入股票相关技术指标,根据股票特性对模型进行调整,并利用主成分分析法提取出的主成分及计算后的数据作为新的训练样本集。实现了提高样本质量,深度挖掘数据内隐含的信息,增加模型对股票的专用性以及对模型输入数据的降维处理,消除了输入特征的相关性,减少了LSTM神经网络的输入层数,在提升输入数据精简度的同时,也简化了整体网络结构。通过对比仿真结果,得出基于主成分分析的模型比原始模型预测效果更好。不仅预测精度有所提高,训练时间也大幅缩短,提高了神经网络的学习速率,并且使预测效果更加稳定。由于股市走势也受外界因素及其自身的不稳定性的影响,虽然结果和真实值会有偏差,但是预测的总体趋势一致。

本研究虽然得出了初步的结论,但还存在一些问题:

1)技术方法分析预测股价的基础是道氏理论的3个假设,一切技术方法都是以量价关系作为研究对象。

2)股票市场复杂多变,除了相关指标数据之外,国际形势、国家政策、行业发展以及人为干预等都是外界影响股票走势的因素。

3)量价指标反应股市具有滞后性,模型不能及时预测突发事件。

4)模型的泛用性还有待在更多数据集上进行测试。只有继续研究,针对各个方向对模型进行优化,才能进一步提高模型的精度与速度,实现更加准确的股票预测。

猜你喜欢
原始数据特征值股票
GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
一类内部具有不连续性的不定Strum-Liouville算子的非实特征值问题
一类带强制位势的p-Laplace特征值问题
单圈图关联矩阵的特征值
受特定变化趋势限制的传感器数据处理方法研究
全新Mentor DRS360 平台借助集中式原始数据融合及直接实时传感技术实现5 级自动驾驶
本周创出今年以来新高的股票
本周创出今年以来新高的股票
本周连续上涨3天以上的股票
近期连续涨、跌3天以上的股票