Computer Science and Application
Vol. 13  No. 08 ( 2023 ), Article ID: 70746 , 9 pages
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 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 experimental 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太阳黑子数据、加拿大猞猁数据和英镑–美元汇率数据三个著名数据集检验后发现组合方法能够有效提高预测效果。

综上所述,许多有关金价预测的研究只是基于原始数据建立了预测模型,而黄金价格数据往往具有尖峰厚尾的特点,数据的噪声会对模型预测结果的准确性产生较大影响;同时,单一预测模型具有较大的局限性。针对以上问题,本文首先采用奇异谱分析的方法对金价数据进行分解与重构,以降低噪声对模型结果的影响。然后对原始数据和重构数据分别建立ARIMA模型与BP神经网络模型,比较预测结果的误差以验证奇异谱分析的有效性。最后采取方差倒数法确定各单一模型权重,对黄金价格重构序列建立SSA-ARIMA-BPNN组合模型,进行黄金价格预测。

2. 研究理论简介

本文中,我们用随机变量组 X 1 , X 2 , , X t , 表示一个随机事件的时间序列,简记为 { X t , t T } ,用 x 1 , x 2 , , x n 表示该序列的前n个有序观察值。

2.1. 奇异谱分析SSA

奇异谱分析是一种有效的处理非线性时间序列数据的方法,它可以将数据的主要成分提取出来,减弱噪声数据的干扰。进行奇异谱分析的具体步骤如下:

(1) 构造轨迹矩阵

将时间序列的N个有序观察值 x 1 , x 2 , , x N 排成轨迹矩阵,N为序列长度。选择窗口长度L(L < N/3),将序列滞后排列为L×K的轨迹矩阵A,其中 K = N L + 1

A = ( x 1 x 2 x K x 2 x 3 x K + 1 x L x L + 1 x N ) (1)

(2) SVD分解

对轨迹矩阵A进行奇异值分解 [13] ,即将L × K阶矩阵A分解为 A = U Σ V T 的形式,其中 U U T = I V V T = I ,U为L阶正交阵,V为K阶正交阵,I为单位矩阵; Σ = diag ( σ 1 , σ 2 , , σ t ) t = min { L , K } σ i = λ i ( 1 i t ) 称为矩阵A的奇异值,其中 { λ i , 1 i t } ( λ 1 λ 2 λ t 0 ) 为矩阵 A T A 的特征值序列。此时原矩阵被分解为 A = A 1 + A 2 + + A d A i = λ i U i V i T ( i = 1 , 2 , , d ) d = rank ( A ) = max { i : λ i > 0 } U i V i 的列向量分别为 A i 的左右特征向量。

(3) 分组

首先记 S : = { A 1 , A 2 , , A d } ,将S划分为M个互不相交的非空子集 S 1 , S 2 , , S M ,即 S = 1 j M S j ;此时我们可以轨迹矩阵A表示为M个矩阵的和,形式为:,其中 1 < M < d D j = A i S j A i ( j = 1 , 2 , , M ) 。对于给定的分组矩阵 D j ,其在总矩阵A中的贡献率占比为 A i D j λ i / i = 1 M λ i

(4) 重构

将求得的分组矩阵贡献率按照降序排列,从高至低选择累计贡献率达到95%的特征值所对应的分组矩阵 D j 。然后使用对角平均法重构时间序列,假设矩阵B为一个分组矩阵 D j ,其元素为

b i j ( 1 i L , 1 j K ) ,令 L * = min ( L , K ) K * = max ( L , K ) ;若 L < K ,则 b i j * = b i j ,否则 b i j * = b j i 。最后将 b i j * 代入公式(2)中,将矩阵B转化为序列 { b 1 , b 2 , , b N } 。令重构序列为 y 1 , y 2 , , y N ,则 y t = k = 1 M b k 。公式

(2)如下所示:

b k = { 1 k p = 1 k b p , p M + 1 * , 1 k L * ; 1 L * p = 1 L * b p , p M + 1 * , L * k K * ; 1 N k + 1 p = k K * + 1 N K * + 1 b p , p M + 1 * , k * k N . (2)

事实上,经过奇异谱分解, { λ i , 1 i t } 序列前几个特征值对应的分量中往往包含了原始序列的主要信息,其余部分可以视为噪声。我们通过选择合适的特征值数量q ( 1 < q < t ),把 λ 1 , , λ q 序列所对应的分量归为主要信息组, λ q , , λ t 序列所对应的分量归为噪声组,最后使用主要信息组重构得到的新序列作为模型的输入序列,进行建模研究。

2.2. ARIMA模型

ARIMA模型是针对差分平稳序列建立的时间序列模型,即差分运算与ARIMA模型的组合。它可以有效地提取差分平稳序列的线性趋势,使用该模型得到的短期预测值精确度较高;但是随着预测期数的增加,模型预测值的误差会逐渐增大。ARIMA(p,d,q)模型的模型结构为:

{ Φ ( B ) d x t = θ ( B ) ε t , E ( ε t ) = 0 , V a r ( ε t ) = σ ε 2 , E ( ε t ε s ) = 0 , s t , E ( x s ε t ) = 0 , s < t . (3)

式中, x t 表示该序列的第t个有序观察值, d = ( 1 B ) d Φ ( B ) = 1 Φ 1 B Φ p B p 为ARMA(p,q)模型的p阶自回归系数多项式; θ ( B ) = 1 θ 1 B θ q B q 为ARMA(p,q)模型的q阶移动平均系数多项式。对

差分平稳序列可以拟合自回归移动平均(ARMA)模型,称ARIMA(p,d,q)模型为求和自回归移动平均模型 [14] ;ARIMA模型的实质就是差分运算与ARMA模型的组合。建立ARIMA模型具体步骤如下:

(1) 数据预处理:检验数据的平稳性与纯随机性,若数据非平稳,则进行差分运算后再进行检验。

(2) 参数pdq的确定:本文采用R语言中的auto.arima函数对金价数据进行建模,该函数可以自动在约束范围内根据AIC、AICc、BIC准则选取模型的最优系数,确定ARIMA模型中pdq的数值。

(3) 模型检验:模型拟合完成后检验模型误差是否为白噪声,以判断模型信息提取是否充分。

(4) 预测:使用通过检验的模型对时间序列进行预测。

2.3. BP神经网络

人工神经网络是一种在生物神经网络基础上进行抽象与模拟,集成了激励函数、损失函数,可以自动调整权重以优化输出值的数学模型。其中,BP神经网络应用较为广泛,它可以很好地提取序列的非线性趋势,具有自学习和自适应能力,在非线性建模上有广泛的应用。但是也会出现学习速度慢、难以确定网络结构、模型推广能力有限等缺点。

一个完整的BP神经网络模型一般包括三部分,如图1所示。即输入层、隐含层、输出层,每层中包含若干节点(神经元),层与层之间的节点通过权重连接,层内各节点互不干扰。其中,输入层为信息的输入端,隐含层为信息的处理端,输出层为信息的输出端。BP神经网络模型的流程为以下三步:

(1) 正向传播:让信息从输入层进入网络,经过每一层的运算后得到输出层结果。

(2) 反向传播:将输出结果与真实值之间的误差反向传播,通过梯度下降法得到权重的修正值。

(3) 训练网络:正向传播与反向传播循环进行,不断更新参数使模型的计算结果尽可能的接近真实值。

研究表明,一个仅包含一层隐含层的三层BP神经网络,在包含足够多的隐含层节点时,可以以任意精度逼近一个非线性函数 [15] 。在一个包含m个输入节点、n个隐含节点、q个输出节点的三层BP神

经网络(如图1)中,隐含层节点输出值为: x j = σ ( i = 1 m w i j [ 1 ] x i + b j ) , j = 1 , 2 , , n 。输出层节点输出值为: y k = j = 1 n w j k [ 2 ] x j + b k , k = 1 , 2 , , q ,式中 w i j w j k 为各节点权重, σ ( x ) 为激励函数。激励函数通常有tansig函数、Sigmod函数、ReLu函数等,本文选用tansig函数: t a n s i g ( x ) = 2 / ( 1 + e 2 x ) 1

Figure 1. BP neural network with m-n-q structure

图1. m-n-q结构的BP神经网络

2.4. 组合模型与模型评价

组合模型是一种通过选取合适的权重对多种预测方法得到的结果进行加权平均,减少单一模型预测可能存在的误差并提高模型预测能力的综合模型。常用的组合方法为方差倒数法 [16] 。分别记ARIMA模型和BP神经网络模型的预测结果为 Y A R I M A , Y B P ,组合预测值为 Y Σ = k 1 Y A R I M A + k 2 Y B P ,式中 k 1 , k 2 分别为ARIMA模型和BP神经网络模型的权重,要求 k 1 + k 2 = 1 。设第i个模型的第t期预测误差为

e i t ( t = 1 , 2 , 3 ; i = 1 , 2 ) ,则 λ i 的估计值为 k ^ i = ( t = 1 3 e i t 2 ) 1 j = 1 2 ( t = 1 3 e j t 2 ) 1 , i = 1 , 2

本文选取均方根误差(RMSE)和平均绝对误差(MAE)评价模型预测效果,其中

R M S E = 1 N i = 1 N ( x i x ^ i ) 2 M A E = 1 N i = 1 N | x i x ^ i | ,式中N为预测结果个数, x i 为第i个真实值, x ^ i

i个预测值。

3. 实证分析

3.1. 奇异谱分析过程

本文使用奇异谱分析对2000年1月~2022年7月的金价数据(共271组数据)进行重构,由于金价数据具有尖峰厚尾的特性且波动性较大,我们可以采用取对数的方法以缩小波动性 [8] ,后续处理与建模都基于对数化的金价数据。

奇异谱分析中,确定窗口L的大小至关重要。若L过大,会增加工作量;若L过小,对原始序列信息的提取会不充分。本文选取窗口长度L = 12,即将原金价数据分解为12个子序列,轨迹矩阵为12 × 260的矩阵。各子序列对应的特征值和方差贡献率如表1所示,我们发现前四个特征值所对应的重构分量的方差贡献率达到95%,已经可以充分描述原始数据的信息。因此我们选择前四个分量对原始序列进行重构,如图2图3所示,重构序列更为光滑,且反映了原始金价数据的变化趋势。

Table 1. Subsequence eigenvalue pre variance contribution rate

表1. 子序列特征值预方差贡献率

Figure 2. Original sequence

图2. 原始序列

Figure 3. Reconstruction sequence

图3. 重构序列

3.2. 模型建立与比较

3.2.1. ARIMA模型

记对数化的黄金价格数据集为ld0,经过SSA重构的对数化黄金价格数据集为ld1。我们分别对ld0ld1建立ARIMA模型、BPNN模型,对ld1建立SSA-ARIMA-BPNN组合模型。经检验,ld0ld1均为一阶差分平稳。经检验,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模型

我们分别对ld0ld1建立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)模型的权重为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)

Table 3. Predicted values and relative and absolute errors of each model

表3. 各模型预测值、预测值相对误差与绝对误差

4. 结语

本文对黄金价格的预测进行研究,建立了五个不同的模型。比较各模型预测值的误差后发现SSA-ARIMA(3,1,0)-BPNN模型的预测效果明显优于其他模型,最终选取该模型对黄金价格进行预测,同时得出以下结论:

(1) 奇异谱分析通过对原始数据的分解与重构,有效提取了数据的主要成分,剔除了噪声干扰,大幅提高了模型预测值的准确性。金融数据往往具有高噪声的特点,我们在研究此类数据时可以应用SSA方法进行数据的预处理。

(2) ARIMA-BPNN组合模型综合了ARIMA模型提取数据线性趋势与BP神经网络模型提取数据非线性趋势的优点,整体预测效果显著优于单一模型。组合模型与奇异谱分析的结合,进一步提高了预测精度。

基金项目

(1) 国家自然科学基金(NNSFC) (12001272);

(2) 中央高校基本科研业务费专项资金资助(No.30920021145)。

文章引用

陈卓雅,成灵妍. 基于SSA-ARIMA-BPNN组合模型的黄金价格预测
Gold Price Prediction Based on SSA-ARIMA-BPNN Combination Model[J]. 计算机科学与应用, 2023, 13(08): 1538-1546. https://doi.org/10.12677/CSA.2023.138152

参考文献

  1. 1. 鲁思瑶, 徐美萍. 基于ARIMA模型的黄金价格实证分析[J]. 西南民族大学学报(自然科学版), 2015, 41(2): 260-264.

  2. 2. Kaur, P. (2016) Comparison of ARIMA and Artificial Neural Network Models for Forecasting Indian Gold Prices. International Journal of Advanced Research in Computer and Communication Engineering, 5, 770-773.

  3. 3. 曾黎, 李春. 融合线性、非线性模型的黄金价格预测模型研究[J]. 黄金, 2013, 34(3): 7-10.

  4. 4. 张一, 惠晓峰. 基于奇异谱分析的汇率预测研究[J]. 统计与决策, 2012(6): 29-31.

  5. 5. 吕红, 费文龙, 秦伟良. 基于奇异谱分析的上证指数预测模型[J]. 南京理工大学学报, 2003, 27(S1): 1-4.

  6. 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. 7. Chi, W.L. (2018) Short-Term Forecasting of Gold Price Based on ARMA Model. Advances in Social Science, Education and Humanities Research, 194, 521-525.

  8. 8. 许立平, 罗明志. 基于ARIMA模型的黄金价格短期分析预测[J]. 财经科学, 2011(1): 26-34.

  9. 9. 程铭. 关于国际黄金价格的预测方法研究[D]: [硕士学位论文]. 济南: 山东大学, 2020.

  10. 10. 熊志斌. 基于ARIMA与神经网络集成的GDP时间序列预测研究[J]. 数理统计与管理, 2011, 30(2): 306-314.

  11. 11. Kristjan-poller, W. and Minutolo, M.C. (2015) Gold Price Volatility: A Forecasting Approach Using the Artificial Neural Net-work-GARCH Model. Expert Systems with Applications, 42, 7245-7251. https://doi.org/10.1016/j.eswa.2015.04.058

  12. 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. 13. 李航. 统计学习方法[M]. 第2版. 北京: 清华大学出版社, 2019: 271-276.

  14. 14. 易丹辉, 王燕. 应用时间序列分析[M]. 第5版. 北京: 中国人民大学出版社, 2019: 132-136.

  15. 15. 曾濂, 马丹頔, 刘宗鑫. 基于BP神经网络改进的黄金价格预测[J]. 计算机仿真, 2010, 27(9): 200-203.

  16. 16. 刘纯, 范高峰, 王伟胜, 戴慧珠. 风电场输出功率的组合预测模型[J]. 电网技术, 2009, 33(13): 74-79.

  17. 17. 刘海玥, 白艳萍. 时间序列模型和神经网络模型在股票预测中的分析[J]. 数学的实践与认知, 2011, 41(4): 14-19.

  18. NOTES

    *第一作者。

期刊菜单