杨静凌,唐国强,张建文
(桂林理工大学 理学院,广西 桂林 541006)
原油作为基础能源、化工原料和战略物资,是当今世界不可或缺的能源,它不仅对世界各国的政治、经济等方面具有极其重要的作用,而且和人们的生活息息相关。原油价格的波动对世界经济政治形势具有非常重要的意义,对原油价格序列进行分析和预测是国际市场研究的一个重要领域。近年来,国际原油价格骤升骤降,并且原油价格序列具有非线性、非平稳性、多尺度(多个频率)和时变性等复杂特征,对其进行及时有效地预测面临着巨大的困难和挑战。因此,如何有效地对原油价格序列进行预测受到广泛的关注。
目前,原油价格的预测方法较多,归纳起来主要分为3类:统计模型、人工智能模型和组合模型。原油价格预测研究常用的统计模型有回归模型[1]、自回归移动平均(ARIMA)模型[2]、加入季节因子的ARIMA模型[3]、指数函数模型[4]等。统计模型计算量小、过程简单、易于理解,但是这些模型通常忽略原油价格序列的非线性特征,对数据的分布有着较高的要求,并且受主观因素的影响较大,其预测精度不高。因此,传统的统计模型具有一定的局限性。人工智能模型具有强大的自适应、自学习和非线性能力,其对于原油价格序列的复杂特征有较好的跟随能力。为此,有学者将人工智能模型引入原油价格预测中[5-8],预测精度得到了改善。但是单一模型无法刻画出原油价格序列的多重特性,因此,组合模型将是一种有效的选择。Krogh等[9]提出并证明了组合模型的预测精度高于单一模型。许南等[10]基于混沌理论下,提出利用PSO优化BP神经网络,对纽约商品交易市场的原油期货价格数据进行预测,混沌理论下PSO-BP组合模型比单一的BP模型具有较高的拟合度和预测精度。
然而,单一模型和一般组合模型对原油价格序列非线性、非平稳性、多尺度的刻画能力仍无法满足人们对预测精度的高要求。小波分析和经验模态分解(EMD)均能处理数据的非线性、非平稳性和多尺度的数据特征,一些学者提出用小波分析和EMD与人工智能的组合模型来研究原油价格序列。王欣冉等[11]提出用小波包和贝叶斯推断的最小二乘支持向量对石油价格进行预测,该方法更好地改善了石油价格预测模型的运行速度和预测精度。Islam等[12]利用EMD方法对数据序列进行分解,并将此方法与小波分解方法进行对比分析,认为EMD方法更有效。李成等[13]利用EMD和一种改进型变参数神经网络(FNN)结合对国际原油价格序列进行预测,预测效果较之前有了进一步的改善。王书平等[14]将EMD分别和ARIMA和BP模型进行组合,对美国西德克萨斯轻质原油(WTI)价格序列进行预测,该组合模型的预测效果比单一ARIMA和BP优越。而EMD在分解数据的过程中存在模态混叠、自适应性差等缺点,对此,Wu等[15]提出了EEMD方法,有效弥补了EMD的不足。随后,Zhang等[16]利用集合经验模态(EEMD)先将原油价格序列分解成一系列子序列,然后分别建立最小二乘支持向量机模型和广义自回归条件异方差模型对子序列进行预测,并取得了较好的预测效果。
以上EEMD与人工智能的组合模型对原油价格序列的预测研究已经取得较好的结果,但仍存在以下缺陷:EEMD集合求平均的处理过程存在噪声残留和重构误差的现象;目前采用的人工智能模型学习精度不够高、缺少时变特征,不能动态反映原油价格走势特征。这些缺陷导致现有的组合模型预测精度不够高,对此,本文中提出利用互补集合经验模态分解(CEEMD)和Elman-Adaboost神经网络的组合模型,对国际原油价格进行预测。
互补集合经验模态分解(CEEMD)是yeh等[17]在EMD和EEMD的基础上,于2010年提出的一种噪声辅助方法。该方法有效解决了EMD方法中出现的模态混叠问题和EEMD方法的重构误差问题,保留了EMD和EEMD的优点,并能有效减弱冗余噪声。CEEMD分解过程如下:
步骤1先用3次样条插值来分别确定上下包络线序列,然后计算得到上下包络线的均值m1(t),序列(t)-m1(t)得到剩余分量h1(t):
步骤2对新的时间序列h1(t)重复步骤1,直到h1(t)满足EMD分解的2个条件:① 局部极值点和过零点的数目相等或相差1个;②局部最大值的包络和局部最小值的包络平均值在任意时刻均为零。则得到第1个IMF分量,即IMF1。
步骤3用-IMF1可得到新的序列r1(t):
步骤4重复步骤1~3得到的一系列IMF分量和残差分量Res(t):
其中J为IMF分量的个数。
步骤5对重复以上步骤,再次得到一系列IMF分量和残差分量。
1990年,Elman提出了Elman神经网络模型。Elman是具有局部记忆单元和局部反馈连接的递归神经网络。该模型在BP神经网络的基础上多了一层承接层,作为延迟的算子,以达到记忆的目的,系统从而具有时变特性,能直接动态反映数据特征,Elman神经网络分为4层,分别为输入层、隐含层、承接层和输出层[18]。其结构如图1所示。输入层起着信号传输的作用,隐含层的传递函数可采用线性或非线性函数,承接层用于记忆隐含层前一时刻的输出值并返回给网络的输入,输出层起线性加权的作用。
图1 Elman神经网络结构示意图
Elman神经网络的非线性状态空间表达式为:
其中:y、x、u、xc分别代表m维输出结点向量、n维隐含层结点单元向量、r维输入向量、n维反馈状态向量;w3、w2、w1分别代表隐含层到输出层、输入层到隐含层、承接层到隐含层的连接权重;g(·)为输出神经元的传递函数;f(·)为隐含层神经元的传递函数。
Adaboost是一种迭代算法,其核心思想是先对同一个训练样本训练不同的预测器(弱预测器),然后把这些弱预测器集合起来,构成一个更强的预测器(强预测器)。主要步骤为:首先,给出弱学习算法和样本空间,从样本空间中找出m组训练数据,每组训练数据的权重都是1/m。其次,再用弱学习算法迭代运算T次,每次运算后根据预测结果更新训练数据的权值分布,对不能预测的训练个体给予较大的权重,下一次迭代运算时更加关注这些训练个体。T次迭代之后,由弱预测器函数加权得到最终强预测器函数F[19]。Adaboost可以提高任意给定学习算法精度,不仅可以应用于预测问题,也可以应用于分类问题。
Adaboost可以提高Elman神经网络的学习精度。它通过Adaboost算法将Elman神经网络作为弱预测器,测试误差超过0.1的样本作为加强学习的样本,得到一系列弱预测器及对应的权重,对Elman神经网络的样本输出进行反复训练,通过Adaboost算法得到由多个Elman神经网络弱预测器组成的强预测器。Elman-Adaboost步骤如下:
1)数据获取及网络初始化。从Brent原油价格序列经CEEMD分解出的每个分量中随机选取m组训练数据,初始化测试数据分布权值Dt(i)=1/m,根据样本输入输出维数确定神经网络结构,初始化Elman神经网络权值和阈值。
2)Elman弱预测器预测。在训练第t个弱预测器时,使用Elman神经网络对训练数据进行训练,得到预测序列g(t)的预测误差和et:
3)计算预测序列权重。依据预测序列f(t)的预测误差et计算序列的权重at:
4)测试数据权重调整。依据预测序列权重at调整新训练样本的权重,调整公式为:
其中Bt是归一化因子。
5)输出Brent原油价格序列各分量的强预测器函数。经过迭代运算T次后得到T组弱预测器函数f(gt,at),由此T组弱预测器组合得到强预测器函数F(x):
1.5.1 CEEMD-Elman-Adaboost组合模型的预测步骤
为有效地对Brent原油价格序列进行预测,使用CEEMD-Elman-Adaboost组合模型对样本数据进行预测。CEEMD-Elman-Adaboost预测流程见图2。
图2 CEEMD-Elman-Adaboost预测流程框图
步骤1对Brent原油价格序列进行CEEMD分解,得到多个IMF分量和1个残差分量。
步骤2将分解后的各个分量分成训练样本和检验样本,并将样本数据进行归一化处理。
步骤3根据Brent原油价格序列的特征确定神经网络的输入层节点数,利用试凑法,多次运算和训练,根据网络误差选出最优的隐含层节点数;在训练预测模型时确定神经网络的其他重要参数。
步骤4用Adaboost优化Elman神经网络系统,对训练样本进行训练得到预测模型;再将检验样本放入预测模型进行预测。
步骤5将以上步骤各个分量的预测结果进行反归一化,再求和,作为最终的预测结果。
1.5.2 重要参数的设定
在CEEMD分解过程中,标准偏差设为0.2,实现次数设为500,允许的筛选最大迭代次数设为5 000。在Elman-Adaboost模型训练过程中,设弱预测器个数为10,以tangsig为传递函数,以traingdx为训练函数,模型的最大迭代次数为3 000,误差容限为0.000 01,学习速率为0.1,最多失败次数为5,采用一层的隐含层和输出层。输入层的节点数和隐含层的节点数是神经网络的重要参数,根据陈健[20]和孙冰洁等[21]的观点:样本每周有5个交易日,而设置输入层节点数为5。因此本文将输入层节点数设为5,结合Baily等[22]和Katz[23]的研究结论,应设置隐含层节点数为输入层的0.75~3倍范围,故利用试凑法,根据预测模型的网络误差选择隐含层的最优节点数。
为了有效地检验模型的预测效果,采用3个指标作为预测模型的评价标准,分别为均方根误差(RMSE)、平均相对误差(MAPE)、平均绝对误差(MAE)。
假设yt为时间序列的实际值为预测值,n为预测的数据个数。则3个指标可用如下式子表达:
其中:RMSE反映预测值与真实值之间的偏差,数值越小,说明模型的预测效果越好;MAPE反映预测值与真实值的相差程度,MAPE值越小,说明模型的预测效果越好;MAE反映预测值误差的实际情况,MAE值越小,说明模型的预测效果越好。
布伦特原油出产于北大西洋北海布伦特地区,其原油期货占世界原油期货2/3以上的交易量,是国际市场油价的标杆。选取2015年1月1日—2019年12月31日的北海布伦特(Brent)原油日交易价格为研究对象,共1 274个数据。数据来源于美国U.SEnergy Information Administration。利用Matlab2015b和EVIEWS9.0对Brent原油价格序列数据进行分析预测。
原油日交易价格的基本统计量如表1所示,原油价格序列走势图如图3所示。
表1 原油日交易价格基本统计量
由表1可知,Brent原油价格序列的标准差为11.563,数据的波动较大。样本数据的偏度不为0,峰度均小于3,不服从正态分布。样本的ADF值均大于1%、5%、10%的临界值-4.949 133、-4.443 649、-4.193 627,且ADF检验的P值为0.449,远大于0.05,数据非平稳。
由图3可以看出,Brent原油价格序列随着时间的变化而变化,走势曲线呈现大波动、非线性、不规律的趋势。
图3 原油价格序列走势
综合表1和图3可知:Brent原油价格序列具有非正态、非线性、不平稳、不规律的复杂特征,线性模型和一般组合模型很难对其进行有效预测。为此,应用CEEMD分解结合Adaboost算法增强的Elman神经网络对样本数据进行预测。
将Brent原油价格序列进行CEEMD分解,分解得到10个IMF分量和1个残差分量。分解结果如图4所示。
图4 CEEMD分解结果
由图4可以看出:每个IMF分量的振幅、频率和周期均不相同,每个分量都有自身波动的特征。IMF分量从上至下的振幅和频率逐渐变小,周期逐渐变长。残差项呈现近似线性上升的趋势,与Brent原始序列的总体走势一致。IMF1~IMF5的振幅和频率较大,周期较短。IMF5~IMF7的振幅和频率较小,周期较长。CEEMD能将复杂的Brent原油价格序列分解为多个不同尺度的数据,使每个尺度的数据都能展示自身的特质,减弱原始数据非线性、非平稳等复杂特征,为后续的Elman-Adaboost神经网络模型提取样本数据的有效信息奠定基础,进而提高模型预测精度。
利用Adaboost算法提高Elman神经网络的学习精度,对Brent原油的日交易价格进行预测。为更多地挖掘样本数据信息,采用滚动窗口进行分析,滚动窗口大小设为5。前文对Brent原油现货价格进行CEEMD分解,得到了10个IMF分量和残差分量,在此,将各分量的前1 169个数据(2015年1月2日—2019年8月2日的数据)为训练样本,训练Elman-Adaboost预测模型,将后100个数据(2019年8月13—2019年12月31日的数据)作为预测样本进行模型预测,通过历史数据进一步预测未来数据。各分量的预测值与真实值的对比如图5所示。
图5 各分量的真实值与预测值
由图5可知:IMF1~IMF4预测值与真实值的走势偏差较大,IMF5~IMF10和残差项预测值与真实值的走势基本保持一致,说明随着原油价格序列数据的非线性和非平稳性程度的降低,模型的预测值与真实值的偏差越小。
为了检验本文中模型的预测效果,将CEEMDElman-Adaboost模型与PSO-BP、CEEMD-PSO-BP、EEMD-Elman、CEEMD-Elman模型的预测结果作对比,各模型预测结果走势如图6所示。
图6 各模型预测值与真实值
由图6可知:PSO-BP、CEEMD-PSO-BP、EEMD-Elman、CEEMD-Elman对Brent原油价格序列的预测值比真实值偏低,各对比模型的预测曲线较真实值的曲线偏右,说明对比模型均存在低估Brent原油未来交易价格和预测滞后的现象。本文中所用方法CEEMD-Elman-Adaboost的预测曲线与真实值曲线的走势基本一致,说明该方法有强大的跟随能力,预测精度更高。
为了进一步检验本文中模型的预测效果,分别从RMSE、MAPE、MAE这3个预测评价指标对PSO-BP、CEEMD-PSO-BP、EEMD-Elman、CEEMDElman模型与CEEMD-Elman-Adaboost组合模型的预测误差进行量化比较,有关数据如表2所示。
表2 预测误差 %
1)以BP神经网络为基础的组合模型预测结果对比。CEEMD-PSO-BP模型比PSO-BP模型的RMSE值减小58.61%,MAPE值减小59.87%,MAE值减小60.03%。说明加入CEEMD的神经网络系统能大大减小预测误差。
2)以Elman神经网络为基础的组合模型预测结果对比。CEEMD-Elman-Adaboost模型比EEMD-Elman模型的RMSE值减小18.07%,MAPE值减小18.57%,MAE值减小18.98%。CEEMDElman-Adaboost模型比CEEMD-Elman模型的RMSE值减小5.39%,MAPE值减小3.39%,MAE值减小2.22%。CEEMD-Elman-Adaboost模型的预测效果均优于EEMD-Elman和CEEMD-Elman模型,说明与EEMD相比,CEEMD分解的误差更小,CEEMD和Adaboost提高了神经网络系统的预测精度。
3)CEEMD-Elman-Adaboost模型与CEEMDPSO-BP模型的预测结果对比。原油价格序列的RMSE值分别减小15.34%,MAPE值分别减小9.52%,MAE值分别减小2.22%。说明CEEMDElman-Adaboost模型的跟随能力强于CEEMDPSO-BP模型。
综合以上分析,CEEMD-Elman-Adaboost组合模型比对比模型具有更高的预测精度,说明与BP神经网络相比,Elman神经网络的预测误差更小,CEEMD比EEMD更有效地降低了Brent原油价格序列非平稳、非线性带来的预测误差,Adaboost能提高神经网络系统的预测精度。
针对原油价格序列高度非线性、非平稳性和时变性等复杂特性,提出一种能够有效提高预测精度的新方法,以具有国际代表性的Brent原油日交易价格为研究对象进行实证分析。先利用CEEMD将Brent原油价格序列分解,再通过Adaboost算法优化Elman神经网络对各个分量进行预测,最后重建得到Brent原油价格序列的最终预测结果。结果表明:CEEMD-Elman-Adaboost组合模型均比PSO-BP、CEEMD-PSO-BP、EEMD-Elman、CEEMD-Elman模型的预测误差小。CEEMDElman-Adaboost组合模型有效减弱了Brent原油价格序列数据的非线性和非平稳性,提高了Elman神经网络系统的学习精度,能动态反映Brent原油价格序列的特征,有效降低模型的预测误差,是一种预测精度更高、更有效的预测方法。该研究为进一步预测原油价格序列的走向提供了有效的依据,也为原油价格预测方法提供了新的思路。