exponenta event banner

Выбор лагов для модели ошибок ARMA

В этом примере показано, как использовать информационный критерий Akaike (AIC) для выбора несезонных степеней авторегрессии и многочлена скользящего среднего для регрессионной модели с ошибками ARMA.

Оцените несколько моделей, передав данные в estimate. Варьируйте авторегрессивные и скользящие средние градусы p и q соответственно. Каждая подогнанная модель содержит оптимизированное значение целевой функции loglikelive, которое передается aicbic для расчета статистики соответствия AIC. Статистика соответствия AIC штрафует за сложность (т.е. за наличие большего количества параметров) оптимизированную функцию средств к существованию.

Смоделировать данные ответа и предиктора для регрессионной модели с ошибками ARMA:

yt = 2 + Xt [-21.5] + utut = 0 .75ut-1-0.5ut-2 + αt + 0 .7αt-1,

где αt - гауссов со средним значением 0 и дисперсией 1.

Mdl0 = regARIMA('Intercept',2,'Beta',[-2; 1.5],...
    'AR',{0.75, -0.5},'MA',0.7,'Variance',1); 

rng(2);            % For reproducibility
X = randn(1000,2); % Predictors
y = simulate(Mdl0,1000,'X',X);

Регресс ответа на предикторы. Постройте график остатков (т.е. расчетных безусловных возмущений).

Fit = fitlm(X,y);
u = Fit.Residuals.Raw;

figure
plot(u)
title('{\bf Estimated Unconditional Disturbances}')

Figure contains an axes. The axes with title {\bf Estimated Unconditional Disturbances} contains an object of type line.

Постройте график ACF и PACF остатков.

figure
subplot(2,1,1)
autocorr(u)
subplot(2,1,2)
parcorr(u)

Figure contains 2 axes. Axes 1 with title Sample Autocorrelation Function contains 4 objects of type stem, line. Axes 2 with title Sample Partial Autocorrelation Function contains 4 objects of type stem, line.

ACF и PACF распадаются медленно, что указывает на процесс ARMA. Эти корреляры трудно использовать для определения лагов. Однако представляется разумным, чтобы оба многочлена имели четыре или менее лагов на основе длин автокорреляций и частичных автокорреляций.

Чтобы определить количество AR и MA лагов, определите и оцените регрессионные модели с ошибками ARMA (p, q) путем варьирования p = 1,.., 3 и q = 1,..., 3. Сохраните значение целевой функции оптимизированного журнала для каждой модели .

pMax = 3;
qMax = 3;
LogL = zeros(pMax,qMax);
SumPQ = LogL;

for p = 1:pMax
    for q = 1:qMax
        Mdl = regARIMA(p,0,q);
        [~,~,LogL(p,q)] = estimate(Mdl,y,'X',X,...
            'Display','off');
        SumPQ(p,q) = p+q;
    end
end

Рассчитайте AIC для каждого вписывания модели. Число параметров равно p + q + 4 (т.е. пересечение, два коэффициента регрессии и дисперсия инноваций).

logL = reshape(LogL,pMax*qMax,1);...
    % Elements taken column-wise 
numParams = reshape(SumPQ,pMax*qMax,1) + 4;
aic = aicbic(logL,numParams);
AIC = reshape(aic,pMax,qMax)
AIC = 3×3
103 ×

    3.1323    3.0195    2.9984
    2.9280    2.9297    2.9314
    2.9297    2.9305    2.9321

minAIC = min(aic)
minAIC = 2.9280e+03
[bestP,bestQ] = find(AIC == minAIC)
bestP = 2
bestQ = 1

Наиболее подходящей моделью является регрессионная модель с ошибками AR (2,1), поскольку соответствующая AIC является самой низкой .

См. также

|

Связанные примеры

Подробнее