Задайте преддемонстрационный и данные о периоде прогноза, чтобы предсказать модель ARIMAX

В этом примере показано, как разделить временную шкалу в предварительную выборку, оценку, и предсказать периоды, и это показывает, как предоставить соответствующее количество наблюдений, чтобы инициализировать динамическую модель для оценки и прогнозирования.

Рассмотрите оценку и прогнозирование динамической модели, содержащей термины авторегрессивного и скользящего среднего значения и компонент регрессии для внешних переменных предикторов (например, модель ARMAX). Оценить и предсказать модель, estimate должен иметь достаточно преддемонстрационных ответов, чтобы инициализировать авторегрессивные термины, и это должно иметь достаточно инноваций, чтобы инициализировать термины скользящего среднего значения. Если вы не задаете преддемонстрационные ответы, то estimate обратные броски для необходимого количества, и это устанавливает необходимые преддемонстрационные инновации на 0.

Точно так же предсказывать ответы от подобранной модели, forecast должен иметь достаточно преддемонстрационных ответов и инноваций. Несмотря на то, что необходимо задать преддемонстрационные ответы, предскажите наборы требуемые преддемонстрационные инновации к 0. Далее, компонент регрессии в период прогноза требует предсказанных или будущих данных о предикторе; без будущих данных о предикторе, forecast исключает компонент регрессии из модели, когда это генерирует прогнозы.

Несмотря на то, что поведения по умолчанию estimate и forecast разумны для большинства рабочих процессов, хорошая практика должна инициализировать модель самостоятельно путем разделения временной шкалы выборки в предварительную выборку, оценку, и предсказать периоды и предоставление ассигновать суммы в размере наблюдений.

Рассмотрите модель ARMAX(1,2), которая предсказывает текущие США действительный валовой национальный продукт (GNPR) уровень с текущим индексом промышленного производства (IPI), занятость (E), и действительная заработная плата (WR) уровни как внешние переменные. Разделите временную шкалу выборки в предварительную выборку, оценку, и предскажите периоды. Подбирайте модель к выборке оценки и используйте преддемонстрационные ответы, чтобы инициализировать авторегрессивный термин. Затем предскажите GNPR уровень от подобранной модели. Когда вы предсказываете:

  • Задайте ответы в конце периода оценки как предварительная выборка, чтобы инициализировать авторегрессивный термин

  • Задайте данные о предикторе в конце периода оценки как предварительная выборка, чтобы инициализировать компонент скользящего среднего значения. forecast выводит необходимые инновации из заданных преддемонстрационных ответов и данных о предикторе.

  • Включайте эффекты переменных предикторов на предсказанных ответах путем определения будущих данных о предикторе.

Загрузите набор данных Нельсона-Плоссера.

load Data_NelsonPlosser

Для получения дополнительной информации на наборе данных, отобразите Description.

Таблица DataTable содержит ежегодные измерения, но набор данных является агностиком основы времени. Чтобы применить основу времени к данным, преобразуйте DataTable к расписанию.

DataTable = table2timetable(DataTable,"RowTimes",datetime(DataTable.Dates,"Format","yyyy"));

Среди ряда в DataTable, некоторые демонстрационные даты начала начинаются в различных годах. DataTable синхронизирует весь ряд путем предварительного ожидания достаточного количества ведущего NaNs так, чтобы все ряды имели то же число элементов.

Программное обеспечение модели Econometrics Toolbox™ ARIMA удаляет все строки (моменты времени) из ответа и данных о предикторе, если по крайней мере одно наблюдение отсутствует. Это поведение по умолчанию может усложнить разделение временной шкалы. Один способ избежать поведения по умолчанию состоит в том, чтобы удалить все строки, содержащие по крайней мере одно отсутствующее значение самостоятельно.

Удалите весь ведущий NaNs из данных путем применения listwise удаления.

varnames = ["GNPR" "IPI" "E" "WR"];
Tbl = rmmissing(DataTable(:,varnames));

Стабилизируйте переменные отклика и переменные предикторы путем преобразования их в возвраты.

StblTbl = varfun(@price2ret,Tbl);
StblTbl.Properties.VariableNames = varnames;
T = size(StblTbl,1) % Total sample size
T = 61
GNPR = StblTbl.GNPR;
X = StblTbl{:,varnames(2:end)};

Преобразование в возвраты уменьшает объем выборки одним.

Подбирать модель ARMAX(1,2) к данным, estimate должен инициализировать условное среднее значение первого ответа y1 при помощи предыдущего ответа y0 и две предыдущих инновации ε0 и ε-1. Если вы не задаете преддемонстрационные значения, estimate обратные броски, чтобы получить y0 и это устанавливает преддемонстрационные инновации на 0, который является их ожидаемым значением.

Создайте векторы индекса для предварительной выборки, оценки, и предскажите выборки. Рассмотрите 5-летний горизонт прогноза.

idxpresample = 1;
idxestimate = 2:56;
idxforecast = 57:T;

Подбирайте модель ARMAX(1,2) к данным. Задайте преддемонстрационные данные об ответе и демонстрационные оценкой внешние данные. Поскольку нет никакой модели, из которой можно вывести преддемонстрационные инновации, позволить estimate установить необходимые преддемонстрационные инновации на 0.

Mdl = arima(1,0,2);

y0est = GNPR(idxpresample); % Presample response data for estimation
yest = GNPR(idxestimate);   % Response data for estimation 
XEst = X(idxestimate,:);     % Estimation sample exogenous data

Mdl = estimate(Mdl,yest,'Y0',y0est,'X',XEst,'Display','off');

Предсказывать модель ARMAX(1,2) в период прогноза, forecast должен инициализировать первый прогноз y57 при помощи предыдущего ответа y56и предыдущие две инновации ε56 и ε55. Однако, если вы предоставляете достаточно ответа и внешних данных, чтобы инициализировать модель, затем forecast выводит инновации для вас. Чтобы предсказать модель ARMAX(1,2), предскажите, требует этих трех ответов и этих двух наблюдений из внешних данных незадолго до периода прогноза. Когда вы обеспечиваете преддемонстрационные данные для прогнозирования, forecast использование только последние необходимые наблюдения. Однако этот пример продолжает путем определения только необходимого объема преддемонстрационных наблюдений.

Предскажите подбиравшую модель ARMAX(1,2) в период прогноза. Задайте только необходимые наблюдения в конце выборки оценки как преддемонстрационные данные. Задайте период прогноза внешние данные.

y0f = yest((end - 2):end); % Presample response data for forecasting
X0f = XEst((end - 1):end,:); % Presample exogenous data for forecasting
XF = X(idxforecast,:);     % Forecast period exogenous data for model regression component

yf = forecast(Mdl,5,y0f,'X0',X0f,'XF',XF);

yf вектор 5 на 1 из предсказанных ответов, представляющих продолжение выборки оценки yest в период прогноза.

Постройте последнюю половину данных об ответе и прогнозов.

yrs = year(StblTbl.Time(30:end));

figure;
plot(yrs,StblTbl.GNPR(30:end),"b","LineWidth",2);
hold on
plot(yrs(end-4:end),yf,"r--","LineWidth",2);
h = gca;
px = yrs([end - 4 end end end - 4]);
py = h.YLim([1 1 2 2]);
hp = patch(px,py,[0.9 0.9 0.9]);
uistack(hp,"bottom");
axis tight
title("Real GNP Rate");
legend(["Forecast period" "Observed" "Forecasted"])

Figure contains an axes object. The axes object with title Real GNP Rate contains 3 objects of type patch, line. These objects represent Forecast period, Observed, Forecasted.

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

Объекты

Функции

Похожие темы