1

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

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

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

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

输入响应序列的观测数不足。

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

警告:非线性不等式约束处于活动状态;标准误差可能不准确。

在 arima.estimate 为 1113

使用 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 时间序列的 PACF

4

1 回答 1

1

指南包含许多关于正确估计 ARIMApq参数的有用信息。

只要我记得在我的研究中,由于ACF滞后后拖尾和滞后后q - p拖尾PACFp - q正确识别pq订单并不总是简单明了,即使上述指南提供的最佳实践也不足以为您指出正确的方向。

通常,防故障方法是将信息标准(如AIC或)应用于具有BICFPE的不同阶数的多个p模型q。呈现标准最小值的模型是最好的模型。假设您的最大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订单。

附带说明一下,对于您的错误...好吧,第一个非常简单并且不言自明。第二个基本上意味着正确的模型估计是不可能的。

于 2017-12-25T02:40:44.997 回答