ARCH模型的R语言实现

之前更新的模型都是假定方差齐性的条件,现在假定时间序列具有异方差性,那么之前的模型就不在适用。
1.ARCH模型简介
ARCH模型,全称为自回归条件异方差模型,有时简称条件异方差模型。
该模型的构造原理如下:
假设历史数据已知的情况下,零均值、纯随机序列残差序列具有异方差性:
在这里插入图片描述
在正态分布的假定下,有:在这里插入图片描述
异方差等价与残差平方的均值:
在这里插入图片描述
使用残差平方序列的自相关系数在这里插入图片描述
可以考虑异方差函数的自相关性。
考察的结果五外乎如下两种:
(1)自相关系数恒为0,即
在这里插入图片描述
这说明异方差函数是纯随机的,此时,历史数据对未来异方差的估计一点作用都没有,至今没有有效的方法能够提取到其中的异方差信息。
(2)存在某个自相关系数不为零,即
在这里插入图片描述
这意味着残差平方序列中蕴含着某种相关信息,可以通过构造适当的模型提取这些相关信息,以获得序列异方差的波动特征。ARCH模型就是基于这种场合构造的模型。
具有如下结构:
在这里插入图片描述
上述模型称为q阶自回归条件异方差模型,简记为ARCH(q)模型。
2.建模过程
(1)画出时序图,并且对其进行拉格朗日乘子检验(简记为LM检验)
(2)再对上述残差平方序列进行白噪声检验(即完成Portmanteau Q 检验)
(3)如果残差序列方差非齐性,且具有集群效应,那么残差平方序列通常具有自相关性。那我们就尝试拟合ARCH(q)模型.
3.建模
(1)读入数据,并绘制时序图

a=read.table("C:/Users/MrDavid/data_TS/A1.22.csv",sep=",",header=T)
a
x=ts(a$returns,start=c(1926,1),frequency=12)
plot(x,col=4,pch=8,lwd=2)
#plot(x^2,col=4,pch=8,lwd=2)

ARCH模型的R语言实现_第1张图片
绘制序列平方图:
ARCH模型的R语言实现_第2张图片
(2)对该序列进行LM检验和白噪声检验

library(FinTS)
for (i in 1:5) print(ArchTest(x,lag=i))

ARCH模型的R语言实现_第3张图片
进行Portmanteau Q 检验
ARCH模型的R语言实现_第4张图片
LM检验和 Q检验都显示该序列显著方差非齐,且残差的平方具有显著相关关系,所以1阶至5阶ARCH模型均显著成立。
(3)分别拟合ARCH(1),ARCH(2),ARCH(3),ARCH(4),ARCH(5)模型,再对其参数进行显著性检验。
ARCH(1)模型各参数:

x.fit=garch(x,order=c(0,3))
summary(x.fit)

ARCH模型的R语言实现_第5张图片
ARCH(2)模型各参数:
ARCH模型的R语言实现_第6张图片
ARCH(3)模型各参数:
ARCH模型的R语言实现_第7张图片
ARCH(4)模型个参数:
ARCH模型的R语言实现_第8张图片
ARCH(5)模型各参数:
ARCH模型的R语言实现_第9张图片
由上面的信息可知,ARCH(4)和ARCH(5)模型有参数不显著,故这两个模型不适合。其余模型参数都显著,表示拟合比较成功。
在这里我们就选用ARCH(3)模型来作为本次建模的模型,该模型表示为:
在这里插入图片描述
(4)绘制异方差模型拟合图

x.pred=predict(x.fit)
x.pred
plot(x.pred)

ARCH模型的R语言实现_第10张图片
条件异方差置信区间和方差齐性置信区间比较图示:

x.pred=predict(x.fit)
plot(x.pred)
plot(x,pch=8)
lines(x.pred[,1],col=2)
lines(x.pred[,2],col=2)
abline(h=1.96*sd(x),col=4,lty=2)
abline(h=-1.96*sd(x),col=4,lty=2)

ARCH模型的R语言实现_第11张图片
图中红线中间的区域是条件异方差模型拟合的置信区间,比无条件方差两条平行线给出的95%的置信区间更加符合原序列的真实状况。

你可能感兴趣的:(时间序列分析)