exponenta event banner

прогноз

Класс: regARIMA

Прогнозные ответы регрессионной модели с ошибками ARIMA

Синтаксис

[Y,YMSE] = forecast(Mdl,numperiods)
[Y,YMSE,U] = forecast(Mdl,numperiods)
[Y,YMSE,U] = forecast(Mdl,numperiods,Name,Value)

Описание

[Y,YMSE] = forecast(Mdl,numperiods) ответы на прогнозы (Y) для регрессионной модели с ошибками временных рядов ARIMA и генерирует соответствующие среднеквадратические ошибки (YMSE).

[Y,YMSE,U] = forecast(Mdl,numperiods) дополнительно прогнозирует безусловные возмущения для регрессионной модели с ошибками ARIMA.

[Y,YMSE,U] = forecast(Mdl,numperiods,Name,Value) прогнозы с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары.

Входные аргументы

развернуть все

Регрессионная модель с ошибками ARIMA, заданная как regARIMA модель, возвращенная regARIMA или estimate.

Свойства Mdl не может содержать NaNs.

Горизонт прогноза или количество моментов времени в периоде прогноза, указанное как положительное целое число.

Типы данных: double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Предварительные инновации, которые инициализируют компонент скользящего среднего (MA) модели ошибок ARIMA, указанный как пара, разделенная запятыми, состоящая из 'E0' и вектор числового столбца или числовую матрицу. forecast предполагает, что предварительные инновации имеют среднее значение 0.

  • Если E0 является вектором столбца, то forecast применяет его к каждому прогнозируемому пути.

  • Если E0, Y0, и U0 - матрицы с несколькими путями, тогда они должны иметь одинаковое количество столбцов.

  • E0 требует, по крайней мере, Mdl.Q строк. Если E0 содержит дополнительные строки, затем forecast использует последние предварительные инновации. Последняя строка содержит последние предварительные инновации.

По умолчанию, если U0 содержит, по крайней мере, Mdl.P + Mdl.Q строки, затем forecast выводит E0 от U0. Если U0 имеет недостаточное количество строк и forecast не может сделать вывод о достаточных наблюдениях U0 из данных предварительной выборки (Y0 и X0), то E0 равно 0.

Типы данных: double

Предварительный пример безусловных возмущений, инициализирующих компонент авторегрессии (AR) модели ошибок ARIMA, указанный как пара, разделенная запятыми, состоящая из 'U0' и вектор числового столбца или числовую матрицу. Если не указан предварительный пример инноваций E0, forecast использование U0 чтобы вывести их.

  • Если U0 является вектором столбца, то forecast применяет его к каждому прогнозируемому пути.

  • Если U0, Y0, и E0 - матрицы с несколькими путями, тогда они должны иметь одинаковое количество столбцов.

  • U0 требует, по крайней мере, Mdl.P строк. Если U0 содержит дополнительные строки, затем forecast использует последние предварительные безусловные нарушения. Последняя строка содержит последнюю предварительную безусловную помеху.

По умолчанию, если предварительные данные (Y0 и X0) содержит, по крайней мере, Mdl.P строки, затем forecast выводит U0 из данных предварительной выборки. Если данные предварительного отбора не указаны, то все требуемые безусловные нарушения предварительного отбора равны 0.

Типы данных: double

Предварительные данные предиктора, инициализирующие модель для прогнозирования, заданную как пара, разделенная запятыми, состоящая из 'X0' и числовую матрицу. Столбцы X0 являются отдельными переменными временных рядов. forecast использование X0 для определения предварительных безусловных нарушений U0. Поэтому при указании U0, forecast игнорирует X0.

  • Если не указать U0, то X0 требует, по крайней мере, Mdl.P строки для вывода U0. Если X0 содержит дополнительные строки, затем forecast использует последние наблюдения. Последняя строка содержит последние наблюдения каждой серии.

  • X0 требует того же количества столбцов, что и длина Mdl.Beta.

  • При указании X0, то необходимо также указать XF.

  • forecast удовольствия X0 в виде фиксированной (нестохастической) матрицы.

Типы данных: double

Прогнозируемые или будущие данные предиктора, указанные как пара, разделенная запятыми, состоящая из 'XF' и числовую матрицу.

Столбцы XF являются отдельными временными рядами, каждый из которых соответствует прогнозам ряда в X0. Строка t из XF содержит прогнозы на t-период вперед X0.

При указании X0, то необходимо также указать XF. XF и X0 требуется одинаковое количество столбцов. XF должен иметь по крайней мере numperiods строк. Если XF превышает numperiods строки, затем forecast использует первый numperiods прогнозы.

forecast удовольствия XF в виде фиксированной (нестохастической) матрицы.

По умолчанию forecast не включает компонент регрессии в модель, независимо от наличия коэффициентов регрессии в Mdl.

Типы данных: double

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

  • Если Y0 - вектор столбца, forecast применяет его к каждому прогнозируемому пути.

  • Если Y0, E0, и U0 - матрицы с несколькими путями, тогда они должны иметь одинаковое количество столбцов.

  • Если не указать U0, то Y0 требует, по крайней мере, Mdl.P строки для вывода U0. Если Y0 содержит дополнительные строки, затем forecast использует последние наблюдения. Последняя строка содержит последнее наблюдение.

Типы данных: double

Примечания

  • NaNs в E0, U0, X0, XF, и Y0 указать отсутствующие значения и forecast удаляет их. Программное обеспечение объединяет наборы данных предварительного отбора (E0, U0, X0, и Y0), затем использует удаление на основе списка для удаления любого NaNs. forecast аналогично удаляет NaNs от XF. Удаление NaNs в данных уменьшает размер выборки. Такое удаление может также создавать нерегулярные временные ряды.

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

  • Набор X0 на ту же матрицу предиктора, что и X используется при оценке, моделировании или выводе Mdl. Это назначение обеспечивает правильный вывод о безусловных возмущениях, U0.

  • Чтобы включить компонент регрессии в прогноз ответа, необходимо указать прогнозируемые данные предиктора. XF. То есть можно указать XF без указания X0, но forecast выдает ошибку при указании X0 без указания XF.

Выходные аргументы

развернуть все

Прогнозы минимальной среднеквадратической ошибки (MMSE) данных ответа, возвращаемые в виде числовой матрицы. Y имеет numperiods строки и numPaths столбцы.

  • Если не указать Y0, E0, и U0, то Y является numperiods вектор столбца.

  • При указании Y0, E0, и U0, все имеющие numPaths столбцы, затем Y является numperiodsоколо-numPaths матрица.

  • Строка i из Y содержит прогнозы на i-й период.

Типы данных: double

Среднеквадратические ошибки (MSE) прогнозируемых ответов, возвращенные в виде числовой матрицы. YMSE имеет numperiods строки и numPaths столбцы.

  • Если не указать Y0, E0, и U0, то YMSE является numperiods вектор столбца.

  • При указании Y0, E0, и U0, все имеющие numPaths столбцы, затем YMSE является numperiodsоколо-numPaths матрица.

  • Строка i из YMSE содержит отклонения ошибки прогноза для i-го периода.

  • Данные предиктора не способствуют изменчивости YMSE потому что forecast удовольствия XF как нестохастическая матрица.

  • Квадратные корни YMSE являются стандартными ошибками прогнозов Y.

Типы данных: double

Прогнозы минимальной среднеквадратической ошибки (MMSE) будущих безусловных возмущений модели ошибок ARIMA, возвращаемые в виде числовой матрицы. U имеет numperiods строки и numPaths столбцы.

  • Если не указать Y0, E0, и U0, то U является numperiods вектор столбца.

  • При указании Y0, E0, и U0, все имеющие numPaths столбцы, затем U является numperiodsоколо-numPaths матрица.

  • Строка i из U содержит прогнозируемые безусловные нарушения на i-й период.

Типы данных: double

Примеры

развернуть все

Прогнозные ответы из следующей регрессионной модели с ошибками ARMA (2,1) на 30-периодном горизонте :

yt = Xt [0,1-0,2] + utut = 0 .5ut-1-0.8ut-2 + αt-0.5αt-1,

где αt - гауссов с дисперсией 0,1.

Укажите модель. Моделирование ответов из модели и двух рядов предикторов.

Mdl0 = regARIMA('Intercept',0,'AR',{0.5 -0.8},...
    'MA',-0.5,'Beta',[0.1 -0.2],'Variance',0.1);
rng(1); % For reproducibility
X =  randn(130,2);
y = simulate(Mdl0,130,'X',X);

Поместите модель в первые 100 наблюдений и зарезервируйте оставшиеся 30 наблюдений для оценки производительности прогноза.

Mdl = regARIMA('ARLags',1:2);
EstMdl = estimate(Mdl,y(1:100),'X',X(1:100,:));
 
    Regression with ARMA(2,0) Error Model (Gaussian Distribution):
 
                  Value      StandardError    TStatistic      PValue  
                 ________    _____________    __________    __________

    Intercept    0.004358      0.021314        0.20446         0.83799
    AR{1}         0.36833      0.067103         5.4891      4.0408e-08
    AR{2}        -0.75063      0.090865        -8.2609      1.4453e-16
    Beta(1)      0.076398      0.023008         3.3205      0.00089863
    Beta(2)       -0.1396      0.023298        -5.9919      2.0741e-09
    Variance     0.079876       0.01342         5.9522      2.6453e-09

EstMdl является новым regARIMA модель, содержащая оценки. Оценки близки к их истинным значениям.

Использовать EstMdl для прогнозирования 30-периодического горизонта. Визуально сравните прогнозы с данными удержания с помощью графика.

[yF,yMSE] = forecast(EstMdl,30,'Y0',y(1:100),...
    'X0',X(1:100,:),'XF',X(101:end,:));

figure
plot(y,'Color',[.7,.7,.7]);
hold on
plot(101:130,yF,'b','LineWidth',2);
plot(101:130,yF+1.96*sqrt(yMSE),'r:',...
		'LineWidth',2);
plot(101:130,yF-1.96*sqrt(yMSE),'r:','LineWidth',2);
h = gca;
ph = patch([repmat(101,1,2) repmat(130,1,2)],...
        [h.YLim fliplr(h.YLim)],...
        [0 0 0 0],'b');
ph.FaceAlpha = 0.1;
legend('Observed','Forecast',...
		'95% Forecast Interval','Location','Best');
title(['30-Period Forecasts and Approximate 95% '...
			'Forecast Intervals'])
axis tight
hold off

Figure contains an axes. The axes with title 30-Period Forecasts and Approximate 95% Forecast Intervals contains 5 objects of type line, patch. These objects represent Observed, Forecast, 95% Forecast Interval.

Многие наблюдения в выборке задержки выходят за пределы 95% интервалов прогноза. Это объясняется двумя причинами:

  • В этом примере предсказатели генерируются случайным образом. estimate рассматривает предикторы как фиксированные. Интервалы прогноза 95% на основе оценок из estimate не учитывайте изменчивость предикторов.

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

Прогнозирование стационарного, логарифмического ВВП с использованием регрессионной модели с ошибками ARMA (1,1), включая CPI в качестве предиктора .

Загрузка набора макроэкономических данных США и предварительная обработка данных.

load Data_USEconModel;
logGDP = log(DataTable.GDP);
dlogGDP = diff(logGDP);          % For stationarity
dCPI = diff(DataTable.CPIAUCSL); % For stationarity
numObs = length(dlogGDP);
gdp = dlogGDP(1:end-15);   % Estimation sample
cpi = dCPI(1:end-15);
T = length(gdp);        % Effective sample size
frstHzn =  T+1:numObs;  % Forecast horizon
hoCPI = dCPI(frstHzn);  % Holdout sample
dts = dates(2:end);     % Date nummbers

Подгонка регрессионной модели с ошибками ARMA (1,1 ).

Mdl = regARIMA('ARLags',1,'MALags',1);
EstMdl = estimate(Mdl,gdp,'X',cpi);
 
    Regression with ARMA(1,1) Error Model (Gaussian Distribution):
 
                   Value       StandardError    TStatistic      PValue  
                 __________    _____________    __________    __________

    Intercept      0.014793      0.0016289        9.0818      1.0684e-19
    AR{1}           0.57601        0.10009        5.7548      8.6754e-09
    MA{1}          -0.15258        0.11978       -1.2738         0.20272
    Beta(1)       0.0028972      0.0013989         2.071        0.038355
    Variance     9.5734e-05     6.5562e-06        14.602       2.723e-48

Прогнозировать темпы ВВП на 15-квартальный горизонт. Используйте образец оценки в качестве предварительного примера для прогноза.

[gdpF,gdpMSE] = forecast(EstMdl,15,'Y0',gdp,...
    'X0',cpi,'XF',hoCPI);

Постройте график прогнозов и 95% интервалов прогноза.

figure
h1 = plot(dts(end-65:end),dlogGDP(end-65:end),...
    'Color',[.7,.7,.7]);
datetick
hold on
h2 = plot(dts(frstHzn),gdpF,'b','LineWidth',2);
h3 = plot(dts(frstHzn),gdpF+1.96*sqrt(gdpMSE),'r:',...
		'LineWidth',2);
plot(dts(frstHzn),gdpF-1.96*sqrt(gdpMSE),'r:','LineWidth',2);
ha = gca;
title(['{\bf Forecasts and Approximate 95% }'...
    '{\bf Forecast Intervals for GDP rate}']);
ph = patch([repmat(dts(frstHzn(1)),1,2) repmat(dts(frstHzn(end)),1,2)],...
    [ha.YLim fliplr(ha.YLim)],...
    [0 0 0 0],'b');
ph.FaceAlpha = 0.1;
legend([h1 h2 h3],{'Observed GDP rate','Forecasted GDP rate ',...
    '95% Forecast Interval'},'Location','Best','AutoUpdate','off');
axis tight
hold off

Figure contains an axes. The axes with title {\bf Forecasts and Approximate 95% }{\bf Forecast Intervals for GDP rate} contains 5 objects of type line, patch. These objects represent Observed GDP rate, Forecasted GDP rate, 95% Forecast Interval.

Прогнозный корень единицы нестационарный, логарифмический ВВП с использованием регрессионной модели с ошибками ARIMA (1,1,1), включая CPI как предиктор и известный перехват .

Загрузите набор макроэкономических данных США и выполните предварительную обработку данных.

load Data_USEconModel;
numObs = length(DataTable.GDP);
logGDP = log(DataTable.GDP(1:end-15));
cpi = DataTable.CPIAUCSL(1:end-15);
T = length(logGDP);                  % Effective sample size
frstHzn =  T+1:numObs;               % Forecast horizon
hoCPI = DataTable.CPIAUCSL(frstHzn); % Holdout sample

Укажите модель для периода оценки.

Mdl = regARIMA('ARLags',1,'MALags',1,'D',1);

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

Reg4Int = [ones(T,1), cpi]\logGDP;
intercept = Reg4Int(1);

Рассмотрите возможность выполнения анализа чувствительности с помощью сетки перехватов.

Задайте пересечение и соответствие регрессионной модели с ошибками ARIMA (1,1,1 ).

Mdl.Intercept = intercept;
EstMdl = estimate(Mdl,logGDP,'X',cpi,...
    'Display','off')
EstMdl = 
  regARIMA with properties:

     Description: "ARIMA(1,1,1) Error Model (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
       Intercept: 5.80142
            Beta: [0.00396706]
               P: 2
               D: 1
               Q: 1
              AR: {0.922709} at lag [1]
             SAR: {}
              MA: {-0.387844} at lag [1]
             SMA: {}
        Variance: 0.000108943
 
   Regression with ARIMA(1,1,1) Error Model (Gaussian Distribution)

Прогноз ВВП на 15-квартальный горизонт. Используйте образец оценки в качестве предварительного примера для прогноза.

[gdpF,gdpMSE] = forecast(EstMdl,15,'Y0',logGDP,...
    'X0',cpi,'XF',hoCPI);

Постройте график прогнозов и 95% интервалов прогноза.

figure
h1 = plot(dates(end-65:end),log(DataTable.GDP(end-65:end)),...
    'Color',[.7,.7,.7]);
datetick
hold on
h2 = plot(dates(frstHzn),gdpF,'b','LineWidth',2);
h3 = plot(dates(frstHzn),gdpF+1.96*sqrt(gdpMSE),'r:',...
		'LineWidth',2);
plot(dates(frstHzn),gdpF-1.96*sqrt(gdpMSE),'r:',...
    'LineWidth',2);
ha = gca;

title(['{\bf Forecasts and Approximate 95% }'...
			'{\bf Forecast Intervals for log GDP}']);
ph = patch([repmat(dates(frstHzn(1)),1,2) repmat(dates(frstHzn(end)),1,2)],...
        [ha.YLim fliplr(ha.YLim)],...
        [0 0 0 0],'b');
ph.FaceAlpha = 0.1;
legend([h1 h2 h3],{'Observed GDP','Forecasted GDP',...
		'95% Forecast Interval'},'Location','Best','AutoUpdate','off');
axis tight
hold off

Figure contains an axes. The axes with title {\bf Forecasts and Approximate 95% }{\bf Forecast Intervals for log GDP} contains 5 objects of type line, patch. These objects represent Observed GDP, Forecasted GDP, 95% Forecast Interval.

Безусловные возмущения, ut, являются нестационарными, поэтому ширина интервалов прогноза увеличивается со временем.

Подробнее

развернуть все

Алгоритмы

  • forecast вычисляет прогнозируемые MSE ответа, YMSE, путем обработки матриц данных предиктора (X0 и XF) как не стохастический и статистически независимый от инноваций модели. Поэтому YMSE отражает дисперсию, связанную с безусловными возмущениями только модели ошибок ARIMA.

  • forecast использование Y0 и X0 вывести U0. Поэтому при указании U0, forecast игнорирует Y0 и X0.

Ссылки

[1] Бокс, Г. Э. П., Г. М. Дженкинс и Г. К. Рейнсель. Анализ временных рядов: прогнозирование и контроль. 3-й ред. Энглвуд Клиффс, Нью-Джерси: Прентис Холл, 1994.

[2] Дэвидсон, Р. и Дж. Г. Маккиннон. Эконометрическая теория и методы. Оксфорд, Великобритания: Oxford University Press, 2004.

[3] Enders, W. Applied Econometric Time Series. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 1995.

[4] Гамильтон, Дж. Д. Анализ временных рядов. Принстон, Нью-Джерси: Princeton University Press, 1994.

[5] Панкрац, А. Прогнозирование с использованием динамических регрессионных моделей. John Wiley & Sons, Inc., 1991.

[6] Цай, Р. С. Анализ финансовых временных рядов. 2-й ред. Хобокен, Нью-Джерси: John Wiley & Sons, Inc., 2005.