R语言ARMA-GARCH模型金融产品价格实证分析黄金价格时间序列

研究黄金价格的动态演变过程至关重要。

由Kaizong Ye,Liao Bao撰写

文中以黄金交易市场下午定盘价格为基础,帮助客户利用时间序列的相关理论,建立了黄金价格的ARMA-GARCH模型,并对数据进行了实证分析,其结果非常接近。

利用该模型可动态刻画黄金价格数据的生成过程,也可帮助黄金产品投资者和生产者做出更加灵活、科学的决策。

ARMA-GARCH模型

在一般的计量回归模型中,一个重要的假设条件是回归模型中残差的同方差性。

它保证了回归系数的无偏性、有效性与一致性;然而,当回归残差的方差不能够保证同方差,即产生异方差时,回归估计系数的有效性与一致性则无法保证,从而导致回归系数估计的偏差。在实际的金融时间序列中,数据大都具有“尖峰厚尾”、波动集聚性与爆发性等特征。根据金融时间序列的这些特性,为了应对这种情况,美国经济学家RobertF.Engle于1 982年首次提出了A R C H模型;它具有良好的特性,即持续的方差和处理厚尾的能力,能较好地描述金融序列的波动特征[6-7]。

ARMA 模型

一般来说,一个变量的现在取值,不仅受其本身过去值的影响,而且也受现在和过去各种随机因素冲击的影响。因此,可建立其数据生成模型为:

y t=a 0+a 1 y t-1+a 2 y t-2+…+a py t-p+u t+

β1 u t-1+…+βq u t-q(1)

式中:p和q为模型的自回归阶数和移动平均阶数;a i和βi为不为零的待定系数;u t为独立的误差项;y t为平稳、正态、零均值的时间序列。如果该模型的特征根都在单位圆外,则该模型就称为A R M A(p,q)模型

GARCH(p,q) 模型

若随机变量y t可以表示为如下形式:

y t=a 0+a 1 y t-1+a 2 y t-2+…+a py t-p+u t(2)


视频

时间序列分析模型 ARIMA-ARCH GARCH模型分析股票价格数据

探索见解

去bilibili观看

探索更多视频

σ2t=φ0+φ1 u2t-1+φ2 u2t-2+…+φq u2t-q(3)式中:σ2t为条件方差;φi为待定系数;其它参数同上。

称u t服从q阶的A R C H过程,记作u t A R C H(q)。其中,(2)式称作均值方程,(3)式称作A R C H方程。A R C H(q)模型是关于σ2t的分布滞后模型。为避免u2t的滞后项过多,可采用加入σ2t滞后项的方法。对于(3)式,可给出如下形式:

σ2t=φ0+φ1 u2t-1+λ1σ2t-1(4)

式中:λ为待定系数。

该模型称为广义自回归条件异方差模型,用G A R C H(1,1)表示。其中,u t-1称为A R C H项;σt-1称为G A R C H项。

(4)式应满足的条件为:φ0>0,φ1≥0,λ1≥0。

ARMA-GARCH 模型建立与实证分析

建立ARMA-GARCH 模型步骤

建立黄金价格ARMA-GARCH模型通常包括5个步骤,即序列平稳性验证、模型识别及参数估计、异方差效应检验、建立ARMA-GARCH模型及参数估计、模型诊断与实证分析。建立模型过程见图。

数据采集

笔者所选取的样本数据为XX定盘价格(用P表示,单位为美元/盎司),共计851个数据,利用计量分析软件R完成

image.png

图片

Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用

阅读文章


平稳性检验及数据处理

通过黄金价格时间序列(见图2)可以看出,历年的黄金价格有异常值并且结构发生了突变;相关统计特征显示黄金价格序列存在右偏和尖峰现象(相对于标准正态分布),呈现“尖峰厚尾”特征。


随时关注您喜欢的主题


同时J B检验也说明黄金价格序列不服从正态分布。再者,从黄金价格自相关及偏相关(见图3)中,可初步判断黄金价格为结构发生突变的非平稳时间序列。

image.png
image.png

为了检验数据是否适合建立时间序列模型,现对数据做平稳性检验即单位根检验,检验模型方法为最小二乘估计。对黄金价格P进行单位根检验检验结果见如下。

其检验结果均清楚显示黄金价格序列存在单位根,为非平稳时间序列。

image.png

因此,笔者对黄金价格时间序列取自然对数,再对其进行单位根检验。从检验结果可以看出,由于p值小于0.05,因此拒绝原假设,认为黄金价格时间序列为平稳序列。只有带漂移项的检验式才能通过t检验。

经检验,A D F=-3.1413,小于不同检验方法的临界值,所以自然对数的黄金价格序列是一个带有漂移项的平稳序列。

模型识别及参数估计

ARMA模型的定阶从两方面考虑:一是考虑模型的数据特征,即自相关函数和偏自相关函数;二是考虑模型定阶准则AIC和SIC。

根据ln(P)的自相关图,可初步选定ARMA(1,0)、ARMA(1,1)、ARMA(2,2)、ARMA(2,1)等8个模型。

通过综合比较各模型的判定指标(见表2),可以判断模型ARMA(1,1)的AIC数值和SIC数值最小,初步选定该模型。其参数估计采用非线性最小二乘法,利用R软件完成。ARMA(1,1)模型对应的数学表达式为

l n(P t)=6.168+0.98 5l n(P t-1)+u t+0.33 4u t-1。

从结果可以看出,各参数均通过t检验,方程特征根的倒数均在单位圆内,即特征根均在单位圆外,满足平稳性要求。

ARMA (p,q) 模型的相关判定指标

模型AIClog likelihood
A R M A ( 1, 0) 6880.5-3437.26
A R M A ( 0, 1)9346.89-4670.44
A R M A ( 1, 1)6882.5-3437.25
A R M A ( 2, 1)6884.2-3437.12
A R M A ( 1,2)6904.7-3447.35
A R M A ( 2, 2)6883.6-3435.84
A R M A ( 3, 1)6899.1-3443.58
A R M A ( 1, 3)7096.61 -3542.3

A R C H 检验

在分析金融数据中,条件异方差的忽略可能导致参数估计失去渐进有效性和ARMA模型的过度参数化,还可能引起传统检验的过度拒绝。可以发现波动的“成群”现象:波动在一段时期内非常小,在其他一段时期内非常大。这说明ARMA(1,1)模型的误差项可能具有条件异方差性。

借助R软件,可得出自回归条件异方差的L M检验式为:u2t=0.001 8+0.256 6u2t-1

t检验(5.319)(5.65 2)

image.png
image.png

L P的A R M A(1,1)模型残差检验的统计量L M=8.3379>χ0.05(1)=3.8 4。其中,T为样本容量;R2为判定系数。

ARMA-GARCH 模型建立

检验结果证明,ARMA(1,1)模型的残差存在自回归条件异方差,则应该在ARMA(1,1)均值方程基础上建立ARCH模型。为确定ARCH阶数需多次尝试,最终确定ARCH模型为2阶。因为滞后期很长,在此考虑加入GARCH模型,进一步采用GARCH(2,2)模型。

image.png
image.png
image.png

这些充分说明均值方程在配有G A R C H(1,1)模型后,已消除了A R M A(1,1)模型残差序列中的自回归条件异方差成分。该模型能够更好的拟合数据。

实证分析

结合预测理论及相应软件工具,利用ARMA(1,1)-GARCH(2,2)模型对黄金价格进行验证。

image.png
1111.png

最后我们得到以下结果:

image.png

结语

(1)本文通过对黄金价格ARMA(1,0)模型的残差序列进行ARCH-LM检验,发现了黄金价格存在明显的自回归条件异方差效应。

(2)利用时间序列相关理论,建立了ARMA(1,1)-GARCH(2,2)模型。通过实证分析可知,该模型可准确地动态刻画黄金价格数据的生成过程,平均误差很小。

[ 参考文献 ]
[ 1] EricJ Levin, Robert E Wright. Short-run and Long-run Determi-nants of the  Price of  Gold[R].The  World Gold  Council,2006.
[ 2] 范思琦, 孙黎, 白岩. 影响黄金价格因素及应对策略[ J ] . 黄金,2008, 27( 12) : 8-11.
[ 3] 胡乃联, 宋鑫. 自适应过滤模型在黄金价格预测中的应用[ J ] .黄金, 1999, 20( 5) : 53-54.
[ 4] 陈杨林, 向东进.基于波动率模型的世界黄金价格实证分析[ J ] . 决策与信息, 2008(9) : 26-27.
[ 5] 贾新宇, 谢家智. 上海黄金市场价格波动特征的实证研究[ J ] .金融经济, 2008( 8) : 97-98.
[ 6] 靳云汇, 金赛男. 高级计量经济学[ M] . 北京: 北京大学出版社,2007


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds