R-ARMA(p,q)如何选找最小AIC的p,q值

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 01:33   238   0

  • 在时间序列数据的建模中常常会用到ARMA,ARIMA以及GARCH模型,都涉及到回归阶数p,q的确定。
  • 思路: 考虑到异方差之后就需要用到拟合方程的残差系列进行建模,可考虑用ARMA模型的AIC法则进行定阶,求出最小AIC值得p,q,进而采用ARMA(p,q) ,再采用Garch(p,q)进行建模。

RCode;

#ARMA Modeling寻找AIC值最小的p,q
armaSearch<-function(data){
armacoef<-data.frame()
for (p in 0:5){
for (q in 0:5) {
#data.arma = arima(diff(data), order = c(p, 0, q))
data.arma = arima(data, order = c(p, 1, q))
#cat("p =", p, ", q =", q, "AIC =", data.arma$aic, "\n")
armacoef<-rbind(armacoef,c(p,q,data.arma$aic))
}
}
colnames(armacoef)<-c("p","q","AIC")
pos<-which(armacoef$AIC==min(armacoef$AIC))
cat("the min AIC=",armacoef$AIC[pos], ",p=",armacoef$p[pos],",q=",armacoef$q[pos])
return(armacoef)
}



AIC

AIC是赤池消息准则SC是施瓦茨准则,当两个数值最小时,则是最优滞后分布的长度。

我们进行模型选择时,AIC值越小越好。例如,可以通过选择最小AIC值来确定一个滞后分布的长度。
AIC准则是赤池信息准则,该项准则运用下式的统计量评价模型的好坏:AIC=-2L/n+2K/n,其中L是对数似然值,n是观测值数目,k是被估计的参数个数,AIC的准则要求其越小越好。
因为,AIC的大小取决于L和k。k取值越小,AIC越小;L取值越大,AIC值越小。k小意味着模型简洁,L大意味着模型精确。因此AIC和修正的决定系数类似,在评价模型是兼顾了简洁性和精确性。


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP