基于 LSTM 神经网络












摘要:股票价格预测一直受到人们的广泛关注。本文基于长短期记忆网络(LSTM)和马尔科夫链(马氏链)构建了一个新的股价预测模型。以 2019 年 1 月 2 日到 2020 年 10 月 30 日大湾区指数成分股华侨城 A(000069)的日收盘价为实证分析对象,先利用 LSTM 神经网络进行预测,然后运用马氏链模型对其残差进行校正。经测试发现,LSTM 神经网络-马氏链模型预测比单一的 LSTM 神经网络更接近实际。最后,对股价的涨跌趋势及运动周期进行了长期预测。
关键词:股价预测 LSTM 神经网络 马尔科夫链
一、引言
全球政治局势、国家宏观调控、金融政策、新冠疫情等多种因素均可导致金融市场的波动,进而对股票市场产生重大影响。因此,如何科学、合理地预测股票价格涨跌趋势已受到人们的广泛关注,其研究成果也日益丰富。
近年来,彭燕等[1]利用长短期记忆网络(LSTM)内部的选择记忆性,对股票价格走势进行预测建模与分析,实现短期的股票预测,给投资者提供一定的参考。冯宇旭、李裕梅[2]通过 LSTM 神经网络对沪深 300 指数进行预测分析,并与 SVR 和 Adaboost 模型预测结果进行对比,得出 LSTM 预测结果的均方根误差(RMSE)更低。
受众多随机因素影响,股票价格起伏不定,对其短期、符合内在机理、精准地预测并不容易。从长远来看,股价的波动性似乎又呈现出股价具有某种趋势。国内外不少学者运用马尔科夫链相关理论对股票价格及其走势进行预测。例如,王强[3]用马尔可夫链预测方法分析桂林旅游(SZ000978)价格的波动情况;孟银凤、李荣华等人[4]利用马氏链对申华控股(600653)价格的变动情况分析;王新武[5]运用马氏链相关理论对中国石油股价进行预测。以上运用马氏链相关理论建立股价走势预测模型,给投资者提供了一定的理论参考。
考虑到 LSTM 神经网络和马氏链模型在股价预测中的优势,本文将以华侨城 A(000069)等股票收盘价为实证分析对象,利用 LSTM 神经网络优良性能对其进行预测,再运用马尔科夫链模型对其残差进行校正,并对收盘价序列进行长期涨跌趋势和运动周期预测,计算结果与实际进行对比分析,以期给广大投资者提供一定的理论参考。
二、LSTM 的结构及原理
LSTM 神经网络,在时间递归神经网络(RNN)的基础上增加了「门控」结构,可以一定程度上解决 RNN 处理时间序列问题时出现的梯度消失或爆炸的问题,适合于预测时间序列中间隔和延迟相对较长的重要事件[6]。
LSTM 神经网络是由记忆单元和门控单元所组成的,主要通过三个门即输入门()、遗忘门()和输出门()来实现信息的保护和控制。该神经网络 t 时刻的工作原理见图 1 所示,表示时刻隐藏状态,对应 t 时刻的输入,双曲正切函数,为整个细胞单元状态,,,分别对应遗忘门、输入门、输出门。LSTM 神经网络内部机制可通过下列公式表示:
其中 σ 为激活函数,若结果为 1,则完全保留上一层的信息;若结果为 0,则完全舍弃该信息。,,,分别对应 Forget gate、Input gate、cell、Output gate 的权值项;,,,分别对应 Forget gate、Input gate、cell、Output gate 的偏置项;为更新时刻的细胞状态。
三、马尔科夫链模型
马尔科夫链是一种常见的统计随机过程方法,概念直观且易于实现。在随机时间序列研究中有着重要的价值,在医疗、科技、金融等领域具有重要应用。马氏链模型主要有以下特性[7][8]:
第一,(无后效性)即 t 时刻的状态只依赖 t-1 时刻的状态,与 t-1 之前的状态无关。
第二,马尔科夫链有离散型和连续型,一般地转移概率不仅与状态有关,还与转移时间有关,如果转移概率不依赖转移时间的话,则表示马尔科夫链具有平稳转移概率。
第三,对齐次马尔科夫链而言,n 步转移概率矩阵就是一步转移概率矩阵的 n 次方,通过 C-K 方程很容易得到。
四、基于 LSTM-马氏链的股价预测校正模型
考虑到 LSTM 神经网络拥有选择记忆性的优点,现阶段金融市场中个别股票价格无后效性,基本符合马尔科夫链的特性,因此本文尝试基于 LSTM 神经网络和马氏链构建股价预测校正模型,具体步骤如下:
步骤 1 利用 LSTM 神经网络对股票价格进行预测。
步骤 1.1 利用标准化方法对原数据进行归一化,消除量纲影响。将股票价格数据收缩到区间,使得训练模型的 loss 下降更快,可以利用下面的最大-最小标准化公式进行归一:
(7)
其中,代表第 i 天的收盘价,,分别代表该收盘价序列的最大值与最小值。
步骤 1.2 采用时间滑动窗口,将股票价格归一化后的数据划分为训练集和测试集。将前一天的股票收盘价序列作为输入样本,当天的收盘价序列作为输出样本,基于 LSTM 神经网络对股票价格进行训练,通过反归一化可得预测价格序列。与真实价格序列的残差记为。
步骤 2 检验 LSTM 神经网络训练的残差序列是否具有马尔可夫性。
步骤 2.1 根据区间范围及其序列特征将其随机划分为 s 个小区间:[,),[,),…,[,);
步骤 2.2 令 =[,),(k=1,2,3,…,s),将视为以,(k=1,2,3,,s)为状态空间的随机时间序列;
步骤 2.3 构建统计量,检验是否具有马尔科夫性,具体如下:
若表示,,…,从状态一步转移到状态的频数,则频数矩阵可记为:
(8)
令
(9)
可得到一步转移概率矩阵 P=,则当较大时,统计量
(10)
服从自由度为的卡方分布。
选定置信水平 α,若 >,则在该置信水平下,不能拒绝具有马尔科夫性的零假设,即具有马尔科夫性;否则拒绝具有马尔科夫性的零假设,即不具有马尔可夫性。
步骤 3 若具有马尔科夫性,则利用 LSTM 神经网络对测试集进行预测,得到 K 个预测值。结合训练集的预测,可得预测价格序列,(K=1,2,3,)。根据马氏性及 C-K 方程[8][9],以训练集最后一个交易日残差作为马氏链的初始状态,得到的状态概率分布:
,(s=1,2,3,4,5,6;K=1,2,3,…)(11)
均值:
,(K=1,2,3,…)(12)
该均值序列(K=1,2,3,…)是对该测试集校正后的股票价格序列。若不具有马尔科夫性,则说明该股票价格不适合利用马氏链模型校正。
步骤 4 利用步骤 2.3 中得到的一步转移概率矩阵,可预测该股票价格稳态概率下涨跌趋势和运动周期。
五、实证分析
(一)数据来源
本文以 2019 年 1 月 2 日到 2020 年 10 月 30 日,大湾区指数成分股华侨城 A(000069)的每日收盘价数据(除节假日外)为实证分析对象,共计 443 个,其数据来源于锐思金融数据库。该收盘价时序图如下:
由图 2 可知,华侨城 A 收盘价涨跌趋势之间具有一定的间隔或延迟,波动较大,但在一定程度上也具有周期性。因此,可考虑先用 LSTM 神经网络对其收盘价进行预测,再用马氏链模型进行校正。
(二)LSTM 神经网络预测
本文模型利用 Python3.6 编程实现,通过调用库中的 Sequential 模型构建单层 LSTM 神经网络。通过前一天数据信息预测第二天的收盘价,选取了华侨城 A 股票收盘价序列前 65%(287 个样本)作为训练集,后 35%(156 个样本)作为测试集,其输出样本个数分别为 286 个和 155 个。通过微调参数,可使模型训练达到最优,从而提高模型的预测效果。
为了验证模型的有效性,选取可解释方差、拟合优度(R2)及平均相对误差作为评价指标。通过训练好的 LSTM 神经网络模型,对收盘价训练集、测试集进行预测,得到华侨城 A 股票校正前预测结果,如图 3 所示。从图 3(a)容易发现,华侨城 A 股票训练集的预测值和真实值能较好地吻合,其误差整体都在 0 上下波动,前期和后期偶尔少许波动,说明预测值随时间 t 以真实值为「轴线」上下波动,为后期建立马尔科夫链模型提供了可行性基础。由图 3(b)可知,通过微调参数后的华侨城 A 股票测试集预测效果较好。
从表 1 可知,通过参数微调可得到 95.34% 左右的可解释方差值,拟合优度达到 95.3%,平均相对误差较小,约 1.6%,这进一步说明利用 LSTM 神经网络初步预测华侨城 A 股票的收盘价是有效的。
(三)基于马氏链模型的进一步校正
利用 LSTM 神经网络模型预测华侨城 A 股票收盘价的训练集,可得 N 个预测值。通过步骤 1.2 可得残差的区间为。通过图 3(a)易知,其残差值均围绕 0 上下波动,偏离超过 10 以上的比较少。根据区间范围及其序列特征将其随机划分为 6 个区间(,,),即 =[-29,-10),=[-10,-5),=[-5,0),=[0,5),=[5,10),=[10,17]。此时,是一个以,(k=1,2,3,,6)为状态空间的随机时间序列。
根据步骤 2.3 检验是否具有马尔科夫性。具体地,利用式(8)可得一步转移频数矩阵:
。
利用公式(9)求得一步转移概率矩阵为:
及为:
=[0.119298 0.273684 0.164912 0.157894 0.154385 0.129824]。
最后,利用公式(10)计算统计量 201.74。取置信度 α=0.01,查阅相关文献得到 =44.31<201.74,故符合马氏链,其状态空间为 I={1,2,3,4,5,6}。
下面,将基于 LSTM 神经网络对测试集进行预测,由步骤 3 可得预测值,(K=1,2,3,)。根据马氏性及 C-K 方程[8][9],以训练集最后一个交易日误差作为马氏链的初始状态,其状态为。记初始状态,则的状态概率分布和均值方程见步骤 3。
当 K=1 时,股票华侨城 A 的实际收盘价 =268.562,由 LSTM 神经网络预测得到的收盘价。由式(12)对该预测值进行校正,计算得到。校正前的相对误差为 1.575%,经过马氏链校正后的相对误差为 1.286%,显然,校正后比校正前的相对误差降低了 0.29%。同理,对以后的预测值进行校正,可得华侨城 A 股票收盘价的预测值,与真实值的比较见图 4。由图 4 可知,基于马氏链校正后的预测值与实际值比较吻合,这也说明基于 LSTM 神经网络——马氏链模型对华侨城 A 收盘价进行预测是有效的。
为进一步验证该校正模型的有效性,对亿纬锂能(300014)、华高科技(000636)、金地集团 (600383)、塔牌集团(002233)、保利地产(600048)5 只股票收盘价也利用 LSTM 神经网络——马氏链模型(校正后)进行预测校正,并与单一的 LSTM 神经网络模型(校正前)预测进行比较,结果见表 1。对比表 1 中的结果可知,单一的 LSTM 神经网络预测拟合度都超过 90%,多数超过 95%,拟合效果较好。LSTM 神经网络——马氏链模型校正后的结果,其可解释方差变化不大、拟合优度有所提高,平均相对误差明显降低。当然,结果也发现,该模型对这 6 只股票的短期预测较好,因为当,也就是经过 13 天之后,n 步转移概率矩阵慢慢趋向平稳,导致后期对 LSTM 神经网络预测模型的校正有限。但总体来说,经过马氏链校正后的预测值与真实值更加接近,因此,LSTM 神经网络——马氏链模型预测性能更优越。
(四)基于 LSTM 神经网络-马氏链模型的长期预测
1.稳态概率下的涨跌趋势。首先,对华侨城 A 股票的收盘价进行长期涨跌势预测,并与实际情况对比分析。若一步转移概率矩阵不可约(即当 N 很大时容易满足),则由文献[3][4]可知,存在平稳分布使得,且。解齐次线性方程,将 I-P 进行初等变换,可得该方程组的解:=(0.1285,0.2719,0.1452,0.1542,0.1641,0.1361),即为平稳分布。因此,稳态概率下该股票收盘价下跌的概率为 =0.5456,上涨的概率为 =0.4544。由图 3(b)可知,从长期来看,该支股票下跌的概率大于上涨的概率,预测结果与之是一致的。
2.股价的周期预测。其次,基于马氏链模型对华侨城 A 股票的收盘价进行周期预测。记为收盘价从状态 i 开始经过时间单位 n 之后首次进入状态 j 的概率,即。令为状态转移到状态的平均时间,,()满足方程组[4]。
(13)
解方程组(13)可得,即状态 1 到状态 6 的平均时间(由跌到涨的平均时间);以及,即状态 6 到状态 1 的平均时间(由涨到跌的平均时间)。方程组(13)也可表示为:
解得 =8.8326,同理可解得 =8.3081,=7.7843,=7.3472。
从上述结果可知,华侨城 A 股票的收盘价在 2020 年 3 月 11 日到 2020 年 10 月 30 日这 156 个交易日期间,由状态 1 到状态 6 平均需要 9 个交易日,由状态 6 到状态 1 平均需要 9 个交易日,即大跌到大涨要 9 个交易日,大涨到大跌也要 9 个交易日。,说明该股票收盘价完成一个短线运行周期平均需要 18 个交易日。=7.7843,=7.3472 状态 1 回到状态 1,状态 6 回到状态 6 均需要 8 个交易日,说明该股票收盘价短期波动较大。类似地,对其它 5 支股票收盘价进行涨跌趋势和周期预测,结果发现与实际情况基本一致。
六、结束语
本文基于 LSTM 神经网络和马氏链理论提出一种新的股票价格预测模型,并以大湾区指数成分股华侨城 A 股票日收盘价为研究对象进行实证分析。基于华侨城 A 股票 2019 年 1 月 2 日到 2020 年 3 月 10 日的日收盘价数据,利用 LSTM 神经网络进行预测(训练),结果发现预测结果与真实值比较吻合。利用马氏链理论检验,发现该残差具有马尔科夫性。选取华侨城 A 股票 2020 年 3 月 11 日到 2020 年 10 月 30 日的日收盘价数据进行预测(测试),基于 LSTM 神经网络——马氏链模型进行预测校正,结果发现 LSTM 神经网络——马氏链模型比单一的 LSTM 神经网络预测效果好,前者平均相对误差 1.56% 比后者的 1.62% 更低。 此外,本文对亿纬锂能 (300014)、华高科技(000636 )、金地集团 (600383)、塔牌集团 (002233)、保利地产(600048)5 只股票收盘价进行了预测,结果发现其平均相对误差都低于 2.9%,均比单一的 LSTM 神经网络预测的平均相对误差低,这也进一步验证了本文预测模型的有效性。
参考文献:
[1]彭燕,刘宇红,张荣芬.基于 LSTM 的股票价格预测建模与分析[J].计算机工程与应用,2019,55(11):209-212.
[2]冯宇旭,李裕梅.基于 LSTM 神经网络的沪深 300 指数预测模型研究[J].数学的实践与认识,2019,49(7):308-315.
[3]王强.基于马氏链的股票价格预测模型[J].江苏技术师范学院学报(自然科学版),2008(2):33-38.
[4]孟银凤,李荣华.股票价格的马氏链预测模型[J].数学理论与应用,2010,30(3):53-57.
[5]王新武.股票价格预测模型[J].陇东学院学报,2012,23(3):40-43.
[6]任君,王建华,王传美,王建祥.基于 ELSTM-L 模型的股票预测系统[J].统计与决策,2019,35(21):160-164.
[7]邓凤欣.LSTM 神经网络在股票价格趋势预测上的应用[D].广东外语外贸大学,2018.
[8]李航着.统计学习方法[M].第 2 版.北京: 清华大学出版社,2019.
[9]刘次华.随机过程[M].武汉: 华中科技大学出版社,2011.
基金项目:南宁师范大学博士科研启动项目(20180406001)。
作者单位:南宁师范大学数学与统计学院,徐庆娟为通讯作者
作者 蒙懿 徐庆娟