Этот пример показывает, как вывести невязки из подобранной модели ARIMA. Диагностические проверки выполняются на невязках для оценки подгонки модели.
Временные ряды - журнал квартальный индекс потребительских цен Австралии (ИПЦ), измеренный с 1972 по 1991 год.
Загрузите австралийские данные ИПЦ. Сначала возьмите различия, затем постройте график серии.
load Data_JAustralian y = DataTable.PAU; T = length(y); dY = diff(y); figure plot(2:T,dY) xlim([0,T]) title('Differenced Australian CPI')
Дифференцированный ряд выглядит относительно стационарно.
Постройте график функции автокорреляции (ACF) и функции частичной автокорреляции (PACF), чтобы искать автокорреляцию в дифференцированном ряду.
figure subplot(2,1,1) autocorr(dY) subplot(2,1,2) parcorr(dY)
ACF выборки распадается медленнее, чем выборка PACF. Последний отсекает после лага 2. Это, наряду с дифференцированием первой степени, предполагает модель ARIMA (2,1,0 ).
Задайте, а затем оцените, модель ARIMA (2,1,0). Выведите невязки для диагностической проверки .
Mdl = arima(2,1,0); EstMdl = estimate(Mdl,y);
ARIMA(2,1,0) Model (Gaussian Distribution): Value StandardError TStatistic PValue __________ _____________ __________ __________ Constant 0.010072 0.0032802 3.0707 0.0021356 AR{1} 0.21206 0.095428 2.2222 0.026271 AR{2} 0.33728 0.10378 3.2499 0.0011543 Variance 9.2302e-05 1.1112e-05 8.3066 9.8491e-17
[res,~,logL] = infer(EstMdl,y);
Заметьте, что модель подходит к исходной серии, а не к дифференцированной серии. Модель, которая будет подогнана, Mdl
, имеет свойство D
равно 1
. Это учитывает одну степень дифференцирования.
Эта спецификация принимает Гауссовское инновационное распределение. infer
возвращает значение целевой функции логарифмической правдоподобности (logL
) наряду с невязками (res
).
Стандартизируйте выведенные невязки и проверяйте на нормальность и любую необъяснимую автокорреляцию.
stdr = res/sqrt(EstMdl.Variance); figure subplot(2,2,1) plot(stdr) title('Standardized Residuals') subplot(2,2,2) histogram(stdr,10) title('Standardized Residuals') subplot(2,2,3) autocorr(stdr) subplot(2,2,4) parcorr(stdr)
Невязки кажутся некоррелированными и примерно нормально распределенными. Существуют некоторые признаки того, что существует избыток больших невязок.
Чтобы исследовать возможный избыточный куртоз в инновационном процессе, подбирайте модель ARIMA (2,1,0) с распределением Student по исходным сериям. Верните значение целевой функции логарифмической правдоподобности, чтобы вы могли использовать информационный критерий Байеса (BIC) для сравнения подгонки двух моделей.
MdlT = Mdl;
MdlT.Distribution = 't';
[EstMdlT,~,logLT] = estimate(MdlT,y);
ARIMA(2,1,0) Model (t Distribution): Value StandardError TStatistic PValue _________ _____________ __________ __________ Constant 0.0099745 0.0016152 6.1753 6.6057e-10 AR{1} 0.32689 0.075503 4.3294 1.495e-05 AR{2} 0.18719 0.074691 2.5063 0.012202 DoF 2.2594 0.95562 2.3643 0.018064 Variance 0.0002472 0.00074618 0.33129 0.74043
[~,bic] = aicbic([logLT,logL],[5,4],T)
bic = 1×2
-492.5317 -479.4691
Модели с t-инновационным распределением (MdlT
и EstMdlT
) имеют один дополнительный параметр (степени свободы распределения t).
Согласно BIC, модель ARIMA (2,1,0) с инновационным распределением Student's является лучшим выбором, потому что она имеет меньшее (более отрицательное) значение BIC .