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

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

Оцените несколько моделей путем передачи данных в estimate. Варьируйте авторегрессивное и скользящее среднее степени p и q, соответственно. Каждая подобранная модель содержит оптимизированное значение целевой функции логарифмической правдоподобности, которое вы передаете 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 является самым низким .

См. также

|

Похожие примеры

Подробнее о