Когда вы подбираете модель временных рядов к данным, отстающие члены в модели требуют инициализации, обычно с наблюдениями в начале выборки. Кроме того, чтобы измерить качество прогнозов из модели, вы должны удержать данные в конце выборки из оценки. Поэтому перед анализом данных разбейте временную основу на трёх последовательных несвязанных интервалов:
Три временных базовых раздела для одномерных авторегрессионных интегрированных моделей скользящего среднего значения (ARIMA) являются предварительными выборками, оценочными и прогнозными периодами.
Период предварительной выборки - содержит данные, используемые для инициализации отстающих значений в модели. Авторегрессивная интегрированная модель ARIMA скользящего среднего значения (p, D, q) ⨉ (p s, <reservedrangesplaceholder10> <reservedrangesplaceholder9>, <reservedrangesplaceholder8> <reservedrangesplaceholder7>) модель s требует предтипового периода, содержащего, по крайней мере p + D + <reservedrangesplaceholder3> <reservedrangesplaceholder2> + s наблюдения (см. свойство P arima
объект модели). Например, если Вы планируете соответствовать модели ARIMA (4,1,1), условное ожидаемое значение Δ <reservedrangesplaceholder19> <reservedrangesplaceholder18>, учитывая его историю, содержит Δ <reservedrangesplaceholder17> <reservedrangesplaceholder16> - 1 = <reservedrangesplaceholder15> <reservedrangesplaceholder14> - 1 - <reservedrangesplaceholder13> <reservedrangesplaceholder12> - 2 через Δ <reservedrangesplaceholder11> <reservedrangesplaceholder10> - 4 = <reservedrangesplaceholder9> <reservedrangesplaceholder8> - 4 - <reservedrangesplaceholder7> <reservedrangesplaceholder6> - 5. Условное ожидаемое значение Β y 6 является функцией от y 5 до y 1, и, следовательно, вклад правдоподобия É y 6 требует этих наблюдений. Кроме того, данные не существуют для вкладов вероятности Δ <reservedrangesplaceholder1> 1 через Δ <reservedrangesplaceholder0> 5. Поэтому оценка модели требует периода предварительного образца, по меньшей мере, пяти временных точек.
Период оценки - содержит наблюдения, к которым модель явно подходит. Количество наблюдений в выборке оценки effective sample size. Для идентифицируемости параметра эффективным размером выборки должно быть, по крайней мере, количество оцениваемых параметров.
Период прогноза - дополнительный период, в течение которого генерируются прогнозы, известный как forecast horizon. Этот раздел содержит данные holdout для валидации предсказуемости модели.
Предположим y t является рядом откликов и X t является 3-D экзогенным рядом. Рассмотрите подбор кривой SARIMAX (p, D, q) ⨉ (p s, <reservedrangesplaceholder8> <reservedrangesplaceholder7>, <reservedrangesplaceholder6> <reservedrangesplaceholder5>) модель s <reservedrangesplaceholder3> <reservedrangesplaceholder2> к данным ответа в векторе <reservedrangesplaceholder1>-by-1 y
и экзогенные данные в матрице T -by-3 X
. Кроме того, вы хотите, чтобы прогнозируемый горизонт имел K длины (то есть вы хотите продержаться K наблюдениях в конце выборки, чтобы сравнить с прогнозами из подобранной модели).
Этот рисунок показывает разбиения основы времени для оценки модели. В рисунке, J = p + D + <reservedrangesplaceholder2> <reservedrangesplaceholder1> + s.
Этот рисунок показывает фрагменты из массивов, которые соответствуют входным параметрам из estimate
функция arima
модель.
Y
- необходимый вход для определения данных отклика, к которым подходит модель.
'Y0'
является необязательным аргументом пары "имя-значение" для определения предварительных данных отклика. Y0
должно иметь не менее J строк. Чтобы инициализировать модель, estimate
использует только последние наблюдения J Y0 ((end -
.J
+ 1): конец)
estimate
также принимает предварительные примеры инноваций и условных отклонений, когда вы задаете 'E0'
и 'V0'
Аргументы пары "имя-значение". Эти серии не включены в рисунки, но на них распространяются те же принципы.
'X'
является необязательным аргументом пары "имя-значение" для определения экзогенных данных для регрессионого компонента. По умолчанию, estimate
исключает из модели регрессионный компонент независимо от значения коэффициента регрессии Beta
в arima
шаблон модели.
Для модели без экзогенного регрессионного компонента, если вы не задаете Y0
, estimate
backcasts модель для необходимых предварительных наблюдений. estimate
впоследствии подгоняет модель ко всем заданным данным отклика Y
. Хотя estimate
backcasts для предварительной выборки по умолчанию, можно извлечь предварительную выборку из данных и указать его с помощью 'Y0'
аргумент пары "имя-значение", чтобы убедиться, что estimate
инициализирует и подбирает модель к вашим спецификациям.
Если вы задаете 'X'
, применяются следующие условия:
estimate
синхронизирует X
и y
относительно последнего наблюдения в массивах (T - K на предыдущем рисунке) и применяет только необходимое количество наблюдений к регрессионному компоненту. Это действие подразумевает, что X
может иметь больше строк, чем Y
.
Если вы не задаете 'Y0'
Вы должны предоставить по крайней мере J больше экзогенных наблюдений, чем ответов. estimate
использует дополнительные предварительные экзогенные данные для обратной трансляции модели для прессовых откликов.
Если вы задаете 'Y0'
, estimate
использует только последние экзогенные наблюдения, необходимые для подгонки модели (наблюдения J + 1 до T - K на предыдущем рисунке). estimate
игнорирует предварительные экзогенные данные.
Если вы планируете подтвердить прогнозирующую степень подобранной модели, необходимо извлечь прогнозную выборку из набора данных перед оценкой.
В этом примере показано, как разбить временную основу ежемесячного набора данных о международных пассажирах авиакомпании Data_Airline
инициализировать оценку и оценить прогнозирующую эффективность оценочной модели.
Загрузка и предварительная обработка данных
Загрузите данные.
load Data_Airline
Переменная DataTable
- расписание, содержащее временные ряды PSSG
.
Постройте график временных рядов.
plot(DataTable.Time,DataTable.PSSG) xlabel('Time (months)') ylabel('Passenger Counts')
Серия демонстрирует сезонность и экспоненциальный тренд.
Определите, имеют ли данные отсутствующие значения.
anymissing = sum(ismissing(DataTable))
anymissing = 0
Отсутствующих наблюдений нет.
Стабилизируйте ряд путем применения преобразования журнала.
StblTT = varfun(@log,DataTable);
Основа времени разбиения
Рассмотрим SARIMA модель для журнала ежемесячных подсчётов пассажиров с 1949 по 1960 год. Модель требует Примитивные отклики. Система координат arima
шаблон модели для оценки хранит необходимое количество откликов presample в свойстве P
.
Создайте SARIMA шаблон модели для оценки. Задайте, что константа модели 0
. Проверьте необходимое количество наблюдений предварительного образца путем отображения значения P
использование записи через точку.
Mdl = arima('Constant',0,'D',1,'MALags',1,'SMALags',12,... 'Seasonality',12); Mdl.P
ans = 13
Рассмотрим прогнозный горизонт в два года (24 месяца). Разделите данные отклика на предварительно выбранные, оценочные и прогнозные переменные выборки.
fh = 24; % Forecast horizon T = size(StblTT,1); % Total sample size eT = T - Mdl.P - fh; % Effective sample size idxpre = 1:Mdl.P; idxest = (Mdl.P + 1):(T - fh); idxfor = (T - fh + 1):T; y0 = StblTT.log_PSSG(idxpre); % Presample responses y = StblTT.log_PSSG(idxest); % Estimation sample responses yf = StblTT.log_PSSG(idxfor); % Forecast sample responses
Оценка модели
Подбор модели к оценочной выборке. Задайте предварительную выборку при помощи 'Y0'
аргумент пары "имя-значение".
EstMdl = estimate(Mdl,y,'Y0',y0);
ARIMA(0,1,1) Model Seasonally Integrated with Seasonal MA(12) (Gaussian Distribution): Value StandardError TStatistic PValue _________ _____________ __________ __________ Constant 0 0 NaN NaN MA{1} -0.31781 0.087289 -3.6408 0.00027175 SMA{12} -0.56707 0.10111 -5.6083 2.0434e-08 Variance 0.0014446 0.00018295 7.8962 2.8763e-15
EstMdl
является полностью заданным arima
модель, представляющая предполагаемую модель SARIMA
где является Гауссовым со средним значением 0 и отклонением 0,0019.
Потому что константа 0
в шаблоне модели, estimate
рассматривает его как ограничение равенства во время оптимизации. Поэтому выводы о константе нерелевантны.
Прогнозировать модель можно с помощью forecast
функция arima
путем определения EstMdl
и горизонт прогноза fh
. Чтобы инициализировать модель для прогнозирования, задайте данные отклика выборки оценки y
при помощи 'Y0'
аргумент пары "имя-значение".