1. 引言
随着全球经济的发展,股票市场的规模不断扩大,股票价格的波动不仅直接左右投资者的财富损益,更对宏观经济的稳定与增长有着深远影响。作为深度学习中最具挑战的应用之一,如何准确地预测股票价格备受量化投资者的关注。由于股票市场的复杂性和不确定性,传统预测方法(如多元回归、RNN模型)等存在诸多局限性,难以捕捉股票市场中的相关特征,导致预测结果不佳。尤其是在面对突发的经济事件、政策变化等情况时,传统方法的预测能力更是大打折扣。
随着机器学习在金融领域中的应用不断发展,长短期记忆网络(LSTM)模型为股票价格预测提供了新的思路。作为一种改进的循环神经网络,LSTM模型能够有效处理时间序列数据中的长期依赖关系,克服了传统RNN模型容易出现的梯度消失或爆炸问题,在时间序列预测中展现出显著优势[1]。LSTM模型凭借记忆单元捕捉股票价格时间序列的长期依赖,能自适应学习、抵御噪声干扰,拟合价格变化的非线性关系。因此,利用LSTM模型对股票价格进行预测,无论是对个人投资者合理配置资产,还是对金融机构制定投资策略而言,都有望在金融领域发挥更大价值,极具应用前景。
本文旨在运用LSTM模型对股票价格进行预测,展现其在股票价格预测的有效性,为金融市场中风险管理和投资决策提供有力支持。首先,了解历史研究成果和传统的预测方法,详细阐述LSTM模型的结构原理;然后,介绍数据的收集和处理过程,LSTM模型在股票价格预测中的应用过程,以及实验设置;最后,与RNN模型进行对比,评估LSTM模型的性能并总结其在股票价格预测中的优势。
2. 文献综述
现已有许多学者利用深度学习算法对股票价格预测进行研究。早期,张贵勇将卷积神经网络(CNN)应用于金融预测,改进后建立了适用于金融时间序列数据的模型,并与支持向量机融合,提高了股票指数和汇率预测的精度[2]。然而,大量的研究表明CNN虽然擅长对数据进行特征提取,但对具有时间序列特性的数据的动态变化捕捉能力不足,无法充分利用历史数据中的时间依赖信息。由于循环神经网络(RNN)能够考虑时间顺序,挖掘长期依赖,自动提取特征以及适应数据变化,许多学者开始使用RNN对股价进行预测。Metawa等利用改进的差分进化算法对如隐藏层神经元数量、学习率等超参数进行优化,使模型在预测股票价格上涨或下跌方向上的准确性得到提高[3]。不过,RNN在训练过程中存在容易出现梯度消失或梯度爆炸的问题,这使得它在处理长时间序列数据时表现欠佳,难以准确捕捉股票价格的长期趋势变化。
为解决RNN的上述问题,学者们引入了长短期记忆网络(LSTM)进行研究。孙瑞奇基于LSTM神经网络构建了美股股指价格趋势预测模型,与BP神经网络和传统的RNN模型相比,使用LSTM模型得到的预测结果更准确,模型拟合程度也更高[4]。张杰通过LSTM在股价预测和股价涨跌预测两个方面的实证分析,验证了LSTM对股票数据分析的可行性和有效性[5]。Nath等利用LSTM进行股票市场指数预测,为投资者在股票市场指数投资方面提供了参考依据[6]。此外,Giang Thi Thu等提出基于动态滑动窗口和邻域LSTM的模型,通过整合股票历史价格及其邻居信息,提高了预测模型的性能[7]。近期研究中,管健将RNN和CNN的优势结合起来,利用RNN处理时间序列数据的能力和CNN提取局部特征的能力,提升股票价格预测的性能[8]。董玲研究了多种深度学习模型在股票价格预测中的应用,对比分析了LSTM与其他模型的优缺点,探索了将LSTM与注意力机制等相结合的优化方案[9]。刘会滔采用二次分解和多源数据融合的方法,将多种数据信息融入LSTM模型,增强了模型对股票价格复杂波动的捕捉能力[10]。
众多研究表明,相较于传统的神经网络,LSTM模型在股票价格预测中展现出了一定的优势,能够有效处理时间序列数据,捕捉长期依赖关系,提高预测精度。尽管LSTM模型在股票价格预测方面取得了一定的成果,但仍存在一些局限性。部分研究中LSTM模型存在过拟合问题,尤其在数据量有限的情况下,模型容易过度学习训练数据中的噪声,导致在测试集上的泛化能力下降,无法准确预测真实市场中的股票价格走势。模型对市场中的突发事件或异常波动的适应性不足,当市场出现剧烈变化时,难以快速调整预测结果,及时反映市场动态[11]。本文旨在通过对模型训练过程的精细化控制来缓解过拟合问题,同时选用具有代表性的上证综指数据进行实验,增强模型对市场复杂情况的适应性,最后通过对比实验展现其在股票价格预测的有效性。
3. 模型结构和原理介绍
3.1. RNN模型
3.1.1. 基本概念及原理
循环神经网络(Recurrent Neural Network, RNN)作为一类专门处理序列数据的神经网络,具备短期记忆能力。RNN由输入层、输出层和隐藏层构成,其隐藏层既接收来自输入层的外部信息,又接纳上一时刻自身输出的信息,这种信息交互模式形成了双线循环的网络结构与循环反馈机制[12]。凭借该结构,RNN在循环过程中可高效提取时间信息,具有短期记忆的效果。在预测时间序列数据时,RNN能依据前期序列的变化规律,结合当前时刻的输入信息,对后续数据的走势进行初步推断,这种能力使其在股票价格预测、天气变化预报等领域有一定的应用价值。
同时,RNN模型还能捕捉并处理当前与未来的变化,对复杂网络结构进行有效的模拟、建模与理解。从整体架构来看,RNN模型各层间通过特定连接方式,构建出可在时间维度递归的结构,实现对时间序列中动态变化的建模。
3.1.2. 优势与不足
RNN模型的优势在于通过隐藏状态保存历史信息,使得模型在处理当前时刻的数据时,能够利用之前时间步的信息对时间序列中的长期依赖关系进行建模,保留数据的连续性。然而,RNN在处理长时间序列时表现欠佳,即长期记忆能力薄弱甚至丧失。当数据序列较长时,RNN难以将距离较远的特征信息联系起来,不可避免地会出现梯度消失与梯度爆炸问题[13]。梯度消失时,早期时间步的信息对当前参数更新影响甚微,难以学习长距离依赖关系;梯度爆炸则会让参数更新不稳定,阻碍模型训练收敛。此外,RNN处理长序列时计算复杂度高、效率低,在大规模长序列数据处理任务中的应用受到一定限制。
3.2. LSTM模型
3.2.1. 基本概念及原理
长短期记忆网络(Long Short-Term Memory, LSTM)最初由Sepp Hochreiter和Jürgen Schmidhuber提出,后由Felix Gers团队对其进行优化升级[14]。作为一种特殊的循环神经网络,LSTM旨在解决传统RNN在处理长序列数据依赖问题时的局限性,在处理时间序列数据方面表现出卓越的适配性。
LSTM通过引入门控机制,能够选择性地遗忘和更新信息,从而有效捕捉长期依赖关系,其核心思想是通过控制细胞状态来记忆长期信息。记忆单元(Memory Cell)是LSTM的关键部分,能够长期保存重要数据。在时间序列的演进中,记忆单元能承载不同时刻的关键信息,例如在分析股票价格走势时,可保存历史股价的转折点、整体波动趋势等。记忆单元有一个具备信息增减机制的内部状态,能精准地对关键信息予以留存并摒弃无关紧要的内容。通过这种方式,记忆单元得以在复杂的序列数据处理过程中,确保重要信息的持续性,有效应对长期依赖问题。
3.2.2. LSTM模型结构
LSTM细胞主要由细胞状态、隐藏状态、输入门、遗忘门和输出门构成。细胞状态(Cell State)指LSTM细胞的内部状态,能够在序列传递过程中相对稳定地保存信息。隐藏状态(Hidden State)用于计算和预测外部隐藏的状态变化,将细胞内部信息与外部环境关联起来。输入门、遗忘门和输出门为LSTM的门控机制,用来调控信息的进出。其中,输入门(Input Gate)对新输入信息进行加权,把控进入细胞状态的信息量;遗忘门(Forget Gate)权衡是否保留之前细胞状态中的信息,并决定其传递至当前细胞的比例;输出门(Output Gate)则决定细胞状态中有多少信息将被输出到隐藏状态,从而影响后续的计算与决策。这三种门控机制均借助线性变换与非线性激活函数,生成相应的输出结果。从神经元结构来看,LSTM包含4个输入,其中3个为Gate控制信号,分别来自输入门、遗忘门和输出门,另一个输入则是实际的输入数据。这些输入相互作用,最终产生1个输出,为后续的网络层提供处理结果。
在LSTM模型中,每个记忆单元的公式如下:
(1)
(2)
(3)
(4)
(5)
(6)
其中,
、
、
分别为遗忘门、输入门和输出门在时刻t的状态,
为Sigmoid函数,
、
、
为权重矩阵,
、
、
为偏置向量,
为候选记忆细胞,
为时刻
更新后的记忆细胞,
为当前神经元的输出。在输入序列的处理过程中,LSTM网络的特性逐步得以展现。对于序列中的每个时刻
,都会按照上述步骤对输入进行处理,直至处理完最后一个元素。最后,输出整个序列处理后的结果。
与传统的RNN相比,LSTM的优势显著。在RNN中,细胞状态往往随着每次后续输入而剧烈变化,使得长期依赖信息难以有效存储和利用。而LSTM凭借其独特的门控机制,能够智能地决定何时对细胞状态下每个神经元中存储的信息进行替换、更新或遗忘。当面临需要长期记忆的信息时,LSTM可以通过调整门的开合,让单元状态保持相对稳定,从而实现对长期依赖信息的高效存储和维护,确保在复杂的序列数据处理任务中,能够准确捕捉到时间序列中的长距离依赖关系,提升模型的性能和准确性。
3.2.3. LSTM模型的评价指标
平均绝对误差(Mean Absolute Error, MAE)能直观地反映预测值与真实值之间平均误差的大小,其值越小,说明预测结果越准确,表达式如下:
(7)
均方根误差(Root Mean Square Error, RMSE)衡量的是观测值与预测值之间偏差的一种度量,对较大的误差给予更大的权重,能更敏感地反映出预测值偏离真实值的程度,表达式如下:
(8)
决定系数(
)用于衡量回归模型对观测数据的拟合程度。取值范围在0到1之间,值越接近1,表示模型对数据的拟合效果越好,反之则表示拟合效果越差。表达式如下:
(9)
相关系数(
)用于衡量两个变量之间线性关系的强度和方向。取值范围在−1到1之间。绝对值越接近1,说明线性关系越强;绝对值越接近0,说明线性关系越弱。表达式如下:
(10)
4. LSTM模型在股票价格中的应用
4.1. 数据集的选取
聚宽平台的数据源较为规范且便于获取,可以直接从其数据库中下载csv文件进行调用。作为股票指数,上证综指有较多历史数据,涵盖了众多行业,能够综合反映上海证券市场的整体走势,极具代表性。运用聚宽平台获取上证综指自2010年1月1日至2024年12月31日的数据作为研究数据,部分数据及结构如表1所示:
Table 1. Summary of stock data for the Shanghai composite index
表1. 上证综指的股票数据概要
日期 |
开盘价/元 |
最高价/元 |
最低价/元 |
收盘价/元 |
总交易额/亿元 |
2010-1-4 |
3289.75 |
3295.28 |
3243.32 |
3243.76 |
1337.73 |
2010-1-5 |
3254.47 |
3290.51 |
3221.46 |
3282.18 |
1618.58 |
2010-1-6 |
3277.52 |
3295.87 |
3253.04 |
3254.22 |
1580.40 |
2010-1-7 |
3253.99 |
3268.82 |
3176.71 |
3192.78 |
1572.30 |
2010-1-8 |
3177.26 |
3198.92 |
3149.02 |
3196 |
1217.40 |
2010-1-11 |
3301.61 |
3306.75 |
3197.33 |
3212.75 |
1775.58 |
… |
… |
… |
… |
… |
… |
续表
… |
… |
… |
… |
… |
… |
2024-12-27 |
3397.29 |
3418.95 |
3388.32 |
3400.14 |
5860.90 |
2024-12-30 |
3395.40 |
3412.84 |
3394.96 |
3407.33 |
5222.45 |
2024-12-31 |
3406.97 |
3413.45 |
3351.76 |
3351.76 |
5625.84 |
在收集到的上证综指历史数据里,由于周末及节假日证券市场闭市,部分日期的数据存在缺失。同时,在金融投资领域,通常会依据当日股票的收盘价来确定损益值,这一指标对于投资者评估收益状况至关重要。基于以上两点,为了更准确、有效地分析数据,清晰呈现股价的变化趋势,故选择收盘价序列作为目标变量进行可视化处理。收盘价序列的可视化图如图1所示。
Figure 1. Time series chart of closing prices of Shanghai composite index stocks
图1. 上证综指股票收盘价的时序图
整体实验流程如图2所示。
Figure 2. Experimental flowchart
图2. 实验流程图
4.2. 数据预处理
由于数据整体性和数据缺失会影响神经网络的学习效果,本文对数据进行插值、排序等初步处理,使数据结构合理,提高模型预测精度。股票市场存在各种导致数据缺失的情况,如股票停牌、节假日休市等,这会使时间序列数据出现不连续的现象。考虑到股票数据在时间上具有一定的相关性,采用前值填充法对数据进行填充,能有效保持数据的连续性,较好地保留数据的原有特征和趋势。因此,以日期为索引对股票数据排序,对缺失数据进行填充。
4.3. 规范化处理
股票数据具有多样性和复杂性,以上证综指的股票数据为例,其数值范围和变化幅度差异巨大。如果将这些未经处理的原始数据直接输入神经网络,由于方差过大,会致使神经网络难以收敛,训练结果欠佳。通过对数据进行规范化处理,将其归一化至[0, 1]区间,能够消除数据的量纲影响,使不同的特征具有相同的尺度,从而提高模型的准确性和泛化能力,确保训练过程的稳定性和收敛性,得到更可靠的分析结果。运算公式为:
(11)
其中,
为归一化后的数据,
为原始股票数据,
和
分别为数据的最小值和最大值。
5. 实验及其结果分析
5.1. 数据集构建
在进行股票价格预测的训练前,需要先构造一个合理的数据集。实验程序通过滑动窗口实现,滑动窗口的示意图如图3所示。设置时间步长为7,即选取过去7天的股票价格数据作为模型的输入,对未来的股票价格进行预测。为了充分训练LSTM模型,需要将数据集划分为训练集、验证集和测试集。在数据集的分配上,选取前70%的数据作为训练集,中间15%的数据作为验证集,最后15%的数据作为测试集。
Figure 3. Schematic diagram of sliding window principle
图3. 滑动窗口原理示意图
5.2. 模型参数设置
考虑到双层LSTM网络既能有效捕捉时间序列的长期依赖关系,又可避免因层数过多导致的过拟合问题,本文设置长短期记忆层的数量为2,选取收盘价作为输入。为避免过拟合现象,同时使得模型在训练效率和预测精度之间取得较好的平衡,设置训练轮次(epoch)为100,即对训练集的数据进行100次训练,设置批量大小(batch size)为32,即每次输入32个样本至网络模型,设置隐含层数量为32。本文选择Adam优化器来更新模型的参数,它具有计算效率高、所需内存少等特点,在深度学习模型训练中表现出良好的收敛速度和稳定性。
均方误差损失通过计算预测值与真实值之间差值的平方和的均值,能够直观地衡量模型预测值与真实值之间的误差大小,故选择均方误差损失作为损失函数,并且在训练进程中,记录每个轮次的训练损失和验证损失。在测试集、训练集以及验证集上展开预测工作,并针对预测结果和真实值执行反归一化操作。为确保代码运行结果具备可重复性,设置随机种子为2025,使得模型的调试和结果对比更加便利。在数据集和参数设置不变的基础上,选用RNN模型开展对比实验,以验证LSTM模型的有效性。
5.3. 实验结果
使用Python对LSTM模型的数据集展开训练,对训练集和验证集的损失值进行统计,绘制出损失值的下降曲线,如图4所示。
Figure 4. Loss curve of LSTM model
图4. LSTM模型的损失曲线
如图所示,训练和验证过程中模型的损失函数逐渐减小,在80个轮次后,模型趋于收敛,表明模型在不断优化,趋向于最优解。
为了评估模型的预测准确性,采用测试集对模型的预测结果进行验证。将真实值与使用RNN模型和LSTM模型所得到的预测值进行对比分析,如图5所示。由图易知,使用LSTM模型得到的预测值与真实值的走势更加贴近。由此可见,LSTM模型能够更敏锐地识别出市场的转折点和趋势变化,预测效果明显优于RNN模型。
为了衡量和评估模型的预测效果,本文采用平均绝对误差MAE、均方根绝对误差RMSE、决定系数R2和相关系数R作为评价指标。对RNN和LSTM模型的评价指标进行对比,如表2所示。
如表2所示,LSTM模型的各项指标均优于RNN模型。LSTM模型的MAE和RMSE指数均小于RNN模型,并且LSTM模型的决定系数和相关系数均高于RNN模型,更接近1,这表明LSTM模型的预测误差更小,对数据的拟合效果更佳。
Figure 5. Comparison of prediction results between LSTM and RNN Models
图5. LSTM模型和RNN模型的预测结果对比图
Table 2. Comparison of evaluation indicators between LSTM model and RNN model
表2. LSTM模型和RNN模型的评价指标对比
评价指标 |
MAE |
RMSE |
R2 |
R |
RNN |
27.84 |
39.69 |
0.93 |
0.98 |
LSTM |
16.02 |
26.88 |
0.97 |
0.99 |
为了深入评估模型的预测效果,绘制LSTM模型和RNN模型的误差分布图。如图6所示,左图为LSTM模型的误差分布图,右图为RNN模型的误差分布图,横坐标为预测误差值,纵坐标为频率。由图易知,LSTM模型的预测误差主要集中在0附近,这表明LSTM模型的预测结果较为稳定,离散程度较低。而RNN模型的误差分布相对较为分散,存在一定比例的较大误差值,故RNN模型的预测稳定性不如LSTM模型。
Figure 6. Error distribution of LSTM model (left) and RNN model (right)
图6. LSTM模型(左)和RNN模型(右)的误差分布
为全面评估模型的泛化能力,采用交叉验证方法进行实验。重复实验5次,每次随机生成不同的训练集、验证集和测试集划分比例,其中训练集比例在0.6~0.8之间随机生成,验证集比例在0.1~0.2之间随机生成,测试集比例由1减去前两者得到,以此模拟不同的数据分布情况。每次实验得到不同的模型,并计算模型在不同测试集上的预测指标,通过计算均方根误差(RMSE)、平均绝对误差(MAE)、决定系数(R2)和相关系数(R)在重复试验中得到的平均值,量化评估模型在测试集上的表现,如表3所示。
Table 3. Comparison of generalization ability between LSTM model and RNN model
表3. LSTM模型和RNN模型的泛化能力对比
评价指标 |
MAE |
RMSE |
R2 |
R |
RNN |
28.15 |
40.05 |
0.93 |
0.98 |
LSTM |
16.43 |
28.59 |
0.97 |
0.99 |
如表所示,LSTM模型的各项平均指标均优于RNN模型,且在不同划分方式下的预测指标波动较小,而RNN模型的预测指标波动相对较大。因此,LSTM模型具有更好的泛化能力,能够在不同的数据子集上保持较为稳定的预测性能。
综上所述,与RNN模型相比,使用LSTM模型预测股票价格的结果误差更小,预测结果更加精确,模型精度更高,预测稳定性较好。因此,LSTM模型在股票价格预测领域更具有效性,应用前景更广阔。
6. 结论与展望
在金融市场中,股票价格预测是近年来研究的重难点,也是深度学习中极具挑战的应用之一。对于投资者来说,准确预测股票价格有助于做出合理投资决策,实现资产的合理配置与增值。从宏观层面看,精准的股票价格预测有利于金融市场稳定,企业能据此制定更科学的融资策略,政府也可借此出台更有效的经济政策,防范潜在金融风险。
本研究围绕LSTM模型在股票价格预测中的应用展开,通过对股票数据进行缺失值填充、归一化等预处理,构建并训练LSTM模型对股票价格进行预测。通过和传统的循环神经网络对比,结果表明LSTM模型凭借其独特的门控机制,能够有效处理时间序列数据中的长期依赖关系,为投资者提供了更具参考价值的预测结果,在股票价格预测领域极具应用价值,在处理时间序列建模和预测方面具有优越性。
尽管LSTM模型在股票价格预测中表现出一定的优势,但它也存在一些局限性。在面对极端市场变化时,如股市崩盘或突然的大幅上涨,LSTM模型的预测准确性会受到影响。这是因为极端市场变化往往伴随着复杂的市场情绪和信息冲击,现有的模型结构难以全面捕捉这些变化。此外,LSTM模型对突发事件的响应存在滞后性,例如政策的突然调整、重大企业事件等,模型无法及时根据新信息调整预测,导致预测结果与实际股价存在偏差。
针对这些局限性,未来的研究可以从以下几个方向展开。一方面,可以探索将LSTM模型与注意力机制、强化学习等技术更深入地结合。另一方面,研究如何更有效地融合非结构化数据(如新闻舆情、社交媒体信息等)与股票价格数据,丰富模型的输入信息,提高模型对市场变化的敏感度和预测准确性。通过这些改进措施,有望进一步提升LSTM模型在股票价格预测领域的性能,为投资者提供更可靠的决策支持。展望未来,随着深度学习技术的不断发展以及金融数据的日益丰富,相信LSTM模型以及基于其改进的模型将在股票价格预测领域发挥更大的作用,为金融市场的风险管理和投资决策提供更为有力的支持。
基金项目
2024年江苏大学大学生创新创业训练计划,项目编号202410299871X。