汇率是一个国家的货币对外价格的表现形式,是一种相对价格。受到很多原因的影响,除了经济原因,还有政治原因。如不同利率的差异、各国的通货膨胀程度、全球的金融环境等[1]。这就使得汇率并不容易通过几个因素就解释清楚,本文选取时间序列分析方法,研究美元/欧元的每日收盘价,希望能够研究出这一序列的趋势和波动性。
过去几年,较多领域的预测模型仍采用单个模型,如自回归移动平均模型、BP神经网络(反向传播神经网络)、RBF径向基网络(即径向基函数神经网络)、ARCH模型(自回归条件异方差模型)等。许少强等[2]用自回归移动平均模型提取出欧元/美元以及日元/美元汇率的走势,对两种汇率差分后建立ARMA模型(自回归移动平均模型)提取其走势,对人民币/美元汇率进行了中长期的预测。由于现实中的时间序列一般均为非平稳时间序列,越来越多的学者开始研究人工神经网络模型。朱家荣等[3]用RBF神经网络拟合人民币/美元汇率这一时间序列,较好地刻画出了该序列的趋势特性。经过多领域的综合研究发现,RBF神经网络的预测误差较大,BP神经网络存在收敛速度慢、精确度不高、容易限于局部极小值等一系列问题[4-5]。为了提高BP神经网络预测模型对时间序列的预测精度,惠晓峰等[6]在遗传算法的基础上,结合递归预测方法,提出了基于实数编码的GA−BP神经网络预测模型,有效地提高了模型的预测精度。为了弥补BP神经网络在连接权值和阈值上的不足,侯越等[7]在萤火虫算法和BP神经网络的基础上,提出了用萤火虫算法优化BP神经网络,并将该算法应用到Duffing系统产生的混沌时间序列,得到的网络初始权值和阈值远远优于原模型,这说明优化后的算法准确性更高。
真实的金融序列并非同方差,Engle在1982年提出ARCH模型[8-9],可以刻画随时间变化的条件异方差。Bollerslev在此前提下提出了GARCH模型(广义的ARCH模型)[10],不仅可以反映条件异方差,而且能体现真实数据的长期记忆性。
随着研究的不断深入,线性与非线性模型的结合成为新的研究方向。Kristjanpoller等[11]提出将自回归条件异方差模型与人工神经网络组合,运用GARCH(1, 1)模型对石油现货价格进行分析,将分析结果作为人工神经网络的输入,进而发现这一模型相比于调整异方差的均方误差模型,将波动性的预测精度提高了30%。
本文选取美元/欧元每日汇率的收盘价作为研究数据,运用BP神经网络模型拟合序列的总体趋势,在此基础上,分别构建自回归移动平均模型和广义的自回归条件异方差模型,与BP网络模型线性叠加,通过一定的参数优化,得到了较好的时间序列分析模型。
1 预测原理及方法 1.1 BP神经网络 BP算法是一种按照误差逆向传播训练的多层前馈神经网络[12-16]。图1给出了3层BP网络模型。图中,
${\xi _k}$
表示输入,
${V_j}$
表示隐含层,
${O_i}$
表示输出。
${w_{jk}}$
表示输入
$k$
与隐含层
$V_j$
的连接权值,
${W_{ij}}$
是隐含层
$V_j$
与输出
$O_i$
之间的连接权值,
$\omega = {\rm{\{ }}W, w\} $
中存储了全部的连接权值。对于特定的输入模式
$\mu $
,隐含层
$V_j$
的输入
$h_j^\mu = \sum\limits_{k = 1}^K {{\omega _{jk}}\xi _k^n} $
(1)
输出
$V_j^\mu = {g_1}(h_j^\mu ) = {g_1}\left( {\sum\limits_{k = 1}^K {{\omega _{jk}}\xi _k^\mu } } \right)$
(2)
输出
$O_i$
的输入
$H_i^\mu = \sum\limits_{j = 1}^J {{W_{ij}}V_j^\mu } = \sum\limits_{j = 1}^J {{W_{ij}}{g_1}} \left( {\sum\limits_{k = 1}^K {{\omega _{jk}}\xi _k^\mu } } \right)$
(3)
最终输出
$O_i^\mu = {g_2}(H_i^\mu ) = {g_2}\left[{\sum\limits_{j = 1}^J {{W_{ij}}{g_1}\left( {\sum\limits_{k = 1}^K {{\omega _{jk}}\xi _k^\mu } } \right)} } \right]$
(4)
对应于任意的输入模式μ和输出i,在线误差函数
$\begin{split}{E^\mu }(\omega ) =& 0.5{(\xi _i^\mu - O_i^\mu )^2} =\\ &0.5{\left\{ {\xi _i^\mu - {g_2}\left[{\sum\limits_{j = 1}^J {{W_{ij}}{g_1}\left( {\sum\limits_{k = 1}^K {{\omega _{jk}}} \xi _k^\mu } \right)} } \right]} \right\}^2}\end{split}$
(5)
对输出
$O_i$
,总的误差函数
$ E(\omega ) = \sum\limits_{\mu = 1}^P {{E^\mu }(\omega )} = 0.5\sum\limits_{\mu = 1}^P {{{(\xi _i^\mu - O_i^\mu )}^2}} $
(6)
式中:
$\xi _i^\mu $
表示模式
$\mu $
所对应输出
$O_i$
的期望值;
$\mu $
表示不同的输入模式;
$P$
表示输入模式的个数
$(\mu = 1, $
$2, \cdots, P)$
;
${g_1}$
和
${g_2}$
代表隐含层和输出层的激活函数。
图 1 BP神经网络的结构图
Fig. 1 BP neural network structure diagram
1.2 ARMA模型 ARMA模型(自回归移动平均模型)[17-18]可描述为
$\begin{split} &y(n) = {\varphi _1}y(n - 1) + {\varphi _2}y(n - 2) + \cdots + {\varphi _p}y(n - p) + \\ &\quad\mu (n) + {\theta _1}\mu (n - 1) + {\theta _2}\mu (n - 2) + \cdots + {\theta _q}\mu (n - q) \end{split}$
(7)
式中:y(n)表示时间序列在n时刻的值;φ1,φ2,φ3,
$ \cdots$
,φp为自回归模型的系数;p为自回归模型阶数;θ1,θ2,
$ \cdots$
,θq为q阶移动平均模型的系数;
$\mu (n)$
为白噪声过程,均值为0,方差为
${\sigma ^2}$
。
递推可得[19]
$y(n) = \sum\limits_{j = 0}^\infty {{G_j}\mu (n - j)} $
(8)
式中,
$G_j $
为格林系数。
时间序列的波动方差就是
$\displaystyle\sum\limits_{j = 0}^{l - 1} {{G_j}^2} {\sigma ^2}$
,如果序列未来
$l$
期的预测值是
$\hat y (n + l)$
,那么,
$y(n + l)$
的置信区间(置信水平为
$1{\rm{ - }}\alpha $
)为
$ \begin{split}&\left[{\hat y (n + l)-{u_{\alpha /2}}{{\left( {\sum\limits_{j = 0}^{l-1} {{G_j}^2} } \right)}^{1/2}}\!\!\sigma, }\right. \\ &\quad\quad\left. \hat y (n \!+\! l) +{{u_{\alpha /2}}{{\left( {\sum\limits_{j = 0}^{l-1} {{G_j}^2} } \right)}^{1/2}}\!\!\sigma } \right]\end{split} $
(9)
式中,
${u_{\alpha /2}}$
为标准正态分布的上
$\alpha /2$
临界值。
1.3 GARCH模型 Bolloerselev提出的GARCH模型,主要是针对金融序列的回归以及波动性分析[20]。GARCH模型的构成可表示为
${y_t} = C + {\varepsilon _t}$
(10)
${\sigma _t}^2 = K + \sum\limits_{i = 1}^P {{G_i}} {\sigma _{t - i}}^2 + \sum\limits_{j = 1}^Q {{A_j}{\varepsilon _{t - j}}^2} $
(11)
$\begin{array}{c} K > 0,\;\;\;\; \displaystyle\sum\limits_{i = 1}^P {{G_i} + \displaystyle\sum\limits_{j = 1}^Q {{A_j}} } < 1\\ {G_i} \geqslant 0, i = 1, 2, \cdots, P,\;\;\;\; {A_j} \geqslant 0, j = 1, 2, \cdots, Q\end{array} $
式中:yt为收益率序列;C与K为常数;εt为均值;σt2为收益率序列的方差;Gi与Aj为权重系数。
式(10)为条件均值方程,式(11)为条件方差方程。
2 实证分析 研究数据为2001年7月至2017年10月期间的美元/欧元的每日收盘价,数据共计6 000个,如图2所示。
图 2 美元/欧元汇率2001年7月至2017年10月的历史数据
Fig. 2 USD/EUR exchange rate historical data from July 2001 to October 2017
2.1 BP模型建立 时间序列通常可以表示为
$x(t), t=1, 2, \cdots, n $
,第一步需要根据选定的嵌入维数m和时间延迟τ重构相空间[21]。
$\begin{split}\{ Y(t)|Y(t) =& [x(t), x(t + \tau ), \cdots{{, x(t + (m-1)\tau )],}}\\ &{{t = 0, 1, 2, }}\cdots{{, n - (m - 1)\tau \} }}\end{split}$
(12)
$Y(t) $
是时间序列在t时刻的值,且从嵌入定理[22-23]可知,存在光滑的映射
$f:{\mathbb{R}^n} \to \mathbb{R}$
符合:
$\begin{split}x(t +& m\tau ) = f(Y(t)) = \\ &f(x(t), x(t + \tau ), \cdot \cdot \cdot, x(t + (m - 1)\tau ))\end{split}$
(13)
实验结果通过均方误差MSE和相对误差Perr来分析。
$MSE = \frac{1}{N}\sum\limits_{i = 0}^N {{\rm{|}}x(t + 1) - \widehat x{\rm{(t + 1)}}{{\rm{|}}^2}} $
(14)
$Perr = \frac{1}{N}\sum\limits_{i = 0}^N {|x(t + 1) - \widehat x(t + 1){|^2}} \Bigg{/}\sum\limits_{i = 0}^N {{x^2}(t + 1)} $
(15)
式中:
$x(t)$
为真实值;
$\widehat x(t)$
为其对应的预测值;N为序列的个数。
2.2 BP神经网络实证分析 2.2.1 参数确定 以汇率数据的前5 000个为网络的训练数据,用其后的1 000个数据测试训练的结果。这一时间序列自相关性较强,为了验证选择不同的输入节点个数的模型结果,将其对应的均方误差图和平均均方误差进行对比,如图3所示。s为隐含层节点个数。
图 3 不同隐含层节点数的均方误差图
Fig. 3 Mean squared error plots for the number of nodes in different hidden layers
从图3可知,输入层节点数为17时,预测的误差最小,拟合效果良好,所以,初步将输入节点个数
$n$
选为17,时间延迟
$\tau = 1$
。隐含层的节点个数一般根据经验决定,通常通过以下几种方法来确定:a.
${n_l} = \sqrt {nt } $
;b.
${n_l} = \sqrt {n + t } + \alpha $
;c. nl=log2 n。
$n$
是输入节点的个数,
$t $
是输出节点的个数,从经验方法出发,隐含层节点的个数可以初步列为4或5。另外,当隐含层节点的个数选为3时,误差都最小。不过,为了防止模型过拟合,本文通过选取不同的隐含层节点个数,构建不同参数的模型,对比验证得出结论:只有在隐含层的节点个数是3时,才能得出比较好的模型。该模型的拟合结果如图4所示。
图 4 2017年7月至2017年10月的美元/欧元汇率BP神经网络(17−3−1)预测图
Fig. 4 BP neural network (17-3-1) forecast graph of USD/EUR exchange rate from July 2017 to October 2017
该模型的相对误差是1.595 3×10−5,均方误差是1.199 5×10−5。从图4可知,BP神经模型(17−3−1)的预测性能良好,将BP神经网络的拟合结果输入到下一个模型,再将2个模型进行线性叠加,得到2个模型的组合预测区间。但是,实验发现,输入节点定为17时,组合区间的准确性并不理想,所以,要优化模型的输入层节点个数、隐含层节点个数和精度设置。
2.2.2 参数优化 单个模型的预测精度高并不代表组合模型的效果就一定好,所以,需要找一个平衡点,既要避免单个模型精度过高导致过拟合,又要避免组合模型的效果不尽人意。通过适当地增大BP神经网络的预测精度,提高了组合模型的整体效果,模型结果最终确定为50−7−1,得到BP神经网络的预测结果如图5所示。
图 5 2017年7月至2017年10月的美元/欧元汇率BP神经网络(50−7−1)预测图
Fig. 5 BP neural network (50-7-1) forecast graph of USD/EUR exchange rate from July 2017 to October 2017
从图5可以看出,模型对原序列的拟合效果较好。将该模型的残差序列
$\{ c(x)\} $
输入到ARMA以及GARCH模型,作为新的输入数据。
2.3 BP−ARMA模型实证分析 2.3.1 ARMA模型实例分析 首先对残差时间序列c{x}进行单位根检验,结果显示c{x}已经平稳。通过自相关系数(AC)和偏自相关系数(PAC)以及AIC(Akaike information criterion,赤池信息准则)、BIC(Bayesian information criterion,贝叶斯信息准则)的值来确定ARMA模型的参数p与q,序列
$\{ c(x)\} $
的自相关系数以及偏自相关系数如图6所示。
图 6 残差序列{c(x)}的自相关图
Fig. 6 Autocorrelation giagram of residual sequence {c(x)}
图6中,概率为Q统计量取值大于该样本计算的Q值的概率。从AC可以看出,序列c{x}的自相关系数2阶拖尾,偏自相关系数1阶结尾,将参数确定为p=1,q=2。模型估计结果如表1所示。
表 1 ARMA(1,2)模型估计结果
Table 1 Estimation results of ARMA (1, 2) model
对ARMA(1, 2)模型进行残差检验,得到自相关和偏自相关系数,如图7所示。
图 7 残差序列相关图
Fig. 7 Correlation diagram of residual sequence
从图7可以看出,残差序列的自相关、偏自相关系数都处于95%的置信区间之内,且自相关系数的概率值均高于检验水平0.05,因此,得出结论:ARMA(1, 2)模型的残差序列不存在自相关性。可得ARMA(1, 2)表达式为
$\begin{split}{y_t} =& 0.332\;14{y_{t - 1}} + {\varepsilon _t} -\\ &0.011\;35{\varepsilon _{t - 1}} - 0.028\;52{\varepsilon _{t - 2}} + 0.001\;18\end{split}$
(16)
利用ARMA(1, 2)对
$\{ c(x)\} $
序列前900个数据进行拟合,对后100个数据进行区间预测,可得置信度为95%的置信区间,如图8所示。
图 8 残差序列c{x}95%的预测区间
Fig. 8 95% prediction interval of residual sequence c{x}
从图8可以看出,大部分的真实值均落在ARMA(1, 2)模型的预测区间内,这验证了ARMA模型分析时间序列波动的有效性,而有超过5%的点落在预测区间外,同时也说明自回归移动平均模型在波动性分析方面的精度还不够。
2.3.2 线性叠加 利用ARMA(1, 2)模型预测BP神经网络模型的残差,将ARMA(1, 2)对c{x}序列的预测结果与BP神经网络的预测结果线性叠加,可得到美元/欧元汇率在5 901~6 000这一时间段的预测区间,如图9所示。
图 9 BP-ARMA组合模型95%的预测区间
Fig. 9 95% prediction interval by the BP-ARMA combination model
从图9可以看出,除了误差允许范围内的少部分真实值落在预测区间外,其余的真实值均落在区间内,且与真实数据的趋势也保持一致。
2.4 BP−GARCH模型实证分析 2.4.1 GARCH模型实例分析 前面已经证明序列{c(x)}具有平稳性。用ARCH−LM方法验证出该序列具有高阶的ARCH效应,那么,采取GARCH模型就可以很好地消除该序列的条件异方差特性。依据最小AIC原则,构建模型GARCH(1, 1),模型的参数如表2所示。GARCH(1, 1)的表达式为
表 2 GARCH(1,1)模型估计结果
Table 2 Estimation results by the GARCH (1, 1) model
$\begin{split}{y_t} =& {y_{t - 1}} + {\varepsilon _t}-0.745\;1{\varepsilon _{t -1}}-\\ &0.230\;4{\varepsilon _{t- 2}} + 0.000\;247\end{split}$
(17)
$\quad\quad\;\quad\quad\quad\;\;\sigma _t^2 = 0.970\;6\sigma _{t - 1}^2 + 0.027\;90\varepsilon _{t - 1}^2$
(18)
利用该模型拟合前900个数据,得到后100个的拟合结果,并预测其波动区间,得到置信度为95%的置信区间以及其预测方差,如图10所示。
图 10 GARCH(1,1)模型对残差序列{c(x)}的区间预测
Fig. 10 Interval prediction of residual sequence {c(x)} by the GARCH (1, 1) model
从图10可以看出,序列全部的真实值都处在置信区间内,方差也随着迭代步数的增加而变大,整体的预测效果良好。
2.4.2 线性叠加 将BP神经网络和GARCH(1, 1)模型的预测结果进行线性叠加,就可以得到美元/欧元汇率序列置信水平为95%预测区间,如图11所示。
图 11 BP-GARCH(1,1)模型对美元/欧元汇率95%的预测区间
Fig. 11 95% interval forecast of USD/EUR exchange rate by the BP-GARCH (1, 1) model
从图11可知,只有4个真实值不在置信区间之内,2种模型组合的效果较好。
2.5 模型对比 从图9与图11的结果可以看出,BP与GARCH模型的组合相比于BP与ARMA模型的组合,区间估计更准确,只有极少数误差允许范围内的时间节点的真实值超出预测区间,而BP−ARMA的组合模型在100个时间节点当中有超过10个时间节点的真实值超出了预测区间,说明BP−GARCH模型要优于BP−ARMA模型,更适合对金融时间序列进行趋势与波动性分析。
3 总结与展望 将BP神经网络分别与ARMA,GARCH模型进行组合,对比分析近几年美元/欧元汇率的趋势与波动性,结果显示,BP神经网络的非线性映射能力较强,可以准确地刻画时间序列的趋势。通过适当地增大BP神经网络模型的误差来提高组合模型的预测效果,构建出一结构为50−7−1的BP神经网络模型,接着采用ARMA(1, 2)与GARCH(1, 1)模型提取BP神经网络的拟合结果的波动信息,最后结合BP神经网络模型的趋势特性,得出美元/欧元汇率的拟合趋势以及置信水平为95%的预测区间。比较BP−ARMA(1, 2)与BP−GARCH(1, 1)这2个模型的预测效果,可以得出:BP−GARCH(1, 1)模型的预测效果比单一的BP神经网络模型好,也比BP−ARMA(1, 2)组合模型的效果更好。