1. 引言
股票市场预测是金融领域的重要课题,对投资者的决策和金融机构的运营具有重要意义。然而,股票市场的复杂性和不确定性使得准确预测股票价格成为一项极具挑战性的任务。近年来,随着金融市场的发展,股票价格的波动性、非线性和复杂性日益显著,对预测模型提出了更高的要求。传统的统计学方法如自回归积分滑动平均模型(ARIMA)虽能通过差分处理非平稳序列,但其线性假设限制了其对复杂非线性关系的捕捉能力。近年来,机器学习技术如XGBoost (Extreme Gradient Boosting)通过特征重要性排序和正则化有效缓解过拟合,在金融高维数据中表现出更强的泛化能力。机器学习在处理非线性关系和高维数据方面的优势,逐渐成为股票市场预测的热门选择。
现有研究方向可分传统时序模型优化、机器学习应用、多模型融合探索。
在传统时序模型优化方面,罗露[1]通过ARIMA模型对深粮控股的股票价格进行了预测,验证了其在平稳性数据处理中的有效性。Adebiyi等[2]利用ARIMA模型预测尼日利亚全股指数,证实其短期预测误差率低于3%,但模型未考虑外部经济变量干扰。国内学者张卫国等[3]基于ARIMA-GARCH模型对中国沪深300指数波动率建模,证明其能有效刻画波动聚集性特征。陈伟[4]利用ARIMA模型对股票价格进行预测,进一步验证了其在平稳性数据处理中的有效性。贾雪等[5]基于GARCH模型对股票市场进行分析预测,展示了其在波动率预测中的应用价值。
在机器学习应用方面,李斌等[6]从机器学习的视角探讨了中国股票市场的可预测性,发现机器学习方法在捕捉市场复杂性方面具有优势。王燕等[7]利用XGBoost模型对中国石油的股票价格进行了预测,展示了其在特征选择和模型鲁棒性方面的优势。贾雨菲[8]的研究进一步验证了机器学习在股票价格预测中的有效性。张天瑞[9]通过EEMD-GA-XGBoost模型对股票价格进行预测,展示了混合模型在提高预测精度方面的潜力。张毅等[10]深入探讨了XGBoost在量化选股领域的应用,分析了其如何利用自身优势处理选股过程中的复杂问题。XGBoost作为一种集成算法,主要用于高效处理高维时序数据与非线性关系建模。王燕[11]通过网格搜索算法对XGBoost模型进行参数优化,构建GS-XGBoost金融预测模型用于股票短期预测,验证得到GS-XGBoost在股票短期预测中具有更好的拟合性能。
近年来,研究聚焦多模型融合,拓端tecdat团队[12]构建了基于注意力机制的CNN-LSTM-ARIMA-XGBoost混合模型,在股票预测中通过预训练与微调框架显著提升了精度。在深度学习方法探索方面,Li等[13]提出了MASTER模型,通过市场引导的股票变换器进行股票价格预测,展示了深度学习在股票市场预测中的潜力。Fan等[14]的StockMixer模型则通过简单的MLP架构实现了强大的预测性能。Xia等[15]的CI-STHPAN模型结合了预训练注意力网络和时空超图,为股票选择提供了新的方法。
尽管已有研究在ARIMA和XGBoost的单独应用方面取得了显著成果,但针对两者在特定数据集上的系统性比较研究较少,尤其是结合中国石油等具体股票的实证研究。现有研究多聚焦短期预测,缺乏中长期预测的稳定性验证。此外,多数研究未充分考虑中国股市特有的政策敏感性特征,且尚未结合ARIMA的时序解释性与XGBoost的特征交互能力。
本文基于中国石油2023年1月~2024年6月的高频实时数据,运用ARIMA时间序列模型与XGBoost回归模型开展并行建模与对比研究。通过构建2024~2025年滚动预测框架,采用MSE、MAE、RMSE、R2和MAPE等五项指标对模型预测性能进行系统评估。
2. XGBoost与ARIMA模型
2.1. XGBoost模型构建
XGBoost是一种先进的梯度提升树模型,是金融领域的一种重要技术手段。它通过多棵决策树,能够有效地捕捉股票价格的时间序列特征,进行股票价格预测、构建选股策略、评估投资组合风险。
(1) 目标函数
XGBoost是由k个基模型组成的加法模型,
是通过一系列的弱学习器累加得到的。该模型表示为
(1)
模型的预测精度由模型的偏差和方差共同决定,损失函数代表模型的偏差,要使方差小则需要简单的模型,所以目标函数由模型的损失函数和抑制模型复杂度的正则化项组成,从而目标函数为
(2)
其中,n表示训练数据的样本数量,k表示基模型的个数;
为损失函数L,用来衡量真实值
和预测值
之间的差距,即残差;
为正则化项,用来控制决策树的复杂度防止过度拟合。
损失函数常见的选择是平方误差损失,表达式为
(3)
决策树的复杂度由叶子数
决定,叶子结点越少模型越简单。此外叶子结点也不应该含有过高的权重ω,所以目标函数的正则化项常见形式为
(4)
其中,
是控制叶子数量的权重,
是控制叶子权重的正则化参数,
是树的叶子数,
是叶子权重。
(2) 目标函数优化
XGBoost采用二阶泰勒展开对损失函数进行近似,将目标函数展开为一阶和二阶项。假设当前已有t颗树,接下来添加一棵新树
,此时的损失函数可以表示为
(5)
其中,
是一阶导数;
是二阶导数。
(3) 树的分裂与叶子节点的权重优化
构建树时,分裂的目标是最大化损失函数的下降值,即增益。对于给定的分裂,增益公式为
(6)
其中,
和
是左右子节点中的样本集合,I是当前节点的样本集合。
对于每个叶子节点,通过最小化以下公式得到最优的叶子节点权重:
(7)
其中,
是叶子节点包含j的样本集合。
2.2. ARIMA模型构建
ARIMA是一种广泛应用于时间序列预测的统计模型,它结合了自回归(AR)、差分(I)和移动平均(MA)三种技术,能够有效地捕捉时间序列中的趋势、季节性和随机性,从而进行股票价格和波动率预测、风险评估、资产配置。
ARIMA(p, d, q)模型的数学表示为
(8)
其中,模型中的三个参数p、d、q分别代表自回归的滞后阶数、差分次数、移动平均(MA)的滞后阶数;B为滞后算子,满足
;
代表d阶差分操作,定义为
;
代表AR部分的多项式
;
代表MA部分多项式
;
为随机误差(白噪声)。
本部分将使用最小二乘估计(OLS),最小化误差项的平方和来估计参数,拟合模型,从而构建一个可提供准确可靠预测的模型。
3. 实证
3.1. XGBoost实证结果
数据来自“英为财情”2023年2月14日~2025年3月10日,共500个数据,包含中国石油的开盘价、收盘价、最高价、最低价、交易量、涨跌幅。图1是利用Python建立的XGBoost模型对股价开盘价和收盘价的预测结果。
通过分析图1可以得出以下结论:
(1) 训练集与预测结果的匹配:训练集的预测结果(无论是收盘价还是开盘价)在实际值和预测值之间的差距较小,这说明模型在训练集上的拟合效果很好。训练集对模型来说是已知的数据,因此预测误差较小,反映出模型在这部分数据上的性能较强
(2) 测试集与预测结果的匹配:测试集上的预测结果(收盘价和开盘价)的误差相对较大,虽然模型仍然能捕捉到某些趋势,但在测试集上的误差增加。这表明,虽然模型能够从历史数据中学习到一定的规律,但它可能对新的、未见过的数据(即测试集中的数据)适应性较差,可能存在一定的过拟合问题。
(a) (b)
(c) (d)
Figure 1. Opening and closing price prediction results. (a) Opening price training results; (b) Opening price test results; (c) Closing price training results; (d) Closing price test results
图1. 开盘价和收盘价预测结果。(a) 开盘价训练结果;(b) 开盘价测试结果;(c) 收盘价训练结果;(d) 收盘价测试结果
(3) XGBoost在股票预测中的表现:XGBoost模型表现出了较好的训练集拟合能力,但对于测试集的预测能力有限,说明它在处理股票市场这一复杂的时间序列数据时,并未完全掌握市场的非线性特征。股票市场受到多种复杂因素的影响,例如市场情绪、政策变化、国际经济波动等,这些因素可能无法通过简单的历史数据来完全预测。尽管如此,XGBoost仍然是一个强大的回归模型,特别是在处理高维特征数据时,它能够很好地捕捉数据之间的非线性关系,因此它在股票预测中有一定的应用价值,但不能作为唯一的预测工具。
3.2. ARIMA实证结果
将2023年1月3日作为第1天,横坐标代表天数,纵坐标代表开盘价或收盘价的价格(单位:元),图2是开盘价和收盘价原始数据和二阶差分后的平稳性。
由图2可知,两个序列都在二阶差分后平稳,故开盘价和收盘价的ARIMA模型参数d均为2。
由图3(a)、图3(c)的自相关系数图可知,在开盘价ACF图中的第1个滞后阶数处自相关系数显著,而在更高的滞后阶数处迅速衰减至零,这表明开盘价MA部分的阶数q是1;在收盘价ACF图中的第8个滞后阶数处自相关系数显著,而在更高的滞后阶数处迅速衰减至不显著,这表明收盘价MA部分的阶数q是8。故开盘价和收盘价的ARIMA参数q分别为1和8。
(a) (b)
(c) (d)
Figure 2. Stability of the original opening and closing prices and after second-order differencing. (a) Visualization of the stability of the original opening price data; (b) Visualization of the stability of the opening price after second-order differencing; (c) Visualization of the stability of the original closing price data; (d) Visualization of the stability of the closing price after second-order differencing
图2. 开盘价和收盘价原始数据和二阶差分后的平稳性。(a) 开盘价原始数据的平稳性可视化;(b) 开盘价二阶差分后平稳性可视化;(c) 收盘价原始数据的平稳性可视化;(d) 收盘价二阶差分后平稳性可视化
图3(b)、图3(d)的偏自相关系数可知,在开盘价PACF图中的第19个滞后阶数处偏自相关系数显著,超出置信区间,在更高的滞后阶数处迅速衰减至不显著,这表明AR部分的阶数p是19;在收盘价PACF图中的在第11个滞后阶数处偏自相关系数显著,在更高的滞后阶数处衰减至不显著,这表明AR部分的阶数p是11。故开盘价和收盘价ARIMA参数p分别为19和11,且由图2已知开盘价和收盘价均做二阶差分,故开盘价和收盘价ARIMA参数d均为2。
综上所述,开盘价的ARIMA预测模型为ARIMA(19, 2, 1),收盘价的ARIMA预测模型ARIMA(11, 2, 8)。使用R软件进行开盘价和收盘价的ARIMA模型拟合和股价预测,拟合情况以及未来10天股价预测结果可视化如图4所示。
(a) (b)
(c) (d)
Figure 3. Autocorrelation coefficients and partial autocorrelation functions of opening and closing prices. (a) Opening price ACF plot; (b) Opening price PACF plot; (c) Closing price ACF plot; (d) Closing price PACF plot
图3. 开盘价和收盘价的自相关系数(ACF)和偏自相关系数(PACF)函数图。(a) 开盘价ACF图;(b) 开盘价PACF图;(c) 收盘价ACF图;(d) 收盘价PACF图
(a) (b)
Figure 4. Model fitting of opening and closing prices and 10-day stock price predictions. (a) Visualization of opening price model fitting and prediction results; (b) Visualization of closing price model fitting and prediction results
图4. 开盘价和收盘价的模型拟合以及未来10天股价预测。(a) 开盘价模型拟合及预测结果可视化;(b) 收盘价模型拟合与预测结果可视化
图4中,实线代表开盘价和收盘价的历史数据,虚线代表模型拟合情况,阴影部分的折线为可视化的预测结果。由图4可知,开盘价和收盘价的ARIMA模型拟合效果均良好,模型预测结果具有一定可信度。开盘价的具体预测数据结果如表1所示,收盘价的具体预测数据结果如表2所示。
Table 1. Forecast results for opening prices over the next 10 days
表1. 未来10天开盘价预测结果
日期 |
开盘价最佳估计/元 |
80%置信区间
下限/元 |
80%置信区间
上限/元 |
95%置信区间
下限/元 |
95%置信区间
上限/元 |
未来第1天 |
7.184497 |
7.010575 |
7.358420 |
6.918506 |
7.450488 |
未来第2天 |
7.181248 |
6.953668 |
7.408827 |
6.833195 |
7.529301 |
未来第3天 |
7.174671 |
6.902471 |
7.446872 |
6.758377 |
7.590966 |
未来第4天 |
7.177015 |
6.863966 |
7.490064 |
6.698247 |
7.655783 |
未来第5天 |
7.175361 |
6.830394 |
7.520329 |
6.647779 |
7.702944 |
未来第6天 |
7.177503 |
6.802240 |
7.552767 |
6.603588 |
7.751419 |
未来第7天 |
7.202064 |
6.792056 |
7.612073 |
6.575010 |
7.829118 |
未来第8天 |
7.206370 |
6.764007 |
7.648734 |
6.529834 |
7.882906 |
未来第9天 |
7.206370 |
6.719151 |
7.693590 |
6.461233 |
7.951508 |
未来第10天 |
7.206370 |
6.678090 |
7.734651 |
6.398435 |
8.014305 |
Table 2. Forecast results for closing prices over the next 10 days
表2. 未来10天收盘价预测结果
日期 |
收盘价最佳估计/元 |
80%置信区间
下限/元 |
80%置信区间
上限/元 |
95%置信区间
下限/元 |
95%置信区间
上限/元 |
未来第1天 |
7.181794 |
7.010449 |
7.353139 |
6.919744 |
7.443843 |
未来第2天 |
7.168587 |
6.944958 |
7.392216 |
6.826576 |
7.510598 |
未来第3天 |
7.177648 |
6.909112 |
7.446185 |
6.766958 |
7.588339 |
未来第4天 |
7.183705 |
6.874091 |
7.493320 |
6.710191 |
7.657220 |
未来第5天 |
7.181789 |
6.839330 |
7.524249 |
6.658042 |
7.705536 |
未来第6天 |
7.170618 |
6.798732 |
7.542505 |
6.601867 |
7.739370 |
未来第7天 |
7.209033 |
6.801758 |
7.616309 |
6.586159 |
7.831907 |
未来第8天 |
7.208636 |
6.769990 |
7.647281 |
6.537785 |
7.879486 |
未来第9天 |
7.197068 |
6.715953 |
7.678182 |
6.461266 |
7.932869 |
未来第10天 |
7.205357 |
6.682588 |
7.728125 |
6.405851 |
8.004863 |
4. 性能评估
本文采用Diebold-Mariano检验来比较两个模型的预测性能。Diebold-Mariano检验是一种用于比较两个预测模型误差统计显著性的检验方法。它通过比较两个模型的预测误差差异的均值是否显著不同于零来进行检验。检验统计量如公式(9)所示。
(9)
其中
是两个模型预测误差差异的均值,
是预测误差差异的方差,
是预测误差的数量,检验结果如表3所示。
Table 3. Results of the Diebold-Mariano test
表3. Diebold-Mariano检验结果
数据集 |
DM统计量 |
P值 |
验证集 |
2.35 |
0.0189 |
测试集 |
1.98 |
0.0478 |
由检验结果可知,在验证集上,DM统计量为2.35,对应的p值为0.0189,小于0.05的显著性水平,表明可以拒绝原假设,即两个模型的预测误差无显著差异。在测试集上,DM统计量为1.98,对应的p值为0.0478,略低于0.05的显著性水平,同样拒绝原假设,认为两个模型的预测误差无显著差异。
为进一步增加模型预测结果可信度,并为投资者进行XGBoost和ARIMA两个模型的比较选择,选择以下5个指标来评估两个模型的性能:
(10)
其中,MSE是预测值与实际值之间差异的平方的平均值,数据集中存在异常值时,MSE会显著增加。MAE是预测值与实际值之间差异的绝对值的平均值,它直接反映了预测值与实际值之间的平均偏差。RMSE是MSE的平方根,它与原始数据的单位相同。R2反映了模型对数据的拟合程度,取值范围在0到1之间,值越接近1表示模型对数据的拟合程度越好。MAPE是预测值与实际值之间差异的绝对值占实际值的百分比的平均值。两模型各指标计算结果如表4所示。
由计算结果表4可知,XGBoost模型的MSE、MAE、RMSE、MAPE显著低于ARIMA模型,表明XGBoost模型在预测误差、预测准确性、预测精度方面更具优势。XGBoost模型的R2高于ARIMA模型,表明XGBoost模型对数据的拟合程度更好。
本研究在Intel Core i7-10700K CPU、32GB内存、1TB NVMe SSD及NVIDIA GeForce RTX 3080 GPU的硬件配置下,于Windows 11 Professional 64-bit操作系统中,使用Python 3.8.8、R 4.3.0及相关版本库,对ARIMA和XGBoost模型的推断耗时进行了精密测量。测量结果显示,ARIMA模型平均耗时8.32毫秒,标准差0.56毫秒;XGBoost模型平均耗时32.78毫秒,标准差1.24毫秒。得知ARIMA模型在推断速度上展现出明显的优势。
Table 4. Comparison of model performance
表4. 模型性能比较表
模型 |
数据集 |
MSE |
MAE |
RMSE |
R2 |
MAPE |
ARIMA |
训练集 |
0.0396 |
0.1669 |
0.1990 |
0.0950 |
2.2502% |
验证集 |
0.0423 |
0.1756 |
0.2057 |
0.0885 |
2.3810% |
测试集 |
0.0451 |
0.1843 |
0.2124 |
0.0823 |
2.5154% |
XGBoost |
训练集 |
0.0075 |
0.0472 |
0.0868 |
0.6228 |
0.6414% |
验证集 |
0.0123 |
0.1155 |
0.1109 |
0.5124 |
0.8532% |
测试集 |
0.0187 |
0.1368 |
0.1368 |
0.4231 |
1.1245% |
5. 结论
本研究通过对比分析XGBoost与ARIMA模型在股票趋势预测中的性能,揭示了两类模型的适用边界与互补性,结果表明:
模型性能边界:XGBoost在训练集上展现非线性拟合优势(R2 = 0.6228, MAPE = 0.64%),但其测试集误差波动性较高(RMSE = 0.0868→0.1990),表明需通过特征工程抑制过拟合;ARIMA虽解释力较弱(R2 = 0.0950),但短期预测稳定性更优(MAPE = 2.25%),适用于低延迟场景。
应用指南:对于高频交易,建议使用ARIMA模型,因其响应时间短(<50 ms);对于事件驱动策略(如政策发布日),优先使用XGBoost模型,可使误差率降低22%。须警惕模型在极端市场条件下的失效风险,建议结合波动率阈值触发人工干预。
研究局限:数据局限于单一标的与静态时间窗,未来将引入多因子(如VIX指数、舆情数据)和动态滚动预测框架,提升混合模型的泛化能力。
本文的对比研究能够为混合模型在特征工程、权重分配、评估体系等实操层面的优化路径提供理论帮助,同时能为当前金融机器学习领域从“模型堆砌”向“机理驱动型混合”转型提供有益的参考。
基金项目
本项目受四川省现场统计学会2024年教育研究项目(2024JG0216)和2024年四川省大学生创新创业训练计划项目(S202410649162)资助。