在传统计量经济学模型中,干扰项的方差被假设为常数。但是许多经济时间序列呈现出波动的集聚性,在这种情况下假设方差为常数是不恰当的。我们可以使用Time_ARCH函数来检验回归残差是否服从同方差。
定义:Time_ARCHTest(u:Array;Q:Integer,Alpha:Real):array
说明:时间序列异方差的ARCH检验,原假设都为没有异方差,即不存在ARCH效应,Hypothesis为1表示接受原假设,0表示拒绝原假设
检验统计量为:
对方程进行估计,得到F统计量和T×R2统计量并进行检验;
参数:
u:残差序列,为一维数组类型
q:滞后阶数,为整数类型
alpha:1-alpha为置信水平,一般为5%,也有1%和10%,数值越小,判断越严格
为了刻画这种异方差性,Engel(1982)提出了ARCH模型,即自回归条件异方差模型。该模型的一般形式如下:
均值方程:
方差方程:
均值方程
是外生变量向量。方差方程表示
的条件方差
由两部门构成,常数项
和ARCH项
。为保证条件异方差始终为正,要求方差方程中
非负,为保证自回归的稳定性,必须限制
。
GARCH 模型:ARCH(p)模型解决了时间序列中的异方差问题,但在实际应用中常出现
的条件方差
依赖于很多期之前的变化量,因此必须估计很多个参数;另外,对大多数的q,无限定约束的估计常常会违背
非负的限定条件。为此,Bollerslev(1986)扩展了Engle的原始模型,提出了广义的自回归条件异方差GARCH模型,在方差方程中用一个或两个
的滞后项代替很多个
的滞后值。一个高阶的ARCH模型可以由一个更为简洁、更易识别估算的低阶GARCH 模型来表达。GARCH(p,q)模型的方差方程的一般形式如下:
方程右边的
是ARCH项,
是GARCH项,q是ARCH项的阶数,p是GARCH项的阶数,为保证方差为正,要求方差方程所有系数为正。
非对称的 ARCH 族模型:在金融时间序列的研究中经常会发现这种现象:不同信息的冲击常常表现为非对称的效应,即好消息和坏消息的冲击对波动性的影响程度不同。就许多股票而言,当前收益和未来波动之间有很强的负相关,收益增加时波动性减小,收益减小时波动性增加,这一趋势通常被称为杠杆效应。TARCH或GJR模型由Zakoian和Glosten,Jafanathan,Runkle(1994)提出,该模型中的方差方程如下:
其中
是一个虚拟变量,当
时
,其余情况为0,
为非对称项,只要
,就存在非对称效应:好消息
会有
倍的冲击,而坏消息会有
倍的冲击。如果系数
显著不为0,我们就可以得到结论:数据包含非对称效应(门限效应)。如果
,负冲击对波动性的影响大于正冲击,非对称效应的主要效果是使得波动加大,存在扛杆效应;如果
,则非对称效应的主要效果是使得波动减小。
指数GARCH模型或EGARCH模型是由Nelson(1991)提出的,采取条件方差对数的形式,方差方程形式如下:
等式左边是条件方差的对数,这意味着杠杆效应影响是指数而不是二次的,所以方差的预测一定是非负,在估计时对系数无需增加非负的限制,只要
,冲击的影响就存在着非对称性。只要
,出现利好消息时
,会带来
的冲击。而出现利空消息时,会带来
的冲击。
GARCH-M模型:我们在GARCH模型的均值的末端加上一个条件异方差,就可以得到GARCH-M模型,该模型的方差方程和GARCH的方差方程是一样的。
这样模型就可以衡量模型的波动对被解释变量的影响了。
定义:GarchFit(ModelSpec:Array,y:array,x:Array,e0:Array,s0:Array,y0:Array);
说明:广义自回归条件异方差模型,采用极大似然估计方法估计模型的参数
参数:
ModelSpec:模型设置项,为数据表类型,参考:表
y:原始数据,一维数字数组
x:均值方程回归外生变量,二维数字数组,可缺省
e0:自回归方程残差序列的缺省项,一维数字数组,可缺省
s0:条件方程方程序列的缺省项,一维数字数组,可缺省
y0:原始序列的缺省项,一维数字数组,可缺省
返回结果:
Ret["C"]:均值方程常数项
Ret["AR"]:均值方程AR项
Ret["MA"]:均值方程MA项
Ret["Regress"]:均值方程外生变量回归项
Ret["InMean"]:均值方程条件方差项,当选择模型为“GARCH-M”时存在
Ret["K"]:条件方差方程常数项
Ret["GARCH"]:条件方差方程GARCH项
Ret["ARCH"]:条件方差方程ARCH项
Ret["Leverage"]:条件方差方程杠杆项,当选择模型为“GJR”或者“EGARCH”时存在
Ret["LLF"]:残差的极大似然函数值
Ret["e"]:残差序列
Ret["h"]:条件方差序列
输入参数ModelSpec字段
字段 | 含义 | 类型 | 缺省值 |
VarianceModel | 模型类别(Garch,GARCH-M,GJR,EGARCH) | Varchar | GARCH |
Distribution | 数据分布类型(Gaussian或者T) | Varchar | Gaussian |
R | AR项个数 | Int | 0 |
M | MA项个数 | Int | 0 |
P | GARCH项个数 | Int | 1 |
Q | ARCH项个数 | Int | 1 |
DoF | 自由度(T分布时有效) | Int | 程序计算 |
C | 均值方程常数项初始值(NaN表示不含常数) | Real | 0 |
AR | AR项初始值 | Array | array() |
MA | MA项初始值 | Array | array() |
InMean | 均值方程是否含条件方差方程 | Bool | FALSE |
Regress | 回归项初始值 | Array | array() |
K | 条件方差方程常数项初始值 | Real | 程序计算 |
GARCH | GARCH项初始值 | Array | array() |
ARCH | ARCH项初始值 | Array | array() |
Leverage | Leverage项项初始值 | Array | array() |
MaxFunEvals | 调用目标次数 | Int | 100*变量个数 |
MaxIter | 最大迭代次数 | Int | 400 |
TolFun | 目标精度 | Real | 1.00E-06 |
TolCon | 约束条件精度 | Real | 1.00E-06 |
TolX | 变量精度 | Real | 1.00E-06 |
以1995年1月至2000年8月日元兑换美元汇率值序列(JPY,如图8-9)为例介绍怎样用天软来进行ARCH建模(序列共1427个值)(参见平台下的Garch_Demo函数)。
图8-9日元兑换美元汇率值(JPY)序列 图8-10 DJPY时间序列
JPY序列显然是一个非平稳时间序列,对JPY进行差分,DJPY表示收益,见图8-10,因为DJPY是一个平稳时间序列,应该使用DJPY建立时间序列模型。按照ARMA模型中讲的那样对DJPY拟合ARMA模型,根据自相关系数以及偏自相关系数,AIC准则等,我们最终将模型定为AR(3)模型。
dJPY := time_diff(JPY);
m := mean(dJPY);
dJPY := dJPY-m;
ret := ARMA(dJPY,3,0);
得到的结果是:
残差图
该模型的残差如图8-11所示,我们怀疑残差含有异方差,使用Time_ARCHTest函数检验。
Time_ARCHTest(ret["e"],1,0.05);
残差异方差检验
拒绝原假设,认为模型含有异方差,建立ARCH模型,首先建立ARCH(7)模型(尝试多次,最大滞后选为7为宜)。
ARCH模型结果 异方差估计情况
modelspec := array(
("R":3,
"M":0,
"AR":NIL,
"MA":NIL,
"Regress":NIL,
"VarianceModel":"GARCH",
"C":nan,
"P":0,
"Q":7,
"GARCH":array(),
"ARCH":array(),
"Leverage":NIL));
t := garchfit(ModelSpec,dJPY);
得到的异方差如图8-14。ARCH模型中的
的滞后项太多,应该尝试建立GARCH(1,1)模型:
modelspec := array(
("R":3,
"M":0,
"AR":NIL,
"MA":NIL,
"Regress":NIL,
"VarianceModel":"GARCH",
"C":nan,
"P":1,
"Q":1,
"GARCH":array(),
"ARCH":array(),
"Leverage":NIL));
t := garchfit(ModelSpec,dJPY);
GARCH模型结果 方差估计情况