forecast

Класс: 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 не может содержать NaNс.

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

Типы данных: 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 использует последние нововведения presample. Последняя строка содержит последние нововведения presample.

По умолчанию, если 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 прогнозы -period-award 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), затем использует список удаления, чтобы удалить любое NaNс. 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-by- numPaths матрица.

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

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

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

  • Если вы не задаете Y0, E0, и U0, затем YMSE является numperiods Вектор-столбец.

  • Если вы задаете Y0, E0, и U0, все имеющие numPaths столбцы, затем YMSE является numperiods-by- 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-by- 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.

Многие наблюдения в выборке holdout падают за 95% -ные интервалы прогноза. Для этого существуют две причины:

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

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

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

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

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), включая ИПЦ в качестве предиктора и известный перехват .

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

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] Box, G. E. P., G. M. Jenkins, and G. C. Reinsel. Анализ временных рядов: прогнозирование и управление. 3-й эд. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1994.

[2] Davidson, R., and J. G. MacKinnon. Эконометрическая теория и методы. Оксфорд, Великобритания: Oxford University Press, 2004.

[3] Enders, W. Applied Econometric Time Series. Hoboken, NJ: John Wiley & Sons, Inc., 1995.

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

[5] Pankratz, A. Прогнозирование с динамическими регрессиоными моделями. John Wiley & Sons, Inc., 1991.

[6] Tsay, R.S. Analysis of Financial Time Series. 2nd ed. Hoboken, NJ: John Wiley & Sons, Inc., 2005.

Для просмотра документации необходимо авторизоваться на сайте