我正在尝试拟合GARCH模型,现在我找到了均值方程,但对下一步一无所知。这就是波动部分。 我认为我应该先找到滞后,然后再找到系数。 许多人使用GARCH(1,1),但没有解释原因。也许有人可以一步一步地建立GARCH模型吗?
这就是我所做的。
1。模拟时间序列
library(fGarch)
set.seed(1234)
r_t<- garchSim(garchSpec(model = list(mu=0.01,ar=c(0.03,-0.03),
alpha= 0.12, beta= 0.09, omega= 0.01)),n = 200)
ts.plot(r_t)
2。拟合均值函数,发现它是
0.6232 * r(t-1)-0.6027 * r(t-2)+ 0.7834 * r(t-3)-0.5700 * a(t-1)+ 0.4637 * a(t-2)-0.8937 * a(t-3)+0.1228965
a=matrix(0,nrow=6,ncol=6)
rownames(a)<-0:5
colnames(a)<-0:5
for(i in 0:5)
{
for(j in 0:5)
{
a[i+1,j+1]=arima(r_t,order=c(i,0,j))$aic
}
}
arima(r_t,order=c(3,0,3))
intercept=(0.0241/(1-0.6232-(-0.6027)-0.7834))
set.seed(1234) mu<-arima.sim(model=list(order=c(3,0,3), ar=c(0.6232,-0.6027,0.7834), ma=c(-0.5700,0.4637,-0.8937)),n=200)+0.1228965 at<-r_t-mu set.seed(1234) sigma2<-(at/rnorm(200))^2