SAS实验指导Arch建模.docx
《SAS实验指导Arch建模.docx》由会员分享,可在线阅读,更多相关《SAS实验指导Arch建模.docx(22页珍藏版)》请在冰豆网上搜索。
SAS实验指导Arch建模
ARCH建模及SAS实现
一.Arch模型
Arch模型即自回归条件异方差模型,是金融市场中广泛应用的一种特殊非线性模型。
1982年,R.Engle在研究英国通货膨胀率序列规律时提出ARCH模型,其核心思想是残差项的条件方差依赖于它的前期值的大小。
1986年,Bollerslev在ARCH模型基础上对方差的表现形式进行了线性扩展,并形成了更为广泛的GARCH模型。
1.金融时间序列的异方差性特征
金融时间序列,无恒定均值(非平稳性),呈现出阶段性的相对平稳的同时,往往伴随着出现剧烈的波动性;具有明显的异方差(方差随时间变化而变化)特征:
尖峰厚尾:
金融资产收益呈现厚尾和在均值处呈现过度波峰;
波动丛聚性:
金融市场波动往往呈现簇状倾向,即波动的当期水平往往与它最近的前些时期水平存在正相关关系。
杠杆效应:
指价格大幅度下降后往往会出现同样幅度价格上升的倾向。
因此,传统线性结构模型(以及时间序列模型)并不能很好地解释金融时间序列数据。
2.ARCH(p)模型
考虑k变量的回归模型
若残差项
的均值为0,对yt取基于t-1时刻信息的期望:
该模型中,yt的无条件方差是固定的。
但考虑yt的条件方差:
其中,
表示基于t-1时刻信息集合Yt-1的yt的条件方差,若残差项
存在自回归结构,则yt的条件方差不固定。
假设在前p期所有信息的条件下,残差项平方
服从AR(p)模型:
(*)
其中
为0均值、
方差的白噪声序列。
则残差项
服从条件正态分布:
残差项
的条件方差:
由两部分组成:
(1)常数项
;
(2)ARCH项——变动信息,前p期的残差平方和
注:
未知参数
和
利用极大似然估计法估计。
方差非负性要求
都非负。
为了使
协方差平稳,需进一步要求方程
的根都位于单位圆外。
若
都非负,上式等价于
.
注:
若扰动项的条件方差不存在自相关,则有
,此时
,即残差的条件方差同方差性情形。
3.GARCH(p,q)模型
ARCH(p)模型在实际应用中,为了得到较好的拟合效果,往往需要很大的阶数p,从而增加了待估参数个数、引发多重共线性、非限制估计违背
非负性要求。
1986年,Bollerslev将ARCH(p)模型推广为广义自回归条件异方差模型GARCH(p,q):
残差
的条件方差表示为
由三项组成,
(1)常数项
;
(2)ARCH项;
(3)GARCH项——前q期预测方差
.
注:
未知参数用极大似然法估计,通常残差的假设分布有正态分布、t分布、广义误差分布;该模型也要求
非负;若要求是平稳过程,需要限制
.实际上,GARCH(p,q)模型是将残差平方用ARMA(q,p)模型描述。
4.ARCH检验
检验模型的残差是否具有ARCH效应有两种方法:
(1).ARCHLM检验——拉格朗日乘数检验
检验原假设H0:
残差序列直到p阶都不存在ARCH效应;需进行如下回归:
检验回归有两个统计量:
F统计量——检验回归系数是否显著为0.
T×R2统计量——LM统计量,其中T为观察值个数,R2为回归拟合优度,该统计量渐近服从
分布。
(2).残差平方相关图
残差平方相关图显示残差平方
序列,直到任意指定的滞后阶数的自相关函数(AC)和偏自相关函数(PAC),并计算相应滞后阶数的QLB统计量。
若不存在ARCH效应,则任意滞后阶数的自相关函数(AC)和偏自相关函数(PAC)都近似为0.
5.GARCH-M模型
一般风险越大,预期收益越大。
在回归模型中加入一项“利用条件方差表示的预期风险”:
称为GARCH-M模型。
另外,还有非对称冲击模型:
TARCH、EGARCH、PARCH等(略)。
二.SAS实现--PROCAutoReg过程
SAS中的AutoReg过程,是用于估计和预测误差项自相关或异方差的时间序列数据的线性回归模型。
自回归误差模型被用来校正自相关系数和广义自回归条件异方差模型GARCH,并且其变体如广义的ARCH(GARCH)、方差无穷的GARCH(IGARCH)、指数的GARCH(EGARCH)和依均值的GARCH(GARCH-M)被用于异方差的建模和校正。
自回归过程AutoReg可以拟合任意阶的自回归误差模型,并且可以拟合子集自回归模型。
为了诊断自相关性,过程产生广义Durbin-Watson(DW)统计量和其边缘概率。
普通回归分析假定误差方差对于所有观察是相同的,但当误差方差不相同时,数据被称为异方差,此时普通最小二乘法估计不是有效的,同时也影响预测值置信区间的精确性。
Autoreg过程能检验异方差,并且提供GARCH模型族来估计和校正数据易变性。
对于带有自相关扰动和随时间变化的条件异方差模型,过程输出条件均值和条件方差的预测值。
基本语法:
ProcAutoRegdata=数据集<可选项>;
model因变量=独立回归变量列表选项列表>;
outputout=数据集<选项列表>;
说明:
1.procautoreg语句可选项
●outest=数据集——把估计参数输出到指定数据集;
●covout——把估计参数的协方差阵输出到outest=指定数据集;该选项只有在指定了outest=选项后才有效.
2.model语句
●center——通过减去均值,中心化因变量并且取消模型的均值参数;
●noint——取消模型的均值参数;
●nlag=数值|(数值列表)——指定自回归误差的阶或者自回归误差的时间间隔的子集。
例如,nlag=3与nlag=(123)作用相同,但与nlag=(13)等不同;
●garch=(q=数值,p=数值,type=选择值,mean,noint,tr)—指定广义条件异方差GARCH模型的类型。
例如,定义GARCH(2,1)回归模型:
modely=x1x2/garch=(q=2,p=1);
注意:
SAS系统的自回归参数符号q和p与前文所述公式中的符号p和q正好相反。
定义GARCH-M(1,1)回归模型:
modely=x1x2/garch=(q=2,p=1,mean);
type=选择值——指定GARCH模型的类型:
默认为noineq表示无约束GARCH模型;nonneg表示非负约束GARCH模型;stn表示约束GARCH模型系数的和小于1;integ表示IGARCH模型;exp表示EGARCH模型;
noint——取消条件异方差模型中的均值参数;
tr——GARCH模型的估计使用信赖区域方法,缺省值为对偶拟牛顿法;
●archtest——要求用portmanteaQ检验统计量和Engle的拉格朗日乘子LM检验是否存在条件异方差情况,即是否有ARCH效应;
●coef——输出前几条观察的变换系数;
●corrb——输出参数估计的估计相关系数;
●covb——输出参数估计的估计协方差;
●dw=n——输出直到n阶的DW统计量,默认n=1;
●dwprob——输出DW统计量的p值,当误差自由度大于300时dwprob选项被忽略;
●ginv——输出Yule-Walker解的自协方差的Toeplitz矩阵的逆;
●itprint——输出每步迭代的目标函数和参数估计;
●lagdetp——输出DWt统计量,它用于检验存在时滞因变量时残差的自相关性;
●lagdep=回归变量——输出DWh统计量,它用于检验一阶自相关性;
●partial——输出偏自相关;
●backstep——去掉非显著自回归参数,参数按最小显著性的次序被去掉;
●slstay=数值——指定被backstep选项使用的显著水平,默认为0.05;
●converge=数值——指定在迭代自回归参数估计时参数的变化量的最大绝对值小于此数值,那么认为收敛,默认为0.001;
●maxiter=数值——指定允许迭代的最大次数,默认为50;
●method=ml|ols|yw|ityw——指定估计的方法,分别为:
最大似然估计、无条件最小二乘法、Yule-Walker估计、迭代Yule-Walker估计;
●nomiss——使用没有缺失值的第一个连贯时间序列数据集,进行模型拟合估计。
否则,跳过数据集开始的任何缺失值,使用独立回归变量和因变量都不带缺失值的所有数据。
请特别注意,为了保持时间序列中正确的时间间隔,必须要增加时间刻度值,这样就会产生因变量缺失值的观察。
当因变量缺失时,过程可以产生预测值。
如果缺失值很多,则应使用ML估计。
3.output语句
●out=数据集——指定包含预测值和变换值的输出数据集;
●alphacli=数值——设置时间序列预测值置信区间的显著水平,默认为0.05;
●alphaclm=数值——设置模型结构部分预测值置信区间的显著水平,缺省值为0.05;
●cev=变量——把条件误差方差写入到输出数据集的指定变量中,仅GARCH模型被估计时才使用;
●cpev=变量——把条件预测误差方差写入到输出数据集的指定变量中,仅GARCH模型被估计时才使用;
●constant=变量——把被变换的均值写入到输出数据集的指定变量中;
●lcl=变量——把预测值的置信下限写入到输出数据集的指定变量中;
●ucl=变量——把预测值的置信上限写入到输出数据集的指定变量中;
●lclm=变量——把模型结构部分预测值的置信下限写入到输出数据集的指定变量中;
●uclm=变量——把模型结构部分预测值的置信上限写入到输出数据集的指定变量中;
●p=变量——把预测值写入到输出数据集的指定变量中;
●rm=变量——把来自模型结构部分预测的残差写入到输出数据集的指定变量中;
●transform=变量——把被变换的变量写入到输出数据集的指定变量中。
三.例子
对模拟方法生成的时间趋势加二阶自回归误差模型的时间序列数据,用PROCAUTOREG过程进行分析和建模,以便于比较和判断各种求解模型和运算结果的好坏。
模型:
(一)按照模拟模型生成数据集
代码:
datarandar;
e1=0;
e11=0;
dot=-10to36;
e=1.3*e1-0.5*e11+2*rannor(12346);
x=10+0.5*t+e;
e11=e1;
e1=e;
ift>0then
output;
end;
run;
procprintdata=randar;
run;
运行结果:
Obs
e1
e11
t
e
x
1
-2.73816
-4.99186
1
-2.73816
7.7618
2
0.03674
-2.73816
2
0.03674
11.0367
3
0.66356
0.03674
3
0.66356
12.1636
4
-0.86233
0.66356
4
-0.86233
11.1377
5
-4.30165
-0.86233
5
-4.30165
8.1984
6
-3.88957
-4.30165
6
-3.88957
9.1104
7
-3.56635
-3.88957
7
-3.56635
9.9337
8
-3.68908
-3.56635
8
-3.68908
10.3109
9
-2.50263
-3.68908
9
-2.50263
11.9974
10
-1.80957
-2