确定ARIMA模型

时间:2017-12-24 17:29:31

标签: matlab time-series identification identify arima

我正在尝试构建ARIMA模型,我在标准化时间序列中有144个术语,它们表示原始时间序列中的残差。当我从原始时间序列中减去线性趋势和周期分量时,得到了我想建立ARIMA模型的残差,因此残差是随机分量。

由于该减法,我模拟了像平稳序列(d = 0)这样的残差,因此模型是ARIMA(p,d,q)= ARIMA(?,0,?)。

我的残差的ACF和PACF函数不像文献中用于识别ARIMA模型的情况那么清楚,当我根据它们是置信区间之外的最后值的标准选择参数p和q时,我得到值p = 109 ,q = 97。 Matlab给了我这个案子的错误:

  

使用arima / estimate时出错(第386行)

     

输入回复系列的观察数量不足。

另一方面,当我只查看用于识别p和q参数的N / 4长度的时间序列时,我得到p = 36,q = 34。 Matlab给了我这个案例的错误

  

警告:非线性不等式约束有效;标准错误可能不准确。

     

在1113的arima.estimate

     

使用arima / validateModel时出错(第1306行)

     

非季节性自回归多项式不稳定。

     

arima / setLagOp中的错误(第391行)      Mdl = validateModel(Mdl);

     

arima / estimate中的错误(第1181行)     Mdl = setLagOp(Mdl,' AR',LagOp([1 -coefficients(iAR)'],' Lags',[0 LagsAR]));

我如何纠正识别p和q参数以及这里有什么问题?在这个部分自相关图中,它意味着什么,为什么最后的值如此之大?

ACF of time series PACF of time series

1 个答案:

答案 0 :(得分:1)

guide包含大量有关正确估算ARIMA pq参数的有用信息。

只要我记得从我的学习开始,ACF在滞后q - p之后关闭PACF并且在p - q之后关闭p,因此正确识别q 1}}和AIC订单并不总是直截了当,即使上述指南提供的最佳做法也不足以指向正确的方向。

通常,防范方法是将信息标准(例如BICFPEp)应用于具有q和{{1}的不同订单的多个模型}}。呈现标准的最小值的模型是最好的。假设您的最大qp所需订单为6,而k是观察次数,您可按以下步骤操作:

ll = zeros(6);
pq = zeros(6);

for p = 1:6
    for q = 1:6
        mod = arima(p,0,q);
        [fit,~,fit_ll] = estimate(mod,Y,'print',false);
        ll(p,q) = fit_ll;
        pq(p,q) = p + q;
     end
end

ll = reshape(ll,36,1);
pq = reshape(pq,36,1);

[~,bic] = aicbic(ll,pq+1,k);
bic = reshape(bic,6,6);

完成此操作后,请使用min函数返回的索引,以便找到最佳的qp订单。

另一方面,关于你的错误是什么......好吧,第一个是非常简单的,并且是不言自明的。第二个基本上意味着不可能进行正确的模型估计。