基于信号分解和机器学习模型的股票价格预测
Stock Price Prediction Based on Signal Decomposition and Machine Learning Models
DOI: 10.12677/CSA.2022.124111, PDF, HTML, XML, 下载: 327  浏览: 907 
作者: 颜轲越, 王祎萌*:澳门大学科技学院,澳门;李 莹:北京理工大学珠海学院,中美国际学院,广东 珠海
关键词: 金融时间序列信号分解预测机器学习Financial Time Series Signal Decomposition Prediction Machine Learning
摘要: 随着全球经济的发展,人们对投资不同领域的标的资产表现出了浓厚兴趣,其中,投资股市是最受所有投资者欢迎的方式之一。为了获得额外的收益,投资者尝试使用不同的数学和统计方法来预测他们关注的股票的趋势或价格。在这项研究中,为了提高股票预测的效果,我们首先使用不同的信号分解方法,如经验模式分解(EMD)、集合经验模式分解(EEMD)和完全自适应噪声集合经验模态分解(CEEMDAN)来减少原始股票价格数据的噪声部分。以信号数据作为机器学习模型的输入,我们能够根据现有金融市场的股票交易数据,通过滑动窗口法对过去几年的股票价格进行预测。最后的结果表明,模型在预测不同信号分解的时间序列时有良好的表现。
Abstract: With the development of the global economy, people have more interest in investing different fields of underlying assets, among which the stock market is one of the most popular ways for all the investors. In order to gain extra benefits, investors try to use different mathematics and statistics methods to predict the tendency or prices of the stock they prefer. In this research, in order to improve the effects of stock prediction, first we use different methods of signal decomposition such as Empirical Mode Decomposition (EMD), Ensemble Empirical Mode Decomposition (EEMD) and Complete Ensemble Empirical Mode Decomposition with Adaptive Noise (CEEMDAN) to reduce the noise of original stock price. With the signal data as input of machine learning models, we are able to forecast the stock price in the last few years by sliding window method based on stock trading data in existing financial markets. The last result shows that models have good performance in forecasting time series with different signal decomposition.
文章引用:颜轲越, 李莹, 王祎萌. 基于信号分解和机器学习模型的股票价格预测[J]. 计算机科学与应用, 2022, 12(4): 1080-1088. https://doi.org/10.12677/CSA.2022.124111

1. 引言

如今,经济呈现出全球化和一体化的趋势,这带来了快速增长和世界各地的金融市场的扩大。同时,股票市场的竞争也变得越来越激烈。在这种情况下,股票、数字货币和其它标的资产的投资在我们的日常生活中逐渐流行起来,许多投资者花大量时间探索股票和数字货币交易市场的获利规律,从而获得额外收入。然而,交易市场总是充满了不确定性,其中任何社会事件,如经济政策,政治新闻和投资者情绪的变动总是影响着股票和数字货币交易价格的震荡 [1]。因此,在学术研究和实际应用方面,金融时间序列预测仍然是一项具有挑战性的任务。随着如今数据量的增加和强大的计算能力,现有的数学和统计模型可以从数据中挖掘出一些有用的信息,帮助投资者做出交易决策,避免不必要的损失。在发展健全的交易市场中,如中国香港和美国,人们可以选择丰富的投资标的物和更多的金融工具对冲风险从而获得更多收益。在此项研究中,我们选择了中国香港交易市场的股票作为实验样本,基于最近50天的收盘价数据构造机器学习模型,预测未来3天收盘价。同时结合信号分解的方法训练和测试不同的模型。结果表明,基于信号分解的股票价格预测模型表现出优秀的拟合效果。

本文的剩余部分划分如下。第2节回顾了关于时间序列预测的相关研究工作。第3节详细描述了研究使用的技术方法、模型等。在第4节中,我们介绍了实验后模型各项指标的表现。最后,我们在第5节中对本研究进行了总结。

2. 文献综述

预测股票价格是此项研究的任务,根据目前的研究情况,文献综述中关于时间序列预测和股票价格预测的研究通常可以分为两类。第一类采用传统的统计学时间序列模型,如自回归(AR)、移动平均(MA)、自回归整合移动平均(ARIMA)和向量自回归(VAR)。石佳等人通过股票收盘价构造ARIMA模型,得出传统统计学时间序列模型适合预测股市短期趋势的结论 [2]。尹路使用ARIMA-GARCH修正了训练中存在的误差 [3]。随着计算机科学和硬件设备的发展,第二类包括使用机器学习(Machine Learning)、深度学习(Deep Learning)和强化学习(Reinforcement Learning)等新方法。在不构建变量的情况下,深度学习模型如循环神经网络(RNN)、门循环单元神经网络(GRU)和长短记忆神经网络(LSTM)在金融时间序列预测中得到了推广。陈奉贤等人将股票价格趋势看成分类问题,使用一些深度学习模型LSTM来预测不同股票的涨跌 [4],并测试模型的准确性。耿恩泽等人将机器学习和深度学习的方法进行对比,进行回归分析 [5]。周乔等人结合股票图像和卷积神经网络(CNN),以股票的蜡烛图图像作为CNN的输入变量来预测股票的走势 [6]。然而,Makridakis等人发现,当训练数据不充分,数量不够大时,深度学习模型的性能可能比机器学习模型或传统统计时间序列模型差 [7]。研究人员曾使用物理学上的分解方法来提高金融时间序列预测的准确性:Cao等人基于信号分解,使用EMD,CEEMDAN和LSTM结合的方法对各大指数股价进行预测,取得了不错的效果 [8]。本文将使用类似的信号分解方法对金融时间序列数据进行分解,结合移动窗口的方法和机器学习模型对未来一段时间的股价进行预测。

3. 研究方法

3.1. 数据描述

本研究使用从雅虎财经网 [9] 下载的汇丰控股(股票代码:0005),渣打银行(股票代码:2888),东亚银行(股票代码:0023),中国银行(股票代码:3988),中国建设银行(股票代码:0939)和中国工商银行(股票代码:1398),六支在香港交易所上市的股票自2017年1月1日至2021年12月31日的每日价格作为实验数据。数据集包含开盘价,最高价,最低价,收盘价和成交量共5个变量,其中收盘价为此项研究需要预测的结果标签。六只股票的收盘价走势图如图1所示。

Figure 1. Diagram of six stocks

图1. 六只股票的走势图

3.2. 机器学习模型

决策树(Decision Tree, DT)经常用于解决分类和回归问题。对于每个决策树模型,它从根节点开始,到叶节点结束。根节点和叶节点之间可以存在多个子节点,将样本数据与子节点的特征进行比较,按照比较结果移动到下一个子节点,直到到达叶节点。每个输入样本需经过此过程,并在相应的叶节点上得到目标结果。叶节点的目标值的平均值则为预测值。

支持向量机(Support Vector Machine, SVM)可以用于解决线性和非线性的分类和回归问题。与SVM分类模型相同,SVM回归需要设定目标函数并在目标函数的两侧设定一个间距;不同的是SVM的间距需在尽可能覆盖更多的数据的同时,还要限制间距之外的数据。通过最小化权向量的方式解决间距问题后,可以得到目标函数并通过计算得到预测值。

3.3. 滑动窗口法

对于时间序列数据,实验中使用滑动窗口法(Sliding Window Method)进行分析。首先将数据分为多个数量相等部分。以时间步长为例,将某只股票数据集分成1~50,4~53,7~56,以此类推。对于第一部分,1~47作为模型的训练集,48~50作为该模型的测试集;在第二部分中,4~50是训练集,51~53为测试集;第三部分,7~53是训练集,54~56为测试集,后面所有步骤以此类推。

在本研究中,将其视为一种通过充分利用数据来训练机器学习模型的滑动窗口法。与传统的训练方法相比,机器学习模型可以随着时间序列数据的滑动变化而开始新一轮的学习。为了完成这一操作,实验中使用python的sktime包 [10] 将整个数据集分成多个部分,构建机器学习模型的训练测试模块。

3.4. 信号分解

经验模态分解(Empirical Mode Decomposition, EMD)是一种将非线性和非平稳信号分解为有限个包含局部特征信号的本征模函数(Intrinsic Mode Function, IMF)的方法。其中IMF需要满足以下条件:局部极值点和过零点的个数相等或者相差1个;局部最大值和最小值的包络的平均值为0。然后对各IMF分量进行希尔伯特变换来获得有物理意义的瞬时频率。EMD算法是由Norden Huang和合作者在1998年提出的一种可用于分析多种物理信号以及非平稳信号的方法 [11]。

EMD算法过程如下:

1) 找到原数据的极大值和极小值,用三次样条插值法得到上下包络线。

2) 计算上下包络线的均值,将原数据减去该均值得到新数据。

3) 如果新数据仍存在局部极大值和极小值,需要重复步骤1和2,直至生成的新数据不存在极大值和极小值,该新数据则为一个IMF。

4) 将原数据减去IMF得到residue,将residue作为新的原数据重复以上步骤得到下一个IMF和residue,直至residue为单调函数结束。

通过此算法,原始数据可被分解为多个IMF和一个residue。

虽然EMD算法在分析非线性和非平稳信号方面具有优势,但它仍然存在“模式混叠”问题。这意味着时间序列信号数据会存在不同IMF分量中有相似的信号或者在同一个IMF里有不同信号的现象。在时间序列信号数据中加入高斯白噪声后,集合经验模态分解(Ensemble Empirical Mode Decomposition, EEMD)解决了EMD算法中的“模式混合”问题 [12]。EEMD算法与EMD算法不同的是:

1) 添加随机高斯白噪声到起始数据中之后再进行EMD分解。

2) 计算不同白噪声下的IMF的均值。

EEMD算法不具备在信号分解后完全消除高斯白噪声的能力。为了解决这些问题,有人提出了EEMD算法的改进版本,即为完全自适应噪声集合经验模态分解(Complete Ensemble Empirical Mode Decomposition with Adaptive Noise, CEEMDAN),通过成对增加符号相反的白噪声的方式对信号进行分解和重构 [13]。相比EEMD算法,CEEMDAN能够更有效地解决“模式混叠”问题,重建误差几乎为零,并且降低了计算成本。

在此研究中,股票的收盘价将为研究目标。我们首先将某只股票的收盘价数据集分为几个部分,每个部分包含固定的数据量,其中收盘价可以通过使用Python的PyEMD包的EMD、EEMD和CEEMDAN算法 [14] 分解成几个IMF和一个residue。接着,几个IMF和residue的时间序列数据作为机器学习模型的输入变量,并预测未来几天的IMF和residue。再将预测的IMF和residue相加,即能获得预测的收盘价结果。结合每个部分的所有预测收盘价,我们能将所有预测结果连成时间序列数据,并将其与真实收盘价相对比,观察预测结果是否可靠。

4. 研究成果

本研究将使用模型实际运行时间和五个回归指标来用于衡量不同机器学习模型效果。在下列公式中, y i 表示数据集中第i时刻的股票价格的真实值, y ^ i 表示通过模型运算得到的第i时刻股票价格的预测值,n为测试集的总数目。

R平方比较的是预测值和平均值与真实值之间的误差,其取值范围通常在0到1之间。当 R平方的值越接近于1时,表示该模型的预测值与真实值之间的总误差越小,该模型的拟合效果越好;当R平方的值越接近于0,甚至小于0时,表示该模型的预测值与真实值的总误差和平均值与真实值的误差越大,该模型的拟合效果越差。其公式如下:

R 2 = 1 i = 1 n ( y i y ^ i ) 2 i = 1 n ( y i y ¯ i ) 2 (1)

平均绝对误差(Mean Absolute Error, MAE)是预测值与真实值之间的差值的平均绝对值。如果MAE的值越小,表示预测值越接近真实值,其模型的拟合程度越高。其公式如下:

MAE = i = 1 n | y i y ^ i | n (2)

均方误差(Mean Squared Error, MSE)和均方根误差(Root Mean Squared Error, RMSE)都被用于测量模型的拟合效果。MSE是预测值与真实值之间的误差平方的平均值,RMSE则是MSE的平方根。当MSE或者RMSE的值越小,表示预测值与真实值之间的误差越小,其模型的拟合效果越好。它们的公式如下所示:

MSE = i = 1 n ( y i y ^ i ) 2 n (3)

RMSE = i = 1 n ( y i y ^ i ) 2 n (4)

平均绝对百分比误差(Mean Absolute Percentage Error, MAPE)是预测值的误差在真实值上的百分比的平均值。当MAPE的值越接近于0,表示预测值的误差在真实值上的百分比越低,该模型的表现越好。

MAPE = i = 1 n | y i y ^ i y i | n (5)

两个机器学习模型均调用了sklearn包 [15] 进行实验。我们将三种信号分解方法得到的结果分别用表1~3显示。其中表1汇总了基于EMD分解下所有股票样本的回归指标。表2表3分别表示基于EEMD和CEEMDAN分解的回归指标。

Table 1. Models’ performance under EMD decomposition

表1. EMD分解下的模型表现

Table 2. Models’ performance under EEMD decomposition

表2. EEMD分解下的模型表现

Table 3. Models’ performance under CEEMDAN decomposition

表3. CEEMDAN分解下的模型表现

Figure 2. 0005 decision tree model fitting diagram based on CEEMDAN

图2. 基于CEEMDAN的0005决策树模型拟合图

Figure 3. 0005 SVM model fitting diagram based on CEEMDAN

图3. 基于CEEMDAN的0005支持向量机模型拟合图

大部分情况下,所有机器学习模型的拟合度R平方均超过了0.95,所有MAPE低于0.03。说明回归效果非常好。较于其它样本,SVM模型在0939和1398两个样本数据上的拟合度表现相对较低,拟合度在0.91~0.92之间。在基于EMD分解的回归指标中,模型平均MSE为1.3979,RMSE为0.8504。较低的误差说明回归表现优异。模型在预测股价上有具有参考价值。同时模型的平均训练时间为8秒。在速度上EMD分解绝对处于优势。在实际应用中,当模型输入变量增加时更能体现EMD分解的速度优势。

当实验中的信号分解方法换成EEMD时,相同数据集下的模型表现如表2所示,在平均值上,MAE (0.6185)、MSE (1.3271)、RMSE (0.8327)和MAPE (0.0246)在误差数值上和EMD分解相比,有着更低的数值。回归效果比EMD优秀。但随着分解模式的复杂化,每个模型训练时间从平均8 s升至235 s,更加耗时的分解模式下,误差却没有大幅度下降。在实际应用中往往得不偿失。

最后,基于CEEMDAN的分解方法下,各项误差指标的平均值均达到了低点,MAE (0.6108)、MSE (1.3509)、RMSE (0.8392)均表现优秀。在模型拟合度上,R平方的均值达到0.9628,比EMD和EEMD分解更加优秀。我们选取了0005股票作为例子,画出了在CEEMDAN分解下的决策树和支持向量机模型拟合图,详见图2图3。但在平均训练时间上面,CEEMDAN达到了450 s,相较于EEMD耗时多1倍的时间;而比EMD更是多56倍时间。即使CEEMDAN在训练效果上更具有优势更加稳定,但综合下来,相对合理的回归误差以及模型快速的训练时间则显得EMD分解优势更加显著。

5. 总结

在股票价格的预测上,本研究提出了基于各种不同信号分解的机器学习模型。用滑动窗口法训练模型,进行不同股票未来股价的预测。通过对比不同类型的信号分解方法(EMD, EEMD, CEEMDAN),实验结果显示基于三种信号分解方法的机器学习在预测上均有很好的效果,其中CCEMDAN分解方法表现更佳,在不同的模型、不同样本数据下依旧有比较稳定优秀的结果。但在训练速度上,EMD分解更具有优势和参考价值。在未来的研究中,还可以收集更多不同种类的股票特征数据(如:财务信息,情绪信息等),尝试使用信号分解特征变量方法进行模型训练。探索不同类型的变量对模型预测准确度的影响。

NOTES

*通讯作者。

参考文献

[1] Wang, B., Huang, H. and Wang, X. (2012) A Novel Text Mining Approach to Financial Time Series Forecasting. Neu-rocomputing, 83, 136-145.
https://doi.org/10.1016/j.neucom.2011.12.013
[2] 石佳, 刘威, 冯智超, 张春晖, 周雁祥. 基于ARIMA 模型的股市价格规律分析与预测[J]. 统计学与应用, 2020, 9(1): 101-114.
https://doi.org/10.12677/sa.2020.91012
[3] 尹路. 基于ARIMA-GARCH 模型的股票价格预测[J]. 应用数学进展, 2022, 11(1): 404-417.
[4] 陈奉贤, 赵建群. 基于LSTM的股票价格的多分类预测[J]. 计算机科学与应用, 2019, 9(10): 1882-1891.
https://doi.org/10.12677/csa.2019.910211
[5] 耿恩泽, 满溢, 胡坤澎. 股票市场的集成预测方法研究[J]. 统计学与应用, 2021, 10(6): 1009-1013.
https://doi.org/10.12677/sa.2021.106106
[6] 周乔, 刘宁宁, 沈灵聪. 基于股票图像与CNN 的股价预测模型研究[J]. 金融, 2020, 10(4): 334-342.
https://doi.org/10.12677/fin.2020.104034
[7] Makridakis, S., Spiliotis, E. and Assimakopoulos, V. (2018) Statis-tical and Machine Learning Forecasting Methods: Concerns and Ways Forward. PLoS ONE, 13, Article ID: e0194889.
https://doi.org/10.1371/journal.pone.0194889
[8] Cao J., Li, Z. and Li, Z. (2019) Financial Time Series Forecast-ing Model Based on CEEMDAN and LSTM. Physica A, 519, 127-139.
https://doi.org/10.1016/j.physa.2018.11.061
[9] Yahoo Finance (2022).
https://finance.yahoo.com/
[10] Sktime (2022).
https://www.sktime.org/en/stable/
[11] Huang, N.E., Shen, Z., Long, S.R., Wu, M.C., Shih, H.H., Zheng, Q., Yen, N., Tung, C.C. and Liu, H.H. (1998) The Empirical Mode Decom-position and the Hilbert Spectrum for Non-Linear and Non-Stationary Time Series Analysis. Proceedings of the Royal Society of London A, 454, 903-995.
https://doi.org/10.1098/rspa.1998.0193
[12] Wu, Z. and Huang, N.E. (2009) Ensemble Empirical Mode Decomposition: A Noise-Assisted Data Analysis Method. Advances in Adaptive Data Analy-sis, 1, 1-41.
https://doi.org/10.1142/S1793536909000047
[13] Torres, M.E., Colominas, M.A., Schlotthauer, G. and Flandrin, P. (2011) A Complete Ensemble Empirical Mode Decomposition with Adaptive Noise. 2011 IEEE Inter-national Conference on Acoustics, Speech and Signal Processing, Prague, 22-27 May 2011, 4144-4147.
https://doi.org/10.1109/ICASSP.2011.5947265
[14] PyEMD (2022).
https://pyemd.readthedocs.io/en/latest/intro.html
[15] Sklearn (2022).
https://scikit-learn.org/stable/