ARCH模型的构建已经在这里有所叙述,这次使用一个案例回顾过程.
1. 问题描述:
- 1750-1849年瑞典人口出生率数据给出;
9 12 8 12 10 10 8 2 0 7 10 9
4 1 7 5 8 9 5 5 6 4 -9 -27 12
10 10 8 8 9 14 7 4 1 1 2 6 7
7 -2 -1 7 12 10 10 4 9 10 9
5 4 3 7 7 6 8 3 4 -5 -14 1
6 3 2 6 1 13 10 10 6 9 10
13 16 14 16 12 8 7 6 9 4
7 12 8 14 11 5 5 5 10 11
11 9 12 13 8 6 10 13
- 要求:
(1):选择适合的模型拟合序列发展;
(2):检验序列的异方差性,存在请拟合相应的条件异方差模型;
2.解题
- 导入数据
data birth;
input br@@;
lagbr=lag(br);
difbr=dif(br);
year=intnx('year','01jan1750'd, _n_-1);
format year monyy7.;
cards;
9 12 8 12 10 10 8 2 0 7 10 9
4 1 7 5 8 9 5 5 6 4 -9 -27 12
10 10 8 8 9 14 7 4 1 1 2 6 7
7 -2 -1 7 12 10 10 4 9 10 9
5 4 3 7 7 6 8 3 4 -5 -14 1
6 3 2 6 1 13 10 10 6 9 10
13 16 14 16 12 8 7 6 9 4
7 12 8 14 11 5 5 5 10 11
11 9 12 13 8 6 10 13
;
1. 对原序列的基本分析,绘制时序图
proc gplot data=birth;
plot br*t lagbr*t difbr*t;
symbol i=join v=star c=red;
run;
-
原序列时序图 (滞后一阶时序图与原序列无差)
-
一阶差分时序图 (出现了比较明显的异方差现象;集群效应)
2. arima绘制相关图 (对原序列和一阶差分)
proc arima data=birth;
identify var=br;
identify var=br(1);
run;
原序列自相关 (自相关图表现出短期相关性,偏自相关图类似,因此一阶差分后序列具有更好的平稳性质)
3. 对原序列提取确定性信息,画出残差序列的五阶自相关图,并对提取后残差序列进行dw检验(判断残差序列是否仍具有相关性)
自变量为t的幂函数提取
proc autoreg data=birth;
model br=t/ nlag=5 dwprob archtest;
run;
自变量为滞后值提取 (可以基本对残差序列定阶为p=1)
proc autoreg data=birth;
model br=lagbr/ lagdep=lagbr nlag=5 dwprob archtest;
run;
- 五阶自相关图表明参数序列自具有短期相关性,可以只建立ARCH模型
- 参数检验通过
4.定阶拟合(上述,残差序列模型确定为ARCH(1))
code:
proc autoreg data=birth;
model br=lagbr/ lagdep=lagbr garch=(p=1);
output out=out p=p lcl=lcl ucl=ucl cev=cev residual=residual;
run;
参数检验
5. 图形绘制
数据处理
data out;
set out;
lcl_residul=-1.96*sqrt(27.47293);
Ucl_residul=1.96*sqrt(27.47293);
Lcl_GARCH=-1.96*sqrt(cev);
Ucl_GARCH=1.96*sqrt(cev);
Lcl_P=P-1.96*sqrt(cev);
Ucl_P=P+1.96*sqrt(cev);
run;
绘图
proc gplot data=out;
plot a*t=2 lcl*t=3 ucl*t=3 Lcl_P*t=4 Ucl_P*t=4/overlay;
plot residual*t=2 lcl_residul*t=3 Ucl_residul*t=3 Lcl_GARCH*t=4 Ucl_GARCH*t=4/overlay;
symbol2 c=green i=needle v=none;
symbol3 c=black i=join v=none;
symbol4 c=red i=join v=none ;
run;
拟合图