摘" 要:鉴于证券市场波动大预测难度高,文章基于encoder-decoder结构将Attention机制融入CNN-LSTM模型,利用Attention机制来捕捉不同时间点之间的数据依赖模式,提取长序列信息,并且在此基础上给出概率密度函数进行抽样预测,最终得出股票价格的点预测和区间预测。实验结果表明,融入Attention机制的CNN-LSTM概率预测模型从综合性能来看优于其他基准模型,能够对上证指数收盘价进行较高精度的多步预测。
关键词:Attention机制;概率密度函数;上证指数
中图分类号:TP39;TP183" 文献标识码:A 文章编号:2096-4706(2024)12-0155-06
Stock Index Prediction Based on CNN-LSTM Probability Prediction Model with Attention Mechanism
GAO Xin
(School of Big Data and Statistics, Anhui University, Hefei" 230601, China)
Abstract: Given the high volatility of the securities market and the high difficulty of predicting it, this paper integrates the Attention mechanism into the CNN-LSTM model based on the encoder-decoder structure. The Attention mechanism is used to capture data dependency patterns between different time points, long series information is extracted, and based on this, a probability density function is provided for sampling prediction, point prediction and interval prediction of stock prices are obtained ultimately. The experimental results show that the CNN-LSTM probability prediction model incorporating the Attention mechanism outperforms other benchmark models in terms of comprehensive performance, and can make high-precision multi-step predictions of the closing price of the Shanghai Composite Index.
Keywords: Attention mechanism; probability density function; Shanghai Composite Index
0" 引" 言
股票数据具有高维、非线性的特征,因此股票价格的精准预测存在一定的挑战。目前,股票价格预测方法主要分为传统时间序列方法和基于深度学习的机器学习方法。股票数据的变动具有时间属性,这使得采用传统时间序列方法解决股票价格预测问题具有一定的理论依据。传统时间序列方法的主流模型有ARIMA [1]、ARCH [2]和GARCH [3]等。吴玉霞等[4]利用ARIMA模型对华泰证券250期的股票收盘价进行拟合预测,所得结论为该模型的短期动态预测和静态预测效果较好,为投资者的价值投资提供一定的参考借鉴;王苏生等[5]采用ARMA-GARCH-SN模型对沪深300股指期货进行预测,证明了该模型的有效性。许多研究表明,传统时间序列方法的确能够对股票价格进行预测,但是此类方法严重依赖于某些假设条件,甚至某些假设并不适用于现实中的复杂数据,因此此类方法在实际使用场景中的效果并不理想。
相较之下,机器学习方法无须这些假设条件,同时它还拥有学习数据特征的能力,可以很好地拟合非线性数据,因此研究者们将机器学习方法引入股票价格预测。一些经典的机器学习模型(如支持向量机[6]、随机森林[7]等)在金融时序预测研究方面发挥着重要的作用。Ticknor等[8]利用BP神经网络模型对微软公司和高盛集团股价进行预测;冉杨帆等[9]利用股票新闻来构造情绪值,分别使用BP神经网络和SVR预测股价,均取得了不错的效果。在高算力计算机快速发展的时代背景下,深度学习神经网络模型领域开始推陈出新,其具有批量处理高维、非线性时序数据的能力,理论上还能够拟合任意形式的函数。其间,诞生了一些具有代表性的神经网络模型,如LSTM [10]、GRU [11]等,此类模型可广泛应用于序列预测。冯宇旭等[12]利用LSTM模型对沪深300指数进行预测,并将SVR模型和Adaboost模型作为对比模型,实验结果表明LSTM模型得到的预测结果RMSE更低;刘铭等[13]利用EMD-LSTM模型对上证指数进行预测,并提出根据数据的具体波动形式来挑选合适股票预测模型的论点。Akita等[14]通过数字信息和文本信息相结合的方式来对东京证券交易所50家公司的开盘价进行预测,首先他们基于段落向量对新闻报道进行分布式表示,再使用LSTM模型进行建模,验证了所提模型的有效性;Peng等[15]利用LSTM模型和Transformer模型对中国A股银行股票价格进行预测,将[2年前,1年半前,1年前,6个月前,3个月前,1个月前,2周前,1周前,2天前,1天前] 10个特征日的股票收盘价作为输入对未来股价进行预测,实验结果证明这种构造输入的方式有助于提高股价的预测精准度。
近年来,出现了基于RNN结构的概率预测模型——DeepAR模型[16]。一方面,RNN神经网络结构本身让其具备了对序列数据进行预测的能力;另一方面,该模型是基于目标变量服从正态分布的假设,让其不仅能对目标变量进行点预测,还能对目标变量进行区间估计和一致分位数估计。该模型不仅利用了神经网络对数据的拟合能力,还增强了模型的可解释性。Consoli等[17]通过新闻媒体报道构造情绪变量,利用基于LSTM结构的DeepAR模型对西班牙IBEX-35股票市场指数进行预测,发现情绪变量的构造有利于提高模型的预测精度。
本文将注意力机制融入CNN-LSTM模型,在预测过程中直接生成多步预测,与递归神经网络相比,注意力机制能够提取整个序列信息,捕捉到长距离序列数据之间的依赖模式,可最大程度保存原始输入序列的信息。最后,通过实验证明在上证指数收盘价的预测中该模型的预测结果优于基准模型。
1" 模型构建
1.1" 问题的提出
股票价格的预测本质上是时间序列的预测问题,即利用已知的历史时间步长为N天的数据[Xt-N+1, …, Xt-1, Xt]去预测未来M天的价格[yt+1, …, yt+M-1, yM]。由于股票价格的变动是资本、市场环境、投资者情绪等诸多因素共同作用的结果,具有很强的随机性,因此本文假设股票每日收盘价均服从正态分布,其分布密度函数为:
(1)
其中,yt表示当天股票收盘价,ut表示当天股票收盘价服从正态分布的均值,σt表示当天股票收盘价服从正态分布的标准差。
我们的目标是建立式(2)模型:
(2)
根据式(2)构造出样本似然函数,以极大化样本似然函数(等价于极小化负对数样本似然函数)为目标,以此作为损失函数来训练神经网络。在预测阶段根据概率密度函数进行多次抽样,将抽样的均值作为本次实验的预测值,最终实现多步预测。
1.2" 模型框架
本文所使用的Attention-CNN-LSTM概率预测模型,采用encoder-decoder结构解决时间序列数据的多输入多输出问题。首先,对预处理好的数据进行位置编码,在encoder中,数据经过多头注意力层和两个一维因果卷积层后最终得到编码矩阵;在decoder中,将编码矩阵作为LSTM层的输入,经过自定义的线性层输出每天的均值和方差,根据均值和方差实例化一个正态分布,最后进行概率抽样,具体流程如图1所示。
1.2.1" 位置编码
注意力机制虽然可以快速提取序列信息,但是却忽略了序列中的位置信息,因此必须给输入数据加上绝对编码或相对位置编码,使数据带有类似时间的属性,更好地处理时间序列预测任务。本文采用较为常用的正余弦位置编码,计算式如下:
(3)
(4)
其中,pos表示数据的位置,i表示数据的维度。
1.2.2" 注意力机制
注意力机制本质上是一个函数,它将查询(Query)和键值对(Key-Value)映射到输出,在这里查询(Query)、键(Key)、值(Value)和输出均是向量。注意力机制可以计算对输入的关注权重,从而快速提取特征,与循环神经网络相比注意力机制可以更好地提取长距离数据之间的联系。这里使用的是缩放点积注意力(Scaled Dot-Product Attention),计算式如下:
(5)
其中,Q、K、V分别表示由查询(Query)、键(Key)和值(Value)组成的矩阵,dk表示输入数据的维度。
与单头注意力机制相比,多头注意力机制能够更好地提取长序列之间的数据依赖关系。首先,将Q、K、V投影到不同的线性空间;接着分别利用Attention函数进行计算,再将各自的结果进行连接,最后将连接后得到的矩阵进行投影输出。多头注意力机制使得模型具有关注来自不同位置的不同线性子空间信息的能力,计算式如下:
(6)
(7)
其中,。h表示注意力头数,dk表示输入的维度,在这里我们设置dk = dv = dmodel / h,在使用多头注意力机制时,减少每个单头注意力机制的输入数据的维度,这样既能避免计算量的增加(有利于数据并行化),又能加强模型提取数据信息的能力。
1.2.3" 输出层
模型的输出层是一个输出维度为2的线性层,第一个维度代表均值,第二个维度代表标准差。通过输出层输出正态分布所需的参数,根据式(1)计算出每个时间点概率分布的具体表达式,输出层ut和σt的计算式如下:
(8)
(9)
其中,ht表示LSTM层中第t时刻的状态向量,、 分别表示输出层ut和σt的权重向量。
2" 实证分析
2.1" 数据来源、数据集划分及数据预处理
为了验证模型的有效性,选取2016年8月10日至2023年1月30日期间上证指数各指标变量1 570条数据(以天为单位收集)。另外,为了验证本文模型的前提假设(即上证指数每天的收盘价服从正态分布),选取2021年12月29日至2023年3月10日期间以5分钟间隔收集到的上证指数价格波动数据(13 860条数据)。所有数据均是从通达信金融终端APP中下载获取的。
将数据集中前1 270条数据用于训练,后300条数据用于预测,实验目标是利用步长为20天的上证指数的收盘价及各变量指标来预测未来7天的上证指数收盘价。构建样本集的具体方式是通过设置宽度为20的滑动时间窗口作为模型输入数据,为了充分利用训练集数据,在训练集中每次往后移动1步进行滚动预测,而在测试集每次向后移动7步进行滚动预测。
为了提高模型的预测精度和计算效率,先对数据进行预处理,本文选择调用Python中的sklearn.preprocessing库,利用库中的MinMaxScaler对象来实现数据的归一化操作,计算式如下:
(10)
其中,xmax表示序列中的最大值,xmin表示序列中的最小值。
2.2" 变量的选择
在变量特征的选择方面,本文全面考虑了影响股价变动的各种因素,不仅将上证指数相关的基本型变量指标(比如开盘价、收盘价及成交量)纳入考量范围,还加入一些技术类分析指标,例如能量型指标AR和CR、趋势型指标MACD等。具体的变量选择如表1所示。
2.3" 评价指标
对于点预测,采用均方根误差(RMSE)、平均绝对误差(MAE)和平均相对误差(MAPE)衡量模型的优劣,具体表达式如下:
(11)
(12)
(13)
本文引入了预测区间覆盖率(PICP)、预测区间归一化宽度(PINAW)和区间覆盖准则(CWC)三种指标进行区间预测,各自的表达式如下:
(14)
(15)
(16)
其中,ylow表示区间预测下限,yhigh表示区间预测上限,v表示名义置信水平,ρ表示对预测失效的区间惩罚的参数,这里取ρ = 50。PICP越大,代表落入预测区间的真实值越多,预测效果越好;PINAW越大,代表预测区间越宽,预测结果的不确定性越大;但是PINAW的增大会引起PICP增大,因此这两个变量是相互对立的,需要借助CWC指标来综合评估区间预测的性能,CWC指标越小区间预测效果越好。
2.4" 实验结果
2.4.1" 正态分布假设的验证
本文为了验证模型对上证指数收盘价服从正态分布的假设,针对2021年12月29日至2023年3月10日(共289天)以5分钟为间隔收集到的上证指数价格数据按照日期分组进行KS检验(原假设是认为数据服从正态分布),并对结果进行统计,如表2所示。
从表2可以看出,在95%置信水平下,认为上证指数的价格服从正态分布的天数为261(共289天),占比90.3%;在99%置信水平下,认为上证指数的价格服从正态分布的天数为284(共289天),占比98.3%。根据表2的检验结果,我们可以认为上证指数每日收盘价服从正态分布的原假设具有合理性。
2.4.2" 神经网络参数设置
Attention-CNN-LSTM模型深度为7层,第一层是位置编码层,位置编码层中的参数不需要优化,所以无须设置超参数;第二层是多头注意力层,此处注意力头数设置为8,单头注意力机制的输入数据维度是7;第三层和第四层都是一维卷积层,输出维度都是20,卷积核大小都是5;第五层是LSTM层,输出维度设置为10,return_sequences设置为True(每个时间点都能输出一个向量);为防止模型过拟合,本文在模型中增加了dropout层,单元随机失活的概率设置为0.2;最后一层是自定义线性层,输出维度是2,第一个维度输出样本均值,第二个维度输出样本方差。利用每个时间点输出的均值和方差构造样本似然函数,将损失函数设置为负对数样本似然函数并采用Adam优化器(学习率设置为0.001),将batch_size设置为10,循环迭代50次得到最终的预测结果。
2.4.3" 结果展示
根据所得到的分布密度函数进行抽样,将均值作为点预测值,并与CNN、LSTM和CNN-LSTM模型进行对比,得到的结果如图2所示。
根据图2,四种模型均能捕捉到上证指数的价格波动趋势,Attention-CNN-LSTM模型和CNN-LSTM在股价波动平缓时期预测结果更加平滑,股价快速上升和快速下降阶段Attention-CNN-LSTM模型的预测滞后性最小,这说明CNN-LSTM网络层的运用使模型具备了较为精准且平稳的时序预测性能,注意力机制的融入使模型能够更好地捕捉到数据变化的内在联系,因此在股价骤变阶段能够快速做出调整。
为了评估Attention-CNN-LSTM模型的区间预测效果,选用ARIMA模型与之进行对比,结果如图3所示。
根据图3,Attention-CNN-LSTM模型和ARIMA模型的点预测效果接近,但是ARIMA模型比较适用于平稳时间序列预测任务,要求数据之间的线性关系较强,而股票数据的波动具有非线性和随机性的特征,因此在股价变动剧烈的时期ARIMA模型的预测结果偏差较大。在区间预测效果方面,上证指数的实际值基本都落在两种模型的预测区间内,但是ARIMA模型的预测区间宽度明显大于Attention-CNN-LSTM模型,不利于投资者进行决策。
根据表3,在点预测效果方面,Attention-CNN-LSTM模型在RMSE、MAE和MAPE三种评价指标下预测偏差均达到最小,ARIMA模型和CNN-LSTM模型也取得了较好的预测性能,平均相对误差降到2%以下;在区间预测效果上,ARIMA模型的预测相对保守,预测区间覆盖率(PICP)略高于Attention-CNN-LSTM模型,但是预测区间宽度明显大于后者,结合区间覆盖宽度准则(CWC)指标来看,ARIMA模型是Attention-CNN-LSTM模型的1.23倍,因此后者的区间预测效果更优,具备更好的泛化性能,与图2和图3的直观视觉效果相符。
3" 结" 论
股票市场作为经济发展的晴雨表,其变动趋势对国民经济有着重要的影响,因此本文提出将Attention机制融入CNN-LSTM的概率预测模型对上证指数进行预测,利用Attention机制捕捉长序列数据之间的联系,结合CNN-LSTM模型时序预测方面的优势,实例化股票价格波动的概率密度函数,实现股票价格的点估计和区间估计,并将该模型与四种基准模型进行对比。实验结果表明,在点预测和区间预测效果上该模型均具有一定的优越性。
虽然Attention-CNN-LSTM在对上证指数收盘价的预测对比中表现优异,但是此模型仍然存在不足之处,从图2中可以看出在上证指数快速下跌的过程中,该模型的预测结果存在一定的滞后性,应当对模型做出适当的优化,使模型尽可能快地捕捉到特征变量变化对预测变量的影响,从而提高预测精度。
参考文献:
[1] WANG C Y. Forecast on Price of Agricultural Futures in China Based on ARIMA Model [J].Asian Agricultural Research,2016,8(11):9-12+16.
[2] ENGLE R F. Autoregressive Conditional Heteroskedasticity with Estimates of the Variance of United Kingdom Inflation [J].Econometrica,1982,50(4):987-1008.
[3] KOLA K,SEBEHELA T. The Capitalized Generalized Autoregressive Conditional Heteroskedasticity [J/OL].Review of Pacific Basin Financial Markets and Policies,2022,25(3):2250017[2023-09-06].https://www.worldscientific.com/doi/10.1142/S0219091522500175.
[4] 吴玉霞,温欣.基于ARIMA模型的短期股票价格预测 [J].统计与决策,2016(23):83-86.
[5] 王苏生,王俊博,许桐桐,等.基于ARMA-GARCH-SN模型的沪深300股指期货日内波动率研究与预测 [J].运筹与管理,2018,27(4):153-161.
[6] NGUYEN T H,SHIRAI K,VELCIN J,et al. Sentiment Analysis on Social Media for Stock Movement Prediction [J].Expert Systems with Applications,2015,42(24):9603-9611.
[7] OLIVEIRA N,CORTEZ P,AREAL N. The Impact of Microblogging Data for Stock Market Prediction: Using Twitter to Predict Returns, Volatility, Trading Volume and Survey Sentiment Indices [J].Expert Systems with Application,2017,73:125-144.
[8] TICKNOR J L. A Bayesian Regularized Artificial Neural Network for Stock Market Forecasting [J].Expert Systems with Applications,2013,40(14):5501-5506.
[9] 冉杨帆,蒋洪迅.基于BPNN和SVR的股票价格预测研究 [J].山西大学学报:自然科学版,2018,41(1):1-14.
[10] GREFF K,SRIVASTAVA R K,KOUTNÍK J,et al. LSTM: A Search Space Odyssey [J].IEEE Transactions on Neural Networks and Learning Systems,2017,28(10):2222-2232.
[11] CHO K,MERRIËNBOER B V,GULCEHRE C,et al. Learning Phrase Representations Using RNN Encoder-Decoder for Statistical Machine Translation [C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP).Doha:Association for Computational Linguistics,2014:1724-1734.
[12] 冯宇旭,李裕梅.基于LSTM神经网络的沪深300指数预测模型研究 [J].数学的实践与认识,2019,49(7):308-315.
[13] 刘铭,单玉莹.基于EMD-LSTM模型的股指收盘价预测 [J].重庆理工大学学报:自然科学,2021,35(12):269-276.
[14] AKITA R,YOSHIHARA A,MATSUBARA T,et al. Deep Learning for Stock Prediction Using Numerical and Textual Information [C]//2016 IEEE/ACIS 15th International Conference on Computer and Information Science (ICIS).Okayama:IEEE,2016:1-6.
[15] PENG Z Y,GUO P C. A Data Organization Method for LSTM and Transformer When Predicting Chinese Banking Stock Prices [J/OL].Discrete Dynamics in Nature and Society,2022:7119678[2023-09-03].https://doi.org/10.1155/2022/7119678.
[16] FLUNKERT V,SALINAS D,GASTHAUS J. DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks [J/OL].arXiv:1704.04110v1 [cs.AI].[2023-09-06].https://arxiv.org/abs/1704.04110v1.
[17] CONSOLI S,NEGRI M,TEBBIFAKHR A,et al. Forecasting the IBEX-35 Stock Index Using Deep Learning and News Emotions [C]//7th International Conference on Machine Learning, Optimization, and Data Science.Grasmere:Springer,2022:308-323.
作者简介:高欣(1997—),男,汉族,安徽六安人,硕士研究生在读,研究方向:深度学习。