В этом примере показано, как использовать Критерий информации о Akaike (AIC), чтобы выбрать полиномиальные степени задержки несезонного авторегрессивного и скользящего среднего значения для модели регрессии с ошибками ARMA.
Оцените несколько моделей путем передачи данных estimate
. Варьируйтесь степени авторегрессивного и скользящего среднего значения p и q, соответственно. Каждая подобранная модель содержит оптимизированное значение целевой функции логарифмической правдоподобности, которое вы передаете aicbic
чтобы вычислить AIC соответствуют статистике. Статистическая величина подгонки AIC штрафует оптимизированную функцию логарифмической правдоподобности за сложность (т.е. за то, что она имела больше параметров).
Симулируйте ответ и данные о предикторе для модели регрессии с ошибками ARMA:
где является Гауссовым со средним значением 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 является самым низким.