Этот пример показывает, как использовать Критерий информации о Akaike (AIC), чтобы выбрать полиномиальные степени задержки несезонного авторегрессивного и скользящего среднего значения для модели регрессии с ошибками ARMA.
Оцените несколько моделей путем передачи данных estimate
. Отличайтесь степени авторегрессивного и скользящего среднего значения p и q, соответственно. Каждая подобранная модель содержит оптимизированное loglikelihood значение целевой функции, которое вы передаете aicbic
, чтобы вычислить статистику подгонки AIC. Статистическая величина подгонки AIC штрафует оптимизированную функцию loglikelihood за сложность (т.е. за то, что она имела больше параметров).
Моделируйте ответ и данные о предикторе для модели регрессии с ошибками ARMA:
где является Гауссовым со средним значением 0 и отклонением 1.
Mdl = 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(Mdl,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. Сохраните оптимизированное loglikelihood значение целевой функции для каждой образцовой подгонки.
pMax = 3; qMax = 3; LogL = zeros(pMax,qMax); SumPQ = LogL; for p = 1:pMax for q = 1:qMax ToEstMdl = regARIMA(p,0,q); [~,~,LogL(p,q)] = estimate(ToEstMdl,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 является самым низким.