基于
SSA
ARIMA
BPNN
组合
模型
黄金价格
预测
Computer Science and Application 计算机科学与应用计算机科学与应用,2023,13(8),1538-1546 Published Online August 2023 in Hans.https:/www.hanspub.org/journal/csa https:/doi.org/10.12677/csa.2023.138152 文章引用文章引用:陈卓雅,成灵妍.基于 SSA-ARIMA-BPNN 组合模型的黄金价格预测J.计算机科学与应用,2023,13(8):1538-1546.DOI:10.12677/csa.2023.138152 基于基于SSA-ARIMA-BPNN组合模型的组合模型的 黄金价格预测黄金价格预测 陈卓雅陈卓雅*,成灵妍成灵妍 南京理工大学数学与统计学院,江苏 南京 收稿日期:2023年7月10日;录用日期:2023年8月10日;发布日期:2023年8月17日 摘摘 要要 考虑到金价预测具有极大的实用价值,建立了基于奇异谱分析考虑到金价预测具有极大的实用价值,建立了基于奇异谱分析(SSA)的黄金价格预测组合模型。由于黄金的黄金价格预测组合模型。由于黄金价格数据具有尖峰厚尾的特点,噪声含量高,首先使用奇异谱分析方法对数据进行分解与重构。然后分别价格数据具有尖峰厚尾的特点,噪声含量高,首先使用奇异谱分析方法对数据进行分解与重构。然后分别对原始数据和重构数据建立单一对原始数据和重构数据建立单一ARIMA模型、单一模型、单一BP神经网络模型,比较预测结果发现奇异谱分析可以消神经网络模型,比较预测结果发现奇异谱分析可以消除数据的噪声,提高模型的预测精度。由于单一模型具有一定的局限性,建立了除数据的噪声,提高模型的预测精度。由于单一模型具有一定的局限性,建立了SSA-ARIMA(3,1,0)-BPNN组合模型进行黄金价格预测。实验结果表明,该组合模型有效提取了数据的信息,预测精度整体优于单组合模型进行黄金价格预测。实验结果表明,该组合模型有效提取了数据的信息,预测精度整体优于单一模型。一模型。关键词关键词 黄金价格预测,奇异谱分析,黄金价格预测,奇异谱分析,ARIMA模型,模型,BP神经网络,神经网络,SSA-ARIMA-BPNN组合模型组合模型 Gold Price Prediction Based on SSA-ARIMA-BPNN Combination Model Zhuoya Chen*,Lingyan Cheng College of Mathematics and Statistics,Nanjing University of Science and Technology,Nanjing Jiangsu Received:Jul.10th,2023;accepted:Aug.10th,2023;published:Aug.17th,2023 Abstract Considering the great practical value of gold price prediction,a gold price prediction combination model based on singular spectrum analysis(SSA)was established.Due to the characteristic of sharp peaks and thick tails in gold price data,the noise content is high,singular spectrum analysis *第一作者。陈卓雅,成灵妍 DOI:10.12677/csa.2023.138152 1539 计算机科学与应用 was first used to decompose and reconstruct the data.Then,a single ARIMA model and a single BP neural network model were established for the original and reconstructed data respectively.Comparing the prediction results,it was found that singular spectrum analysis can eliminate data noise and improve the prediction accuracy of the model.Due to the limitations of the single model,the SSA-ARIMA(3,1,0)-BPNN combination model is established to forecast the gold price.The ex-perimental results show that the combined model effectively extracts the information of the data,and the overall prediction accuracy is better than the single model.Keywords Gold Price Forecast,Singular Spectrum Analysis,ARIMA,BPNN,SSA-ARIMA-BPNN Composite Model Copyright 2023 by author(s)and Hans Publishers Inc.This work is licensed under the Creative Commons Attribution International License(CC BY 4.0).http:/creativecommons.org/licenses/by/4.0/1.引言引言 黄金是一种历史悠久的贵金属。从装饰品到一般等价物,再到如今世界通行、具有良好避险功能与保值作用的投资品,黄金在世界经济体系中占有重要的地位,其价格受到国内外众多学者的关注,可以参看鲁思瑶1建立的 ARIMA(2,1,0)模型、Parminder Kaur 2比较 ARIMA(1,1,0)模型与人工神经网络模型、曾黎等人3组合 ARIMA(2,1,1)模型与 BP 神经网络模型等进行的金价预测研究。奇异谱分析(Singular Spectrum Analysis,SSA)可以有效分解非线性时间序列数据,将数据写成轨迹矩阵的形式后,再对该矩阵进行分解、重构,所得到的重构时间序列既保持了原序列基本信息,又剔除了噪声的干扰,从而提高模型预测结果的准确度。张一等人4使用 SSA 方法对汇率数据进行重构,发现SSA 方法在提取时间序列主成分、降噪、预测等方面具有极佳的应用效果。吕红5等人使用 SSA 方法重构证券数据,有效去除了数据噪声并提高了预测准确度。Franz Ruch 等人6将月度通胀的数据分解为趋势、振荡和噪声分量,以研究南非整体通胀的趋势和周期性。求和自回归移动平均模型(Autoregressive Integrated Moving Average Model,ARIMA)是一种广泛应用于短期预测的时间序列模型,但是其长期预测效果不佳,对数据的非线性趋势提取能力较弱。Wanle Chi 7建立 ARIMA(13,1,13)模型对黄金价格进行拟合预测,获得了很好的静态预测效果。许立平8等人在初步建立的 ARIMA(11,1,11)模型基础上剔除不显著阶数,得到的疏系数模型 ARIMA(1,11),1,(1,11)提高了预测精度。现如今,越来越多的学者开始把神经网络融入时间序列的研究中,并结合经典时间序列模型,建立拟合效果更精确、预测值误差更小的组合模型进行预测。程铭9发现 ARIMA(0,2,4)-GM(1,1)-BPNN 组合模型可以提高国际黄金价格长期预测的准确性。熊志斌10使用 ARIMA 模型预测 GDP 数据的线性部分,再使用 BP 神经网络(Back Propagation Neural Network,BPNN)对非线性残差部分进行补充,使预测结果更为准确。Werner Kristjanpoller 等人11使用 ANN-GARCH 组合模型显著提高了对黄金现货价格与期货价格波动率的预测效果。G.Peter Zhang 12组合 ARIMA 模型和 ANN 模型以捕捉时间序列数据的关系,经Wolf 太阳黑子数据、加拿大猞猁数据和英镑美元汇率数据三个著名数据集检验后发现组合方法能够有效提高预测效果。Open AccessOpen Access陈卓雅,成灵妍 DOI:10.12677/csa.2023.138152 1540 计算机科学与应用 综上所述,许多有关金价预测的研究只是基于原始数据建立了预测模型,而黄金价格数据往往具有尖峰厚尾的特点,数据的噪声会对模型预测结果的准确性产生较大影响;同时,单一预测模型具有较大的局限性。针对以上问题,本文首先采用奇异谱分析的方法对金价数据进行分解与重构,以降低噪声对模型结果的影响。然后对原始数据和重构数据分别建立 ARIMA 模型与 BP 神经网络模型,比较预测结果的误差以验证奇异谱分析的有效性。最后采取方差倒数法确定各单一模型权重,对黄金价格重构序列建立 SSA-ARIMA-BPNN 组合模型,进行黄金价格预测。2.研究理论简介研究理论简介 本文中,我们用随机变量组12,tXXX表示一个随机事件的时间序列,简记为,tX tT,用12,nx xx表示该序列的前 n 个有序观察值。2.1.奇异谱分析奇异谱分析 SSA 奇异谱分析是一种有效的处理非线性时间序列数据的方法,它可以将数据的主要成分提取出来,减弱噪声数据的干扰。进行奇异谱分析的具体步骤如下:(1)构造轨迹矩阵 将时间序列的 N 个有序观察值12,Nx xx排成轨迹矩阵,N 为序列长度。选择窗口长度 L(L,iU与iV的列向量分别为iA的左右特征向量。(3)分组 首先记12:,dSA AA=,将 S 划分为 M 个互不相交的非空子集12,MS SS,即1jj MSS=;此时我们可以轨迹矩阵 A 表示为 M 个矩阵的和,形式为:12MADDD=+,其中1Md,()1,2,ijjiASDAjM=。对于给定的分组矩阵jD,其在总矩阵 A 中的贡献率占比为 1ijiDiMiA=。(4)重构 将求得的分组矩阵贡献率按照降序排列,从高至低选择累计贡献率达到 95%的特征值所对应的分组矩阵jD。然后使用对角平均法重构时间序列,假设矩阵 B 为一个分组矩阵jD,其元素为()1,1ijbiLjK,令()*min,LL K=;()*max,KL K=;若LK,则*ijijbb=,否则*ijjibb=。最后将*ijb代入公式(2)中,将矩阵 B 转化为序列12,Nb bb。令重构序列为12,Ny yy,则1tkkMyb=。公式(2)如下所示:陈卓雅,成灵妍 DOI:10.12677/csa.2023.138152 1541 计算机科学与应用 *,11*,1*11*,111,1;1,;1,.1p p MpLkkp p MpNKp p Mp k KbkLkbbLkKLbkkNNk+=+=+=+=+(2)事实上,经过奇异谱分解,,1iit 序列前几个特征值对应的分量中往往包含了原始序列的主要信息,其余部分可以视为噪声。我们通过选择合适的特征值数量 q(1qt),把1,q序列所对应的分量归为主要信息组,,qt序列所对应的分量归为噪声组,最后使用主要信息组重构得到的新序列作为模型的输入序列,进行建模研究。2.2.ARIMA 模型模型 ARIMA 模型是针对差分平稳序列建立的时间序列模型,即差分运算与 ARIMA 模型的组合。它可以有效地提取差分平稳序列的线性趋势,使用该模型得到的短期预测值精确度较高;但是随着预测期数的增加,模型预测值的误差会逐渐增大。ARIMA(p,d,q)模型的模型结构为:()()()()()()2,0,0,0,.dtttttsstBxBEVarEstE xst=(3)式中,tx表示该序列的第 t 个有序观察值,()1ddB=;()11ppBBB=为 ARMA(p,q)模型的 p 阶自回归系数多项式;()11qqBBB=为 ARMA(p,q)模型的 q 阶移动平均系数多项式。对 差分平稳序列可以拟合自回归移动平均(ARMA)模型,称 ARIMA(p,d,q)模型为求和自回归移动平均模型14;ARIMA 模型的实质就是差分运算与 ARMA 模型的组合。建立 ARIMA 模型具体步骤如下:(1)数据预处理:检验数据的平稳性与纯随机性,若数据非平稳,则进行差分运算后再进行检验。(2)参数 p、d、q 的确定:本文采用 R 语言中的 auto.arima 函数对金价数据进行建模,该函数可以自动在约束范围内根据 AIC、AICc、BIC 准则选取模型的最优系数,确定 ARIMA 模型中 p、d、q 的数值。(3)模型检验:模型拟合完成后检验模型误差是否为白噪声,以判断模型信息提取是否充分。(4)预测:使用通过检验的模型对时间序列进行预测。2.3.BP 神经网络神经网络 人工神经网络是一种在生物神经网络基础上进行抽象与模拟,集成了激励函数、损失函数,可以自动调整权重以优化输出值的数学模型。其中,BP 神经网络应用较为广泛,它可以很好地提取序列的非线性趋势,具有自学习和自适应能力,在非线性建模上有广泛的应用。但是也会出现学习速度慢、难以确定网络结构、模型推广能力有限等缺点。一个完整的 BP 神经网络模型一般包括三部分,如图 1 所示。即输入层、隐含层、输出层,每层中包含若干节点(神经元),层与层之间的节点通过权重连接,层内各节点互不干扰。其中,输入层为信息的输入端,隐含层为信息的处理端,输出层为信息的输出端。BP 神经网络模型的流程为以下三步:(1)正向传播:让信息从输入层进入网络,经过每一层的运算后得到输出层结果。(2)反向传播:将输出结果与真实值之间的误差反向传播,通过梯度下降法得到权重的修正值。陈卓雅,成灵妍 DOI:10.12677/csa.2023.138152 1542 计算机科学与应用 (3)训练网络:正向传播与反向传播循环进行,不断更新参数使模型的计算结果尽可能的接近真实值。研究表明,一个仅包含一层隐含层的三层 BP 神经网络,在包含足够多的隐含层节点时,可以以任意精度逼近一个非线性函数15。在一个包含 m 个输入节点、n 个隐含节点、q 个输出节点的三层 BP 神 经网络(如图 1)中,隐含层节点输出值为:()11,1,2,mjijijixw xbjn=+=。输出层节点输出值为:21,1,2,nkjkjkjywxb kq=+=,式中ijw与jkw为各节点权重,()x为激励函数。激励函数通常有 tansig函数、Sigmod 函数、ReLu 函数等,本文选用 tansig 函数:()()22 1e1xtansig x=+。Figure 1.BP neural network with m-n-q structure 图图 1.m-n-q 结构的 BP 神经网络 2.4.组合模型与模型评价组合模型与模型评价 组合模型是一种通过选取合适的权重对多种预测方法得到的结果进行加权平均,减少单一模型预测可能存在的误差并提高模型预测能力的综合模型。常用的组合方法为方差倒数法16。分别记 ARIMA 模型和 BP 神经网络模型的预测结果为,ARIMABPYY,组合预测值为12ARIMABPYk Yk Y=+,式中12,k k分别为ARIMA 模型和 BP 神经网络模型的权重,要求121kk+=。设第 i 个模型的第 t 期预测误差为()1,2,3;1,2iteti=,则i的估计值为()()3232211111,1,2itjtitjtkeei=。本文选取均方根误差(RMSE)和平均绝对误差(MAE)评价模型预测效果,其中()211iiNiRMSExxN=,11iiNiMAExxN=,式中 N 为预测结果个数,ix为第 i 个真实值,ix为 第 i 个预测值。3.实证分析实证分析 3.1.奇异谱分析过程奇异谱分析过程 本文使用奇异谱分析对 2000 年 1 月2022 年 7 月的金价数据(共 271 组数据)进行重构,由于金价数陈卓雅,成灵妍 DOI:10.12677/csa.2023.138152 1543 计算机科学与应用 据具有尖峰厚尾的特性且波动性较大,我们可以采用取对数的方法以缩小波动性8,后续处理与建模都基于对数化的金价数据。奇异谱分析中,确定窗口 L 的大小至关重要。若 L 过大,会增加工作量;若 L 过小,对原始序列信息的提取会不充分。本文选取窗口长度 L=12,即将原金价数据分解为 12 个子序列,轨迹矩阵为 12 260的矩阵。各子序列对应的特征值和方差贡献率如表 1 所示,我们发现前四个特征值所对应的重构分量的方差贡献率达到 95%,已经可以充分描述原始数据的信息。因此我们选择前四个分量对原始序列进行重构,如图 2 和图 3 所示,重构序列更为光滑,且反映了原始金价数据的变化趋势。Table 1.Subsequence eigenvalue pre variance contribution rate 表表 1.子序列特征值预方差贡献率 序号 特征值 累计方差贡献率 1 64040.37066975 0.8808177178640756 2 3015.36412108 0.9222913401414288 3 1403.24714362 0.9415917428985678 4 883.48520229 0.9537432874869152 5 762.08273936 0.9642250503544084 6 630.19917526 0.9728928733783394 7 426.27387528 0.9787558872566549 8 381.28478164 0.984000116603052 9 356.99524127 0.9889102651611442 10 307.68324718 0.9931421715784835 11 272.84295638 0.9968948811218628 12 225.75949586 1.0000000000000000 Figure 2.Original sequence 图图 2.原始序列 陈卓雅,成灵妍 DOI:10.12677/csa.2023.138152 1544 计算机科学与应用 Figure 3.Reconstruction sequence 图图 3.重构序列 3.2.模型建立与比较模型建立与比较 3.2.1.ARIMA 模型模型 记对数化的黄金价格数据集为 ld0,经过 SSA 重构的对数化黄金价格数据集为 ld1。我们分别对 ld0和 ld1 建立 ARIMA 模型、BPNN 模型,对 ld1 建立 SSA-ARIMA-BPNN 组合模型。经检验,ld0 与 ld1均为一阶差分平稳。经检验,ld0 可建立 ARIMA(2,1,0)模型,ld1 可建立 ARIMA(3,1,0)模型。分别使用两个模型对未来三期金价进行预测,均方根误差与平均绝对误差如表 2 所示,预测值、相对误差、绝对误差如表 3 所示。我们发现 SSA-ARIMA(3,1,0)模型的预测值误差、均方根误差与平均绝对误差均大幅度小于 ARIMA(2,1,0)模型,这说明奇异谱分析有效地去除了数据集噪声并提取了数据集有效信息,提高了模型预测的精确度。3.2.2.BPNN 模型模型 我们分别对 ld0、ld1 建立 BPNN 模型,使用前 12 期的金价对下一期金价进行预测,即将每 12 期金价延迟构成的数据集作为训练集。首先在 MATLAB 软件中建立一个三层的 BP 神经网络,其中输入层包扩 12 个节点,经实验选取包括 10 个节点的隐含层,输出层包括 1 个节点。设置训练次数为 1000 次,设置学习速率为 0.01,设置训练目标最小误差为 0.00001。然后使用训练完成的 BP 神经网络对未来一期金价进行预测,并采用滚动预测法17将新得到的预测值纳入训练集,完成对未来三期金价的预测。如表 2、表 3 所示,我们比较预测值的相对误差、绝对误差、均方根误差与平均绝对误差,发现SSA-BPNN 模型的前两期预测值误差都要小于 BPNN 模型,第三期误差增大,但 SSA-BPNN 模型的均方根误差与平均绝对误差都要小于 BPNN 模型。这再次说明了使用奇异谱分析对数据进行预处理可以优化模型的预测效果。3.2.3.组合模型组合模型 从过往的研究中,我们知道 ARIMA 模型可以较好地提取数据的线性趋势,而 BPNN 模型可以提取数据的非线性趋势。为了进一步提高模型的预测精确度,我们考虑对 ld1 建立组合模型。采用方差倒数法集成 SSA-ARIMA(3,1,0)模型与 SSA-BPNN 模型的预测结果,得到 SSA-ARIMA(3,1,0)模型的权重为陈卓雅,成灵妍 DOI:10.12677/csa.2023.138152 1545 计算机科学与应用 0.8421,BPNN 模型的权重为 0.1579,使用此权重对模型进行组合,建立 SSA-ARIMA(3,1,0)-BPNN 组合模型。模型预测值及误差如表 2、表 3 所示,我们发现 SSA-ARIMA(3,1,0)-BPNN 组合模型的每期预测值误差与单一 ARIMA 模型、单一 BPNN 模型相比时大时小;但均方根误差与平均绝对误差均小于单一模型。这说明组合模型的稳定性更高,整体预测效果优于单一模型。Table 2.Root-mean-square deviation(RMSE)and Mean absolute error(MAPE)of each model 表表 2.各模型均方根误差(RMSE)与平均绝对误差(MAPE)模型 RMSE MAPE ARIMA(2,1,0)73.94 68.07 SSA-ARIMA(3,1.0)15.28 11.84 BPNN 41.47 38.32 SSA-BPNN 35.29 29.86 SSA-ARIMA(3,1,0)-BPNN 12.26 10.92 Table 3.Predicted values and relative and absolute errors of each model 表表 3.各模型预测值、预测值相对误差与绝对误差 预测时间(月)真实值 预测方法 预测值 绝对误差 相对误差 2022.8 1765.65 ARIMA(2,1,0)1733.76 31.89 0.01806 SSA-ARIMA(3,1.0)1759.03 6.62 0.00375 BPNN 1724.50 41.15 0.02330 SSA-BPNN 1749.50 16.15 0.00910 SSA-ARIMA(3,1,0)-BPNN 1757.52 8.13 0.00460 2022.9 1682.97 ARIMA(2,1,0)1752.74 69.77 0.04146 SSA-ARIMA(3,1.0)1708.35 25.38 0.01508 BPNN 1626.80 56.17 0.03340 SSA-BPNN 1666.00 16.97 0.01010 SSA-ARIMA(3,1,0)-BPNN 1701.66 18.69 0.01110 2022.10 1664.45 ARIMA(2,1,0)1767.00 102.55 0.06161 SSA-ARIMA(3,1.0)1667.98 3.53 0.00212 BPNN 1646.80 17.65 0.01060 SSA-BPNN 1608.00 56.45 0.03390 SSA-ARIMA(3,1,0)-BPNN 1658.50 5.95 0.00360 4.结语结语 本文对黄金价格的预测进行研究,建立了五个不同的模型。比较各模型预测值的误差后发现SSA-ARIMA(3,1,0)-BPNN 模型的预测效果明显优于其他模型,最终选取该模型对黄金价格进行预测,同时得出以下结论:(1)奇异谱分析通过对原始数据的分解与重构,有效提取了数据的主要成分,剔除了噪声干扰,大幅陈卓雅,成灵妍 DOI:10.12677/csa.2023.138152 1546 计算机科学与应用 提高了模型预测值的准确性。金融数据往往具有高噪声的特点,我们在研究此类数据时可以应用 SSA 方法进行数据的预处理。(2)ARIMA-BPNN组合模型综合了ARIMA模型提取数据线性趋势与BP神经网络模型提取数据非线性趋势的优点,整体预测效果显著优于单一模型。组合模型与奇异谱分析的结合,进一步提高了预测精度。基金项目基金项目(1)国家自然科学基金(NNSFC)(12001272);(2)中央高校基本科研业务费专项资金资助(No.30920021145)。参考文献参考文献 1 鲁思瑶,徐美萍.基于 ARIMA 模型的黄金价格实证分析J.西南民族大学学报(自然科学版),2015,41(2):260-264.2 Kaur,P.(2016)Comparison of ARIMA and Artificial Neural Network Models for Forecasting Indian Gold Prices.In-ternational Journal of Advanced Research in Computer and Communication Engineering,5,770-773.3 曾黎,李春.融合线性、非线性模型的黄金价格预测模型研究J.黄金,2013,34(3):7-10.4 张一,惠晓峰.基于奇异谱分析的汇率预测研究J.统计与决策,2012(6):29-31.5 吕红,费文龙,秦伟良.基于奇异谱分析的上证指数预测模型J.南京理工大学学报,2003,27(S1):1-4.6 Ruch,F.and Bester,D.(2013)Towards a Measure of Core Inflation Using Singular Spectrum Analysis.South African Journal of Economics,81,307-329.https:/doi.org/10.1111/j.1813-6982.2012.01340.x 7 Chi,W.L.(2018)Short-Term Forecasting of Gold Price Based on ARMA Model.Advances in Social Science,Educa-tion and Humanities Research,194,521-525.8 许立平,罗明志.基于 ARIMA 模型的黄金价格短期分析预测J.财经科学,2011(1):26-34.9 程铭.关于国际黄金价格的预测方法研究D:硕士学位论文.济南:山东大学,2020.10 熊志斌.基于 ARIMA 与神经网络集成的 GDP 时间序列预测研究J.数理统计与管理,2011,30(2):306-314.11 Kristjanpoller,W.and Minutolo,M.C.(2015)Gold Price Volatility:A Forecasting Approach Using the Artificial Neural Network-GARCH Model.Expert Systems with Applications,42,7245-7251.https:/doi.org/10.1016/j.eswa.2015.04.058 12 Zhang,G.P.(2003)Time Series Forecasting Using a Hybrid ARIMA and Neural Network Model.Neurocomputing,50,159-175.https:/doi.org/10.1016/S0925-2312(01)00702-0 13 李航.统计学习方法M.第 2 版.北京:清华大学出版社,2019:271-276.14 易丹辉,王燕.应用时间序列分析M.第 5 版.北京:中国人民大学出版社,2019:132-136.15 曾濂,马丹頔,刘宗鑫.基于 BP 神经网络改进的黄金价格预测J.计算机仿真,2010,27(9):200-203.16 刘纯,范高峰,王伟胜,戴慧珠.风电场输出功率的组合预测模型J.电网技术,2009,33(13):74-79.17 刘海玥,白艳萍.时间序列模型和神经网络模型在股票预测中的分析J.数学的实践与认知,2011,41(4):14-19.