基于历史趋势和预测误差的时序序列预测方法研究
2023-09-25郑俊褒张旭马腾洲
郑俊褒 张旭 马腾洲
摘 要: 针对时间序列预测方法训练复杂、迁移预测能力差等问题,提出一种自适应预测方法。先根据预测误差和当前值确定下一时刻预测值的范围,再结合短期历史趋势确定最终预测值。得到的当前预测值代入下一轮循环中继续预测,通过不断“预测-校正-预测”循环实现对数据预测。最后利用金融、风力等时序数据,LSTM、SVM、ARIMA、MA等经典时间序列预测算法在预测精度、迁移预测能力、运算速度等方面做了对比。
关键词: 时序序列; 盲信号; 数据预测; 泛化能力
中图分类号:TP13 文献标识码:A 文章编号:1006-8228(2023)09-10-04
Research on time series forecasting method based on historical trend and forecast error
Zheng Junbao1, Zhang Xu1, Ma Tengzhou2
(1. School of Computer Science and Technology, Zhejiang Sci-Tech University, Hangzhou, Zhejiang 310018, China; 2. Shanghai Customs)
Abstract: Aiming at the problems of complex training and poor transfer forecasting ability of time series forecasting method, an adaptive forecasting method is proposed. The range of the next forecast value is first determined according to the forecast error and the current value, and then the final forecast value is determined by combining the short-term historical trend. The obtained forecast value is then substituted into the next cycle to continue forecasting, and the data forecasting is achieved through a continuous "forecast-correction-forecast" cycle. Using the time series data such as financial and wind power, the proposed algorithm is compared with LSTM, SVM, ARIMA, MA and other classical time series forecasting algorithms in terms of forecasting accuracy, transfer forecasting ability and computing speed.
Key words: time series; blind signal; data forecasting; generalization ability
0 引言
時序序列预测,是指根据过去的时间序列数据,预测未来一段时间内的数据变化趋势,在金融股票[1]、天气预报[2]、传感预警[3]等很多领域有着重要的应用。目前,时序序列预测的研究主要采取两种技术路线:一种是直接利用数据统计规律的统计学预测方法,另一种是由数据驱动的机器学习方法。前者主要有移动平均法[4]、指数平滑法[5]、差分自回归移动平均模型法[6],后者机器学习方法主要有支持向量机SVM、循环神经网络RNN[7]、长短期记忆网络LSTM等。
由于统计学预测方法只是对历史数据做统一化处理,对于非线性时间序列预测结果较差。如移动平均方法,虽然能够有效消除预测中的随机波动,但预测结果总是停留在过去的平均水平而无法预测下一时刻的变化;机器学习方法一般通过数据训练所得的模型进行预测,在数据训练量小的情况下,机器学习方法无法达到理想效果,并且如果是对不同类型的时间序列预测就需要重新训练模型。此外,神经网络预测算法虽然能实现多步预测,但在像自动化控制领域这种对实时性要求较高,且需要结合当前时刻真实值对下一时刻做出修正预测的场景就不适合。一些预测算法比较适合自动化控制领域,如卡尔曼滤波算法,但其需要对系统模型已知的情况下构建状态方程和测量方程,对不同的场景无法直接迁移预测。
基于以上问题,本文提出一种基于历史趋势和预测误差的时序序列自适应预测方法Historical Trends Forecast Errors(HTFE):一方面判定近期时间序列的趋势类型(增长型、衰减型或无规则型),另一方面根据预测误差和当前真实值得到当前预测值的范围,最终通过结合序列趋势和预测范围确定最终预测值。之后通过不断重复“预测-校正-预测”,实现对连续状态的持续预测。相较于机器学习模型,HTFE方法实现了自适应预测,对于不同类型的一维时间序列可以直接迁移预测;相较于统计学预测方法,HTFE方法通过预测误差不断地修正下一次预测的范围,从而实现对数据更精准的预测。
1 HTFE模型
1.1 算法原理及流程
HTFE算法通过“预测-校正-预测”循环方式对数据进行预测,对于每一轮预测,HTFE算法首先根据最近数据的趋势将预测分为增长型、衰减型、无规律型。然后通过上一时刻预测值和时间序列当前真实值,得到预测误差,根据预测误差和当前值得到初步预测值,再根据上一时刻最大、最小预测值以及当前时刻初步预测值,更新当前时刻的最大、最小预测值,形成下一时刻的预测区间。最后根据历史趋势和预测区间得到最终的预测值,得到预测值后本轮预测结束,将当前预测值和预测区间代入到下一轮,完成下一时刻的预测。通过不断循环单步预测,从而实现对数据整体预测。
HTFE算法单轮预测结构如图1所示,对于每一轮预测,都会根据上一时刻的预测值[X'n]、预测最大值MAX、预测最小值MIN、当前真实值[Xn]这四个值以及最新的时间序列趋势,来确定下一时刻的预测值和预测范围。
HTFE算法流程如下:
(a) 判断历史趋势:取时间序列最近h个数据,若序列单调递增则其历史趋势为增长型,若序列单调递减则为衰减型,否则为无规律型。
(b) 计算当前预测误差:计算上一时刻预测值[x'n]和真实值[xn]的误差乘以误差因子[ω]记为预测误差[δn]:
[δn=ω×(x'n-xn)] ⑴
(c) 计算初步预测值:将预测误差加上当前真实值可以得到对下一时刻的初步预测值。
根据历史误差[δn]和上一时刻预测值[x'n]更新初步预测值[xpren+1]。
[xpren+1=xn+δn] ⑵
(d) 更新预测区间:根据当前计算得到的初步预测值[xpren+1]和上一时刻估计的预测范围([xminn],[xmaxn])更新下一时刻的预测范围([xminn+1,xmaxn+1]),其中[μ]为预测区间误差因子。
[xmaxn+1=xpren+1+μ×(xmaxn-xpren+1)] ⑶
[xminn+1=xpren+1+μ×(xminn-xpren+1)] ⑷
(e) 调整预测范围的最大最小值:为了保证下一时刻的预测范围能够覆盖当前值,当最大预测值小于当前真实值时,令最大预测值等于当前真实值。如果最小预测值大于当前真实值,则令最小预测值等于当前真实值。
[xmaxn+1=xn (xmaxn+1<xn)] ⑸
[xminn+1=xn (xminn+1>xn)] ⑹
(f) 计算最终预测值:根据预测最大值和最小值结合历史趋势得到下一时刻预测最终值[x'n+1]:
[x'n+1=α×xmaxn+1+β×xminn+1+γ×(xmaxn+1+xminn+1)] ⑺
其中,[α, β, γ]由历史趋势得出,如果趋势为增长型[α=1,]
[β=0, γ=0]如果为衰减型[α=0, β=1, γ=0],如果趋势无特征那么[α=0, β=0, γ=0.5]。
(g) 重复以上步骤,以滑动窗口方式直至预测结束。
2 实验与结果
2.1 实验数据
由于不同时序数据具有不同的特点,为了评估模型在不同时序数据的表现,本文选用了国内外股票数据、风力发电数据等不同行业背景的时序数据。
(a) 在金融数据方面,本文采用自1993年4月30日至2020年8月11日的上证指数(000001.SH)、A股指数(000002.SH),工业指数(000004.SH)、商业指数(000005.SH)、地产指数(000006.SH)等四个股市指数数据,各6640个数据点,同时选择了自2019年11月14日至2020年12年23日的271个数据点的印尼人民银行(BBRI)股票数据以评估模型在国外股市上的表现。
(b) 在风力发电数据方面,本文采用比利时风电场2022年8月一个月内每天测量的风力值数据进行预测。采样间隔为15分钟,共2975个数据点。
2.2 对比方法及参数设置
本文选取了长短期记忆网络LSTM、支持向量机SVM、差分整合移动平均自回归模型ARIMA、移动平均MA这几种常用的时序数据预测方法作对比来评估本文方法的性能。本文将前80%的数据集作为训练集,后20%作为测试集。所有模型以滑动窗口方式对归一化后的测试集进行预测。
(a) LSTM采用一个输入层,四个LSTM块,以及一个单值预测的输出层。优化器为adam,损失函数为均方误差MSE,训练次数为1000次。
(b) SVM模型采用惩罚系数为1000,核函数半径g为0.01,核函数为高斯核函数RBF。
(c) 为了保证ARIMA批量预测的准确性和效率,本文选用pmdarima(python环境中基于ARIMA模型进行时间序列分析的包)中的auto_arima方法可以自动计算出信息准则的最小阶数组合,从而减少由于主观判断引起的误差。
(d) 移动平均法设定MA滑动周期为2。
(e) HTFE算法参数选取历史趋势观测步数h为3,预测误差因子[ω]为0.1,预测区间误差因子[μ]为0.5。
2.3 实验结果与分析
2.3.1 预测精度对比
本文通过不同的模型对上述不同数据集分别做了预测,以均方根误差(RMSE)衡量ANN、LSTM、SVM、HTFE方法模型对股票收盘价的预测效果,各模型在各数据集预测结果如表1所示。
从表2数据对比发现,HTFE模型相比其他模型误差更小,精度更高。在股票数据和风电场数据中HTFE比LSTM预测精度分别提升49.8%、50.47%,比MA预测精度分别提升10%、24%。
为了让预测效果更直观,本文将四种模型对印度人民银行股票数据RRBI预测结果和原数据进行对比,如图2所示,可以看出五种预测模型存在不同程度上的滯后性,但HTFE方法在预测结果上更加接近真实数据的轨迹。
2.3.2 预测速度对比
在运算速度方面,五种预测模型在印尼人民银行股票数据的训练时间和预测耗费时间如表2所示。LSTM由于需要训练1000轮导致花费时间较长,ARIMA由于每次预测都需要计算合适的参数导致花费时间最长,由于RRBI股票数据只有271个数据点,SVM在本次训练和预测时间耗费时间较短,HTFE与MA、SVM在运算速度方面属于同一个量级,能够保持较好的运算速度。
2.3.3 迁移预测对比
在模型迁移预测方面,为了对比五种模型的迁移预测精度,本文将各模型在上证指数股票集上进行训练,在印尼人民银行股票上做出预测,得到的结果如表3所示,可以看出,在上证指数股票数据训练的其他模型迁移至印尼人民银行股票上再进行预测,得到的结果比在原始数据集上得到的结果差,而MA、HTFE算法由于自适应特点,迁移预测和非迁移预测结果保持一致。
综上,与其他经典预测模型在不同时间序列数据上的预测结果比较,HTFE模型在预测精度和迁移预测上具有稳定表现,同时,预测速度也具有优势。
3 结论
本文提出了基于历史趋势和预测误差的自适应时间序列预测方法,一方面判定近期序列的历史趋势,另一方面根据预测误差和上一次预测值得到当前预测值的范围,最终通过结合历史趋势和预测范围确定最终预测值。通过对多类时间序列数据与多种经典时间序列预测模型进行逐步预测和对比分析,本文提出的方法在不进行训练的状态下,在股票和风力时间序列数据预测精度方面要优于LSTM、SVM、ARIMA、MA等模型,并且拥有较快的预测速度和具备迁移预测能力。目前HTFE算法主要结合历史趋势和预测误差对单变量时序序列进行单步预测,如何将当前算法扩展到多变量时序序列预测,以及如何提升在多步预测中的效果还是未来要考虑的方向。
参考文献(References):
[1] 宋刚,张云峰,包芳勋,等.基于粒子群优化LSTM的股票预测模型[J].北京航空航天大学学报,2019,45(12):2533-2542.
[2] J. W. Taylor and R. Buizza, "Neural network load
forecasting with weather ensemble predictions," in IEEE Transactions on Power Systems,2002,17(3):626-632.
[3] Ruan Yi,Yuan Lifen,He Yigang,et al. Prognostics andhealth management for piezoresistive pressure sensor based on improved gated recurrent unit networks[J]. Measurement Science and Technology,2022,33(11).
[4] Liu Guangze,Yuan Mingkang,Chen Xudong, et al. Waterdemand in watershed forecasting using a hybrid model based on autoregressive moving average and deep neural networks[J]. Environmental science and pollution research international,2022.
[5] 杨国华,郑豪丰,张鸿皓,等.基于Holt-Winters指数平滑和时间卷积网络的短期负荷预测[J].电力系统自动化,2022,46(6):73-82.
[6] 孟海宁,童新宇,石月開,等.基于ARIMA-RNN组合模型的云服务器老化预测方法[J].通信学报,2021,42(1):163-171.
[7] 赵程栋,庄继晖,程晓鸣,等.基于特征注意力机制的RNN-Bi-LSTM船舶轨迹预测[J].广东海洋大学学报,2022,42(5):102-109.