1. 引言
股市的价格波动受到多种经济和社会因素的影响,在经济市场飞速发展的背景下,人均收入和大众投资理财意识不断提高,近年来股票作为一种投资理财工具逐渐被人们所关注。股票作为金融市场重要的一部分,不仅是我国经济发展强大的推动力,也是反映经济发展状况不可或缺的指标。
现阶段股票价格预测方法可分为三大类:传统时间序列模型、机器学习算法与深度学习算法模型以及组合预测模型。
传统时间序列模型在理论上具有较强的解释性,股票价格作为金融时间序列的代表,常常采用多元回归模型、ARIMA模型以及GARCH模型等[1]-[5]方法来预测,尽管这些传统时间序列方法的股票预测模型在结构上较为简单,且计算的复杂度也相对较低,但在处理非线性和波动性较强的股票数据时,其拟合效果并不理想。
由于股票数据更新迅速且频繁以及数据量过大,因此这对分析其股票数据的方法以及其计算能力的要求也会越高。于是,基于海量数据的机器学习算法,如决策树、支持向量机、集成学习、神经网络、随机森林等算法[6]-[11]得到了不断发展与更新,并且这些机器学习算法在股票预测领域应用的范围更加广泛。黄卿等[12]人通过应用BP神经网络、支持向量机(SVM)和XGBoost模型对沪深300指数的数据进行预测,结果表明,XGBoost的预测效果最好。王燕等[13]则利用网格搜索算法对XGBoost模型进行寻优,发现通过优化后的XGBoost模型在面对短期股票数据时,其拟合性能有了显著的提升。
近年来,基于神经网络的深度学习算法以强大的计算能力以及卓越的准确性,在股票市场的预测中应用广泛。其中,长短期记忆神经网络LSTM被证明是表现最佳的神经网络之一。最初,Elman提出了循环神经网络(RNN),RNN为处理时间序列数据扩宽了新的视野。随后,Hochreiter等人[14]提出了长短期记忆网络,该模型是在RNN模型的基础上进行了改进,并且针对RNN在训练过程中遇到的梯度爆炸和梯度消失的问题,LSTM模型通过引入时序性和选择性记忆的机制成功解决这一问题。因此,LSTM模型在股票预测等领域展现出明显的优势,成为深度学习应用中的一个重要方向。神经网络方法,如卷积神经网络(Convolutional Neural Network, CNN)、循环神经网络(Recurrent Neural Network, RNN)、长短期记忆网络(Long Short-Term Memory, LSTM)等[15] [16],不仅能够处理复杂的时间序列数据,而且预测的准确性也比较高。韩莹等[17]通过提出一种宽度学习与深度学习相结合的一个新型预测模型,通实验结果表明该模型在多个评价指标上都有显著地提升。尽管LSTM在处理长依赖问题上有具有显著优势,但在面对长序列数据时,仍然存在着信息丢失的挑战。
因此,学者们提出了组合预测模型来提高股票价格预测的准确性。朱菊香等[18]利用卷积神经网络(CNN)提取数据特征,并将其输入到LSTM网络中,同时使用CEEMDAN分解算法对PM2.5序列进行分解,其结果表明,该模型预测PM2.5的浓度的准确性较高。大量的实验表明,合理选择并组合不同模型能够显著提升预测的精度和准确性[19]-[21]。张彪等[22]通过ELM-EMD-LSTM组合模型对船舶运动姿态进行预测,并且将组合模型与LSTM模型、ELM-LSTM模型进行对比实验,结果表明组合模型的预测精度更高,且平均绝对误差与均方根误差最小。Ren [23]将XGBoost模型与CNN模型组合在一起,并应用组合后的模型对图像进行分类,结果表明该模型在分类任务中表现最佳。此外,郭长东[24]首先利用SVM对股票进行预测,并将预测的结果输入到XGBoost模型中,最终形成一个SVM-XGBoost的组合预测模型,结果表明该混合模型的预测精度比单一模型的预测精度更优。
通过对以上文献的研究可以发现,将不同的模型组合在一起的预测方法通常比单一模型的效果更好。这是因为通过不同模型的组合,可以利用各个模型的优势进而提高整个模型的预测性能。因此,组合模型对于提高模型预测的准确性和鲁棒性方面均有明显的效果。为了进一步提高股票价格预测精度,本文提出一种XGBoost-EMD-LSTM混合模型。此模型结合XGBoost、EMD和LSTM各自的优点长处对股票价格进行预测。本文利用中国石油股票和中国石化股票历史数据进行预测实验,通过仿真实验结果表明,与其他模型相比,本文建立的模型在股票预测方面有着较高的预测精度且评价指标最优,验证了本文混合模型的有效性。
2. 研究方法
2.1. XGBoost模型
XGBoost (Extreme Gradient Boosting)算法是2016年陈天奇博士[25]提出来的一种新的算法,又被成为极端梯度提升算法。作为一种提升方法,XGBoost的主要核心思想是通过把一组弱分类器结合起来,然后建立一个强分类器。XGBoost是通过多棵决策树的预测结果进行叠加的一种模型,即由多个基模型组成的集成模型。在每一次的迭代中,训练的树模型都会对当前的误差进行修正,假设第t次迭代要训练的树模型为
(1)
(1)式中:
为第
次迭代后样本
的预测值,
为前
棵树的预测值,
表示第
个点的特征向量,
表示决策树的数量。
为第
棵树的模型
XGBoost模型的目标函数分为两部分构成,一个是损失函数、另一个是模型的复杂度。具体的表达式可以用以下方式表达:
(2)
(3)
(2)式和(3)式中:
和
分别表示模型的损失函数和模型复杂度;T表示叶子节点数;
代表节点的权重;
和
表示两者的惩罚系数。
2.2. EMD经验模态分解
经验模态分解(Empirical Mode Decomposition, EMD) [26]方法是由黄锷与其他学者于1998年提出的一种里程碑式的信号处理方法。
EMD具体分解步骤如下:
步骤1:设原始序列为
,取出
的全部极大值和极小值;
步骤2:分别通过三次样条插值函数拟合
的上下包络线,记为
和
;
步骤3:计算上下包络线的均值
,即
(4)
步骤4:令
,如
若满足本征模态函数的两个条件,则得到一条本征模态IMF,否则,令
,将以上步骤重复进行;
步骤5:根据以上步骤进行运算,可以逐步分解出第
个本征模态量和一个残差
。
此时,原始序列
的分解完毕,可以表示为
(5)
对于同一模态函数中又包含了很多周期特征。
EMD分解流程图如图1所示:
Figure 1. EMD decomposition flowchart
图1. EMD分解流程图
2.3. LSTM长短期记忆神经网络模型
1997年Schmidhuber等人[14]为了解决RNN递归神经网络模型当中存在的梯度消失、梯度爆炸问题以及长期依赖问题,提出了更优的LSTM长短期记忆神经网络模型。LSTM模型结构图如图2所示:
Figure 2. LSTM model structure diagram
图2. LSTM模型结构图
从图2中可以看出,LSTM模型在细胞单元主要由三个不同的门构成:遗忘门、输入门、输出门。其中,
为LSTM上一时刻细胞层的细胞状态,
为LSTM上一时刻细胞层的输出,3个
是sigmoid激活函数,tanh层是为了创建新的细胞状态,它为双曲正切激活函数。
处理步骤:
遗忘门:主要是把输入数据
和上一状态存留下来的
整合在一起形成
作为遗忘门的输入,之后经过sigmoid激活函数处理后得到新的权值向量
,其中
的表达式如下:
(6)
式中:
为遗忘门的权重,
为遗忘门的偏差,
为激活函数。
输入门:主要是把输入数据
和上一状态存留下来的
整合在一起形成
作为输入门的输入,经过tanh函数层产生了新的权值向量,然后与
进行合并更新,
为控制向量,更新后的公式为:
(7)
(8)
(9)
式中:
为通过tanh激活函数创建的新的候选向量,
表示t时刻的细胞状态,
,
为输入门的权重,
,
为输入门的偏差。
输出门:把输入数据
和上一状态存留下来的
整合在一起形成
作为输出门的输入,经过遗忘门、输入门将
更新为
后,将
经过tanh函数层处理后将有效信息提取出来,然后通过计算tanh层得到的结果与sigmoid激活函数层得到的结果就会得到最终的输出,其表达式为:
(10)
(11)
式中:
为输出门的权重,
为输出门的偏差。
3. 实证分析
3.1. 数据分析
本文选取中国石油股票2012年2月22日至2024年6月1日的历史数据作为研究对象来进行分析预测,共有2982条数据,其中包括收盘价、开盘价、最高价、最低价、成交量、次日收盘价、涨跌幅等多个数据特征,部分数据如表1所示。
Table 1. Partial raw data
表1. 部分原始数据
序列 |
收盘价 |
最高价 |
最低价 |
开盘价 |
成交量 |
次日收盘价 |
1 |
10.27 |
10.26 |
10.28 |
10.2 |
12.46 M |
10.31 |
2 |
10.31 |
10.27 |
10.38 |
10.23 |
21.43 M |
10.43 |
... |
... |
... |
... |
... |
... |
... |
2981 |
10.2 |
10.36 |
10.53 |
10.16 |
173.35 M |
10.14 |
2982 |
10.14 |
10.11 |
10.22 |
10.08 |
135.39 M |
10.16 |
为了更好地评估模型的预测性能,现将本文的数据集划分为测试集和训练集,其中训练集是用来训练模型以及数据的拟合,而测试集是用来检验模型的泛化能力。具体将本文数据划分为8:2的比例,其中将80%的数据用于构建训练集,剩余20%的数据用于构建测试集。
3.2. XGBoost-EMD-LSTM模型预测
图3详细展示了XGBoost-EMD-LSTM模型的算法流程及其框架结构。具体步骤如下:
Figure 3. XGBoost-EMD-LSTM algorithm flowchart
图3. XGBoost-EMD-LSTM算法流程图
步骤1:XGBoost模型训练与预测。输入数据,将数据分为训练集和测试集,创建XGBoost模型来预测收盘价。
步骤2:数据预处理。在获得XGBoost模型对收盘价的预测值之后,这些预测值被作为新的输入特征纳入模型。具体而言,将XGBoost模型生成的收盘价预测值与原有的六个特征(收盘价、开盘价、最高价、最低价、成交量、次日收盘价)相结合,扩充特征集至七个,包括:收盘价、开盘价、最高价、最低价、成交量、次日收盘价以及XGBoost预测收盘价,形成新的多元时间序列的数据。
步骤3:数据分解。为了能够更好地提升预测精度,采用EMD算法将输入的数据进行分解,即分解为各个不同频率的样本模态分量。采用min-max归一法对输入特征集数据归一化处理,将数值缩放在0-1之间,计算公式如下所示:
(12)
其中:
为归一化后的数据;
为原始数据;
为极大值,
为极小值。
步骤4:LSTM神经网络训练。针对各个子序列分量分别构建LSTM神经网络预测模型,然后叠加在一起求和,针对该模型使用Adam优化算法对LSTM网络进行训练,调整模型参数为最小化损失函数;
步骤5:预测结果计算,完成预测。
通过这一流程,XGBoost-EMD-LSTM模型能够有效地整合传统机器学习算法与深度学习技术的优势,实现对股票价格变动的高精度预测。
将EMD算法应用于收盘价数据中,将其进行分解后得到的各个分量如图4所示。
Figure 4. EMD decomposition diagram
图4. EMD分解图
对于其中的参数设置,XGBoost-EMD-LSTM模型首先建立XGBoost的模型中,将决策树的数量(n_estimators)设置为200;随机种子(random_state)设置为420;并将学习力(learning-rate)设置为0.01。然后建立LSTM 模型,时间滑动窗口的宽度为60,用来预测未来一天的收盘价;隐藏层的单元数量设置为50个;采用tanh激活函数;模型的优化器选择的是Adma算法、损失函数选择的是均方误差MSE。根据设备的性能和模型的特征,将训练次数(epochs)这一参数调整为300,批处理大小(batch-size)调整为32,其余的均为默认参数。根据这些参数设置来训练模型,得到XGBoost-EMD-LSTM模型的可视化图如图5所示。
Figure 5. XGBoost-EMD-LSTM model stock price prediction curve
图5. XGBoost-EMD-LSTM模型股票价格预测曲线图
图5的分析结果揭示了本研究所提出的混合模型在预测性能上的显著优势。与单一的单特征LSTM模型、多特征LSTM模型以及XGBoost模型相比,混合模型的预测值与实际值更为接近,且能更准确地捕捉股价的波动趋势。特别是在原始数据出现较大波动时,混合模型能够更精确地刻画数据的波动特性,并始终保持与原始数据一致的趋势,展现出更佳的跟随性和波动性。
为了全面验证XGBoost-EMD-LSTM模型在预测任务中的有效性,本研究采用了损失曲线图作为分析工具。损失曲线图能够直观地反映模型在训练过程中的性能变化,是评估模型泛化能力和调整超参数的重要依据。
Figure 6. Loss curve
图6. 损失曲线图
由图6所示,整体来看,模型的损失函数曲线表现出较为理想的趋势。损失值在训练过程中迅速下降,并且训练损失和验证损失之间没有明显的差距,显示了模型的良好泛化能力。模型的收敛速度较快且稳定,训练过程没有过拟合,最终损失值接近最优水平,表明模型在所给任务上效果优秀。
3.3. 模型评价指标
本文选取的评价指标为平均绝对误差(MAE)、均方误差(MSE)、均方根误差(RMSE)、决定系数(R2),数学表达式如下,
(13)
(14)
(15)
(16)
式子中:N为样本个数;
为真实值;
为预测值;
为平均真实值;
为平均预测值。MAE、MSE、RMSE值越低,表明模型的预测精度较高。R2值越接近1,说明模型对数据的拟合性越高,预测的准确性就越高。
为了进一步验证所提模型的有效性,通过比较RNN模型、单特征LSTM模型、多特征LSTM模型、XGBoost模型、LSTM-Transformer模型、RNN-Transformer模型、EMD-RNN模型、EMD-LSTM模型、XGBoost-EMD-RNN模型以及本文研究的XGBoost-EMD-LSTM模型的MSE、RMSE、MAE、R2,各模型的预测结果如表2所示。
Table 2. Evaluation metrics of different models
表2. 各模型评价指标
模型 |
MSE |
RMSE |
MAE |
R2 |
RNN |
0.12540 |
0.35412 |
0.28673 |
0.95022 |
单特征LSTM |
0.08011 |
0.28303 |
0.20437 |
0.96820 |
多特征LSTM |
0.03255 |
0.18042 |
0.16591 |
0.98707 |
XGBoost |
0.06132 |
0.24763 |
0.21189 |
0.97566 |
LSTM-Transformer |
0.00130 |
0.03606 |
0.02838 |
0.94181 |
RNN-Transformer |
0.00164 |
0.04052 |
0.03419 |
0.92652 |
EMD-RNN |
0.05313 |
0.23051 |
0.22377 |
0.97891 |
EMD-LSTM |
0.02537 |
0.15927 |
0.15677 |
0.98992 |
XGBoost-EMD-RNN |
0.01176 |
0.10847 |
0.07808 |
0.99235 |
XGBoost-EMD-LSTM |
0.00009 |
0.00952 |
0.00720 |
0.99994 |
对比表2的结果可以看出,XGBoost-EMD-LSTM模型的MSE和RMSE比RNN模型分别降低了12.531%、34.46%;比单特征LSTM模型分别降低了8.002%、27.351%;比多特征LSTM模型分别降低了3.246%、17.09%;比XGBoost模型分别降低了6.123%、23.811%;比EMD-RNN模型分别降低了5.304%、22.099%;比LSTM-Transformer模型和RNN-Transformer模型分别降低了0.121%、2.645%和0.155%、3.1%;比EMD-LSTM模型分别降低了2.528%、14.975%,比XGBoost-EMD-RNN模型分别降低了1.167%、9.895%;XGBoost-EMD-LSTM模型的MAE比RNN模型、单特征LSTM模型、多特征LSTM模型、XGBoost模型、LSTM-Transformer模型、RNN-Transformer模型、EMD-RNN模型、EMD-LSTM、XGBoost-EMD-RNN模型分别降低了27.953%、19.717%、15.871%、21.657%、2.118%、2.699%、20.469%、14.957%、7.088%;XGBoost-EMD-LSTM模型的R2比RNN模型、单特征LSTM模型、多特征LSTM模型、XGBoost模型、LSTM-Transformer模型、RNN-Transformer模型、EMD-RNN模型、EMD-LSTM、XGBoost-EMD-RNN模型分别增加了4.972%、3.174%、1.287%、2.428%、5.813%、7.342%、2.103%、1.002%、0.759%。
根据误差值和R2来看,本文使用的模型误差最小,R2值最高,模型的精度相较于其他的几种模型有很大提升。为了直观地展示不同模型之间的预测差异,本文进行了对比分析,将这十种模型的预测结果绘制成曲线图,如图7所示。
Figure 7. Comparison of different models
图7. 各模型对比图
图7中展示了各模型的预测曲线与真实股价的对比。从图中可以看出,XGBoost-EMD-LSTM模型(用紫色曲线代表)在整体趋势和价格波动的捕捉上,表现出了优异的拟合效果。特别是在股票价格的剧烈波动期间,该模型的预测曲线紧随真实价格波动,而其他模型均有不同程度上的偏差。进一步的定量分析显示,本文所研究的模型的MSE、RMSE和MAE分别为0.00009、0.00952和0.0072,显著低于其他模型,且R2值达到了0.99994,表明它对数据的拟合程度远超其他模型。因此,本研究中的模型不仅在预测效果上表现最佳,而且在实际应用中具有较高的潜力和价值。
3.4. 中国石化股票价格和华建集团股票价格预测
为了分析本文模型在不同时间序列模式下的预测性能,将模型应用于另两个数据集中,即中国石化股票和华建集团股票(2014年9月16日~2024年6月1日)历史数据,共包含2360条数据。循前述建模流程,对中国石化股票的收盘价和华建集团股票收盘价进行了预测。图8和图9展示了预测效果,而预测结果则详细列于下表3和表4。通过这一扩展分析,我们旨在评估模型在不同数据集上的泛化能力和预测准确性。
Figure 8. Sinopec stock hybrid model prediction curve
图8. 中国石化股票混合模型预测曲线图
Figure 9. Huajian group stock hybrid model prediction curve
图9. 华建集团股票混合模型预测曲线图
Table 3. Sinopec stock prediction results
表3. 中国石化股票预测结果
序列 |
真实值 |
预测值 |
差值 |
1 |
4.08 |
4.0798040 |
1.96e−04 |
2 |
4.08 |
4.0800676 |
−6.76e−05 |
... |
... |
... |
... |
471 |
6.22 |
6.2224780 |
−2.478e−03 |
472 |
6.20 |
6.2005544 |
−5.544e−04 |
在对图8的分析中,可以观察到本研究所提出的模型在应用于中国石化股票数据集时,依然能够维持较高的预测准确性。模型的预测曲线与实际股价数据展现出高度的一致性,这表明模型具有较高的拟合优度。通过表3和表4中的数据,计算了实际值与预测值之间的差异(即实际值减去预测值),结果显示这些差异相对较小,进一步证实了模型预测结果与实际市场表现的接近程度,从而反映出模型的预测效能较为出色。
Table 4. Huajian group stock prediction results
表4. 华建集团股票预测结果
序列 |
真实值 |
预测值 |
差值 |
1 |
5.58 |
5.555662 |
2.4338e−02 |
2 |
5.53 |
5.4983454 |
3.16546e−02 |
... |
... |
... |
... |
471 |
5.30 |
5.31047 |
−1.047e−02 |
472 |
5.27 |
5.2858753 |
−1.58753e−02 |
为了量化中国石化股票价格的实际值与本模型预测误差之间的差异,本研究选取了平均绝对百分比误差(MAPE)作为评价指标。MAPE (Mean Absolute Percentage Error)衡量的是预测值与实际值之间绝对误差的平均值,表达式为
(17)
其中,
是股票价格的真实值,
为股票价格的预测值。本文模型的MAPE评价指标与其他模型的预测性能如表5所示,可知,本文提出的预测模型在MAPE上均优于其他对比模型。
Table 5. MAPE values of different models
表5. 不同模型MAPE值
模型 |
MAPE |
RNN |
4.03144 |
单特征LSTM |
3.35300 |
多特征LSTM |
26.1113 |
XGBoost |
3.62826 |
LSTM-Transformer |
0.22495 |
RNN-Transformer |
0.24518 |
EMD-RNN |
3.43104 |
EMD-LSTM |
2.42332 |
XGBoost-EMD-RNN |
0.31709 |
XGBoost-EMD-LSTM |
0.21721 |
对于XGBoost-EMD-LSTM模型在华建集团的股票价格上预测的评价指标MSE、RMSE、MAE、MAPE、R2如表6所示。
Table 6. Evaluation metrics
表6. 评价指标
模型 |
MSE |
RMSE |
MAE |
MAPE |
R2 |
XGBoost-EMD-LSTM |
0.00212 |
0.04610 |
0.03143 |
0.20481 |
0.99861 |
4. 结束语
股市因其具有高风险以及高收益的特性,一直以来,预测股票价格的有效性一直是投资者与研究者们共同追求的目标。本文提出一种XGBoost-EMD-LSTM模型来对股票收盘价进行预测,实证证明了其有效性和可行性。该混合模型的MSE、RMSE、MAE、R2分别为0.00009、0.00952、0.00720、0.99994。通过与其他几种机器学习模型进行对比,证实了XGBoost-EMD-LSTM模型的预测误差更小、拟合度更好。又通过把模型应用于另两个数据集中,用模型的评价指标验证模型的有效性,其结果表明:本研究的模型在面对具有非平稳性和非线性特征的股票价格时,展现出了卓越的预测能力。
但是,本文还有一些局限性,主要体现在对于模型的参数方面,在模型训练过程中仅采用人为经验进行调参,具有很大的不确定性和随机性。因此在后续的研究中将通过优化算法对模型进行调参,可能会获得更好的预测效果。
NOTES
*通讯作者。