基于ARIMA和AT-LSTM组合模型的股票价格预测

2022-05-31 15:26张怡
电脑知识与技术 2022年11期

摘要:ARIMA、LSTM等多种预测模型已在时间序列预测中得到应用,预测精度参差不齐。ARIMA、LSTM以及ARIMA-LSTM组合模型的预测精度仍有提升空间。为LSTM引入注意力机制形成AT-LSTM模型,将ARIMA的预测残差引入AT-LSTM,进一步提高预测精度。利用不同的评估方法对混合模型进行评估,实验结果表明ARIMA和AT-LSTM组合模型的误差降低4倍,预测精度得到了提高。

关键词:时间序列预测;ARIMA;LSTM;组合模型

中图分类号:TP391      文獻标识码:A

文章编号:1009-3044(2022)11-0118-04

1  引言

在时间序列预测方面,最常见的便是ARIMA模型,ARIMA是在20世纪70年代由George Box和Gwilyn Jenkins提出的一种著名的时间序列预测方法,ARIMA模型是一种线性序列预测模型,受到输入的时间序列特征的限制,在处理平稳的时间序列上有很好的效果,但在处理非平稳数据上,其预测结果存在很多噪声,导致预测结果无法使用。

在1997年Sepp Hochreiter 与 Jürgen Schmidhuber[1]联合提出了LSTM模型,经过了20多年发展,LSTM在语言识别、文本处理、机器翻译、时间序列预测等方面得到了广泛应用。但LSTM也有其局限性,因为LSTM主要是随着时间推移进行顺序处理,在面对很长的序列时处理起来存在问题。Dzmitry Bahdanau[2]在2105年提出注意力模型,并应用在机器翻译上,有效解决了LSTM在较长序列处理上的问题, Qin[3]使用基于双阶段注意力机制的RNN模型进行了时间序列预测,证实了注意力机制在时间序列预测方面的可行性。

股票价格是一个动态、非线性复杂系统,具有突发性、随机性和规律复杂性等特点[4]。仅使用ARIMA模型对股票价格进行预测很显然无法取得很好效果,Zhang[5]在2003年提出ARIMA与LSTM神经网络模型组成混合模型可大幅提高预测精度,他认为以往传统的预测模型,例如ARIMA,是一种线性模型,擅长处理时间序列中的线性部分,LSTM神经网络模型是一直非线性模型,可以更好地处理时间序列中的非线性部分,ARIMA-LSTM混合模型便是这一思想的重要成果之一。

本文将以中国石油、中国石化两家公司近9年的当日股票交易收盘价为数据集,使用引入注意力机制的ARIMA-LSTM模型进行预测,并将预测结果与ARIMA模型、LSTM模型的预测结果进行对比。

2 模型介绍

2.1 ARIMA模型

ARIMA模型,即差分整合移动平均自回归模型,是时间序列预测常用的一种模型。

ARIMA(p,d,q),其中AR是自回归,p为自回归项数;MA为移动平均,q为移动平均项数;d为使非平稳的时间序列变为平稳的时间序列需要进行的差分次数。

ARIMA模型的表现形式为[5]:

[yt=μ+i=1pγiyt-i+εt+i=1qθiεt-1]           (1)

式中:[yt]—当前值;

[μ]—常数项;

[p]—自回归的阶数;

[q]—移动平均的阶数;

[εt]—随机扰动项序列;

2.2 Augmented Dicky-Fuller(ADF)检验

在使用ARIMA模型时需要所输入的时间序列是平稳的,所以在输入之前,需对时间序列进行检测,ADF检验是一种比较常用的统计检测方法。

在一个自回归过程中:[yt=byt-1+a+εt],如果滞后项系数b=1,则称为单位根。通过ADF检验判断序列中是否存在单位根,若不存在单位根,则序列平稳;否则,序列不平稳。

通过差分之后ADF检验,可以判断序列经过几次后形成平稳的时间序列,从而得出差分次数d。

2.3 LSTM模型

1997年LSTM模型的提出很好地解决了RNN会出现梯度爆炸和消失的问题,LSTM模型使用了若干特殊的“门”,分别为输入门、输出门和遗忘门。LSTM模型结构如图1所示。

LSTM模型前向计算方法可表示为[1]:

输入门:

[it=σ(Wxixt+Whiht-1+WCiCt-1+bi)]        (2)

遗忘门:

[ft=σ(Wxfxt+Whfht-1+WCfCt-1+bf)]              (3)

细胞状态:

[Ct=ft⊙Ct-1+it⊙tanh(WxCxt+WhCht-1+bC)]     (4)

输出门:

[Ot=σ(WxOxt+WhOht-1+WCOCt-1+bO)]       (5)

隐藏层状态:

[ht=Ot⊙tanh(Ct)]                      (6)

以上式中:[W]—门的权重向量;

[b]—偏置量;

[σ]—sigmoid激活函数;

[tanh]—双曲正切激活函数;

2.4 AT-LSTM模型

Qin认为时序预测问题可能会有众多的外部变量,网络可能无法精确地选择相关变量。同时,Qin受到一些人类注意力的启发,认为双阶段的注意力模型能很好地模拟人类行为,并将这种双阶段注意力机制引入到RNN中,形成DA-RNN(Dual-Stage Attention-Based RNN) 模型[3]。

整个模型可以分为两部分,第一部分引入input attention mechanism对每一时刻的外部输入自适应性地提取相关性,结构如图2[3];第二部分引入temporal attention mechanism捕獲encoder的长期时序依赖信息,结构如图3[3]。

模型的输入是[(x1,x2...xt)],每个x都是包含n个特征的向量,给定一个目标序列[(y1,y2...yt-1)] ,通过[yt∧=F(y1,y2...yt-1,x1,x2...xt)],得到最终的预测值,相当于用多变量来预测单变量。

本文所使用的AT-LSTM使用DA-RNN的temporal attention  mechanism为seq2seq的decoder引入注意力机制,从而避免seq2seq因过长序列导致性能下降。

在temporal attention  mechanism中,需要将t时间之前的隐藏层状态[dt-1]和LSTM单元的细胞状态[C't-1]作为该层的输入,通过计算得到:

[lit=vTdtanh(Wd[dt-1;C't-1]+Udhi)] 1≤i≤T           (7)

通过 softmax 层,我们可以得到第 i 个decoder隐藏状态[hi]和注意力权重[βit]。

[βit=exp(lit)j=1Texp(ljt)]          (8)

解码器对所有的decoder的隐藏状态按照权重求和得到带有注意力的隐藏层状态[Ct]。

[Ct=k=1Tβkthk]               (9)

将[[C1],[C2]...[Ct]]和目标序列结合起来得到:

[y~t-1=Wd[yt-1;Ct-1]+b~]         (10)

利用新计算得到的[y~t-1],更新decoder的隐藏层状态。

[dt=LSTM(dt-1,y~t-1)]             (11)

最终可以计算出T时刻的预测值

[y~T=vTy(Wy[dT;CT]+bW)+bv]             (12)

2.5 ARIMA和AT-LSTM组合模型

组合模型由两部分组成,第一部分为ARIMA模型,利用ARIMA模型对时间序列进行初步预测,生成预测结果[T1]和残差序列[T2];第二部分为AT-LSTM模型,将第一部分生成的残差序列[T1]作为AT-LSTM模型的输入,利用AT-LSTM模型进行处理和预测,得到新的预测结果[T3],将两次预测结果[T1]和[T3]相结合便得到ARIMA和AT-LSTM组合模型的预测结果。

2.6 模型评估

使用均方差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)和平均绝对百分比误差(MAPE)对模型进行评估。

已知真实值序列[[y1,y2...yn]],运行模型后得到预测值序列[[y∧1,y∧2...y∧n]]。

对于MSE有:

[MSE=1ni=1n(y∧i-yi)]          (13)

误差越大,MSE值越大,反之,模型的预测结果越精确。

对于RMSE有:

[RMSE=1ni=1n(y∧i-yi)]      z     (14)

RMSE作为 MSE 的一种辅助评价方法,适用于某些预测值损失更大的情况。

对于MAE有:

[MAE=1ni=1n|y∧i-yi|]             (15)

利用MAE来测量观测值与真实值之间的绝对误差的平均值。

对于MAPE有:

[MAPE=100%ni=1n|y∧i-yiyi|]             (16)

3 实验

3.1 原始数据描述

对ARIMA模型,预先划分训练集和验证集。在AT-LSTM模型中,通过设定windows_size,采用窗口滑动的方式生成训练集和验证集。例如windows_size = 4,那么将前4个样本数据作为训练集训练模型,并预测第5个值,而第5个样本数据作为验证集对预测值进行检验。

3.2 建立ARIMA模型及线性预测

利用Augmented Dicky-Fuller(ADF)检验对两个原始数据集进行检验,结果如下:

由ADF检验结果得,两个数据集均需进行差分,对一阶差分进行ADF检验,结果如下:

从原始数据集一阶差分ADF检验结果可以得出,两个数据集在一阶差分后已平稳,无须再进行拆分。

通过绘制两个数据集一阶差分后的自相关(ACF)图和偏自相关(PACF)图确定ARIMA模型的自回归的阶数p和移动平均的阶数q的可能组合,再利用循环函数,迭代尝试不同组合AIC值,选取AIC值最小的组合。

对中国石油数据集进行预测使用ARIMA(5,1,0)模型,对中国石化数据集进行预测使用ARIMA(1,1,3)模型。

3.3 利用AT-LSTM进行非线性预测

通过ARIMA对数据集进行线性预测,生成了残差序列,并将残差序列作为非线性预测的输入序列代入到AT-LSTM模型中。

在AT-LSTM首轮训练和预测中,使用了以下可调参数:

实验只对收盘价进行预测,所以模型的输入和输出维度均为1,AT-LSTM的层数设置为了1层。初始学习率设置为0.001,并使用Adam算法在训练过程中对学习率进行动态调整。

预测结果如图所示。

从预测结果图片得出,两组ARIMA和AT-LSTM组合模型对数据集的拟合程度很好。接下来通过设置不同可调参数的組合,利用MSE、RMSE、MAE和MAPE对模型进行评估,并将ARIMA、LSTM和组合模型的评价结果进行对比。结果如表格所示。

从表5可以总结出window_size和hidden_size的变化对模型的预测精度影响较其他参数大。Window_size的变化直接影响到AT-LSTM模型训练集和验证集的大小,对AT-LSTM的训练产生影响。Hidden_size决定了AT-LSTM模型的复杂度,hidden_size越大,AT-LSTM模型越复杂。所以选择更加合适的window_size和hidden_size将使得组合模型的预测精度进一步提高。

4 结束语

实验结果表明,ARIMA和AT-LSTM组合模型较单个模型,预测误差平均降低4倍。本次实验使用的数据集大小为千位级,后续可尝试使用更大数据集对模型进行验证;本次实验仅仅只是对股票交易中的“收盘价”进行了预测,对股票交易记录的其他维度进行预测也具有价值。实验结果也表明单独使用LSTM模型在某种情况预测精度比ARIMA和AT-LSTM组合模型更高,说明该模型还有改进空间,可以进一步完善,并且该组合模型在股票交易以外的其他领域是否也具有较高的预测精度还有待考证。

参考文献:

[1] Hochreiter S,Schmidhuber J.Long short-term memory[J].Neural Computation,1997,9(8):1735-1780.

[2] Bahdanau D,Cho K,Bengio Y.Neural machine translation by jointly learning to align and translate[EB/OL].2014:arXiv:1409.0473[cs.CL].https://arxiv.org/abs/1409.0473

[3] Qin Y,Song D J,Chen H F,et al.A dual-stage attention-based recurrent neural network for time series prediction[C]//Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence.August 19-26,2017.Melbourne,Australia.California:International Joint Conferences on Artificial Intelligence Organization,2017.

[4] 原云霄,王宝海.基于ARIMA模型对我国服务价格指数的预测[J].数学的实践与认识,2018,48(7):130-137.

[5] Zhang G P.Time series forecasting using a hybrid ARIMA and neural network model[J].Neurocomputing,2003,50:159-175.

收稿日期:2021-01-24

作者简介:张怡(1993—) ,男,湖北荆州人,学士,研究方向为数据科学与工程。