模型选择

您所在的位置:网站首页 aic值越小 模型选择

模型选择

#模型选择| 来源: 网络整理| 查看: 265

在建立ARMA和GARCH模型的时候,我们常常需要涉及到模型阶数(如GARCH(p,q)中p和q)的选择问题,在这里我们使用AIC和BIC两个计算参数进行判断:

什么是AIC和BIC?

两者定义来源于信息准则:研究者通过加入模型复杂度的惩罚项来避免过拟合问题,随后推出了两个优选模型的准则:赤池信息准则(Akaike Information Criterion,AIC)和贝叶斯信息准则(Bayesian Information Criterion,BIC)。

AIC(赤池弘次,1974)的定义为: 

           AIC = 2*N - Ln(L)    * 这里N表示  模型参数个数  的个数,L表示模型得出的  似然函数  最优值

所以根据AIC的定义可知,当模型越复杂或者似然函数越小,AIC值越大。而我们的目标一般是选择AIC较小的模型(即希望模型简单,并且模型的拟合度高,其中对参数N的要求表示了我们不希望模型出现过拟合的情况)。

BIC(Schwarz,1978)的定义为:

           BIC = N*Ln(n) - Ln(L)    * 这里N表示 模型参数个数  的个数,L表示模型得出的  似然函数  最优值, n是模型中的  观测值数量  。

从AIC模型中我们可以看到没有考虑观测值数量,从统计学知识中我们可以知道随着观测值数量的增加,误差也可能随之上升,所以BIC中引入了观测值数量对模型进行判断。同AIC,BIC也是越小越好。

如何通过matlab实现AIC和BIC的判断?

 

1 P = 3; Q = 3; LOGL = zeros(P,Q); PQ = zeros(P,Q); n = length(Rt); 2 for p = 1:P 3 for q = 1:Q 4 Mdl = arima('ARLags',1,'Variance',garch(p,q),'Distribution','t'); 5 [EstMdl,EstParamCov,LogL] = estimate(Mdl,Rt); %分别返回估计模型;估计参数之间的协方差矩阵,以及对数似然函数最优值 6 numParams = sum(any(EstParamCov)); %返回有多少个估计参数 7 [aic(p,q),bic(p,q)] = aicbic(LogL,numParams,n); 8 end 9 endN = min(min(bic)); [p,q] = find(N==bic);

最后p和q就返回了我们需要的GARCH参数;当然,在这个代码中我们用了ARLAGS=1,前提是用ARCH检验的时候看看AR效应(archtest)

不过好像比较简单的做法一般都是用 AR(1)-garch(1,1)-T模型



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3