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 парные аргументы.

Входные параметры

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

Модель Regression с ошибками ARIMA, заданными как regARIMA модель возвращена regARIMA или estimate.

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

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

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

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

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

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

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

  • Если E0y0 , и 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 применяет его к каждому предсказанному пути.

  • Если U0y0 , и 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, U0x0 , XF, и Y0 укажите на отсутствующие значения и forecast удаляет их. Программное обеспечение объединяет преддемонстрационные наборы данных (E0, U0x0 , и 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 th период.

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

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

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

  • Если вы задаете Y0, E0, и U0, все имеющие numPaths столбцы, затем YMSE numperiods- numPaths матрица.

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

  • Данные о предикторе не вносят изменчивость в 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 th период.

Типы данных: 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.

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

Mdl = 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(Mdl,130,'X',X);

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

ToEstMdl = regARIMA('ARLags',1:2);
EstMdl = estimate(ToEstMdl,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
[yF,yMSE] = forecast(EstMdl,30,'Y0',y(1:100),...
    'X0',X(1:100,:),'XF',X(101:end,:));

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

Много наблюдений в демонстрационном падении затяжки вне 95%-х интервалов прогноза. Две причины этого:

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

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

Предскажите стационарный, регистрируйте GDP с помощью модели регрессии с 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) ошибки.

ToEstMdl = regARIMA('ARLags',1,'MALags',1);
EstMdl = estimate(ToEstMdl,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

Предскажите уровень GDP по 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

Предскажите модульный неустановившийся корень, регистрируйте GDP с помощью модели регрессии с 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

Задайте модель в течение периода оценки.

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

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

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

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

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

ToEstMdl.Intercept = intercept;
EstMdl = estimate(ToEstMdl,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.00396705]
               P: 2
               D: 1
               Q: 1
              AR: {0.922709} at lag [1]
             SAR: {}
              MA: {-0.387846} at lag [1]
             SMA: {}
        Variance: 0.000108943
 
   Regression with ARIMA(1,1,1) Error Model (Gaussian Distribution)

Предскажите GDP по 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

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

Больше о

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

Алгоритмы

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

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

Ссылки

[1] Поле, G. E. P. Г. М. Дженкинс и Г. К. Рейнсель. Анализ Временных Рядов: Прогнозирование и Управление. 3-й редактор Englewood Cliffs, NJ: Prentice Hall, 1994.

[2] Дэвидсон, R. и Дж. Г. Маккиннон. Эконометрическая теория и методы. Оксфорд, Великобритания: Издательство Оксфордского университета, 2004.

[3] Enders, W. Прикладные эконометрические временные ряды. Хобокен, NJ: John Wiley & Sons, Inc., 1995.

[4] Гамильтон, J. D. Анализ Временных Рядов. Принстон, NJ: Издательство Принстонского университета, 1994.

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

[6] Tsay, R. S. Анализ Финансовых Временных рядов. 2-й редактор Хобокен, NJ: John Wiley & Sons, Inc., 2005.

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