Выберите Lags for ARMA Error Model

В этом примере показано, как использовать Критерий информации о Akaike (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}')

Постройте ACF и PACF остаточных значений.

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

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 является самым низким.

Смотрите также

|

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

Больше о

Для просмотра документации необходимо авторизоваться на сайте