forecast

Предскажите ответы модели ARIMA или ARIMAX или условные отклонения

Синтаксис

[Y,YMSE] = forecast(Mdl,numperiods,Y0)
[Y,YMSE] = forecast(Mdl,numperiods,Y0,Name,Value)
[Y,YMSE,V] = forecast(___)

Описание

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

[Y,YMSE] = forecast(Mdl,numperiods,Y0,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Например, для модели с компонентом регрессии, 'X0',X0,'XF',XF задает преддемонстрационные и предсказанные данные о предикторе X0 и XF, соответственно.

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

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

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

Полностью заданная модель ARIMA или ARIMAX в виде arima модель возвращена arima или estimate.

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

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

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

Преддемонстрационные данные об ответе раньше инициализировали модель для прогнозирования в виде числового вектор-столбца с длиной numpreobs или numpreobs- numpaths числовая матрица.

Строки Y0 соответствуйте периодам в предварительной выборке, и последняя строка содержит последний преддемонстрационный ответ. numpreobs количество заданных преддемонстрационных ответов, и это должен быть, по крайней мере, Mdl.P. Если numpreobs превышает Mdl.P, forecast использование только последний Mdl.P 'Строки' . Для получения дополнительной информации смотрите Базовые Разделы Времени для Прогнозирования.

Столбцы Y0 соответствуйте отдельным, независимым контурам.

  • Если Y0 вектор-столбец, forecast применяет его к каждому предсказанному пути. В этом случае, все пути к прогнозу Y выведите из тех же начальных условий.

  • Если Y0 матрица, она должна иметь numpaths столбцы, где numpaths максимум среди вторых измерений заданных преддемонстрационных массивов наблюдения Y0, E0, и V0.

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

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

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

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

Строки E0 соответствуйте периодам в предварительной выборке, и последняя строка содержит последние преддемонстрационные инновации. E0 должен иметь, по крайней мере, Mdl.Q строки, чтобы инициализировать компонент MA. Если Mdl.Variance условная модель отклонения (например, garch), E0 может потребовать больше, чем Mdl.Q 'Строки' . Если количество строк превышает минимальный номер, требуемый предсказывать Mdl, forecast использование только последние необходимые строки.

Столбцы E0 соответствуйте отдельным, независимым контурам.

  • Если E0 вектор-столбец, forecast применяет его к каждому предсказанному пути. В этом случае, компонент MA и условная модель отклонения всех путей к прогнозу Y выведите из тех же начальных инноваций.

  • Если E0 матрица, она должна иметь numpaths столбцы.

  • По умолчанию, если numpreobsMdl.P + Mdl.Q, forecast выводит любые необходимые преддемонстрационные инновации путем передачи модели Mdl и преддемонстрационные данные к infer. Для получения дополнительной информации об этом значении по умолчанию для моделей, содержащих компонент регрессии, смотрите X0 и XF.

  • По умолчанию, если numpreobs <Mdl.P + Mdl.Q, forecast наборы все необходимые преддемонстрационные инновации к 0.

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

Преддемонстрационные условные отклонения раньше инициализировали условную модель отклонения в виде разделенной запятой пары, состоящей из 'V0' и положительный числовой вектор-столбец или положительная числовая матрица с numpaths столбцы. Если отклонение модели Mdl.Variance является постоянным, forecast игнорирует V0.

Строки V0 соответствуйте периодам в предварительной выборке, и последняя строка содержит последнее преддемонстрационное условное отклонение. Если Mdl.Variance условная модель отклонения (например, garch объект модели), E0 может потребовать больше, чем Mdl.Q строки, чтобы инициализировать Mdl для прогнозирования. Если количество строк превышает минимальный номер, требуемый предсказывать, forecast функционируйте использует только последние необходимые преддемонстрационные условные отклонения.

Столбцы V0 соответствуйте отдельным, независимым контурам.

  • Если V0 вектор-столбец, forecast применяет его к каждому предсказанному пути. В этом случае, условная модель отклонения всех путей к прогнозу Y выведите из тех же начальных условных отклонений.

  • Если V0 матрица, она должна иметь numpaths столбцы.

  • По умолчанию, если вы задаете достаточно преддемонстрационных инноваций E0 инициализировать условную модель отклонения, forecast выводит любые необходимые преддемонстрационные условные отклонения путем передачи условной модели Mdl.Variance отклонения и E0 к infer.

  • По умолчанию, если вы не задаете E0, но вы задаете достаточно преддемонстрационных ответов Y0 вывести достаточно преддемонстрационных инноваций, затем forecast выводит любые необходимые преддемонстрационные условные отклонения из выведенных преддемонстрационных инноваций.

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

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

Преддемонстрационные данные о предикторе раньше выводили преддемонстрационные инновации E0В виде разделенной запятой пары, состоящей из 'X0' и числовая матрица с numpreds столбцы.

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

  • Если вы не задаете E0x0 должен иметь, по крайней мере, numpreobsMdl.P строки так, чтобы forecast может вывести преддемонстрационные инновации. Если количество строк превышает минимальный номер, требуемый вывести преддемонстрационные инновации, forecast использование только последние необходимые преддемонстрационные наблюдения предиктора. Лучшая практика состоит в том, чтобы установить X0 к той же матрице данных предиктора, используемой по оценке, симуляции или выводу Mdl. Эта установка гарантирует правильную оценку преддемонстрационных инноваций E0.

  • Если вы задаете E0, затем forecast игнорирует X0.

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

Если вы задаете X0 но вы не задаете предсказанные данные о предикторе XF, затем forecast выдает ошибку.

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

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

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

Строки XF соответствуйте моментам времени в будущем; XF (t,:) содержит t- прогнозы предиктора периода вперед. XF должен иметь, по крайней мере, numperiods 'Строки' . Если количество строк превышает numperiods, forecast использование только первый numperiods прогнозы. Для получения дополнительной информации смотрите Базовые Разделы Времени для Прогнозирования.

Столбцы XF отдельные переменные временных рядов, и они соответствуют столбцам X0.

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

Примечания

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

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

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

Прогнозы минимальной среднеквадратичной погрешности (MMSE) условного среднего значения данных об ответе, возвращенных как numperiods- numpaths числовая матрица. Y представляет продолжение Y0 (Y(1,:) происходит в следующем моменте времени после Y0(end,:)).

Yt ,:) содержит условный средний прогноз всех путей для момента времени t в период прогноза (t- прогнозы периода вперед).

forecast определяет numpaths от количества столбцов в преддемонстрационных наборах данных Y0, E0, и V0. Для получения дополнительной информации см. Алгоритмы. Если каждый преддемонстрационный набор данных имеет один столбец, то Y вектор-столбец.

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

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

YMSE (t,:) содержит отклонения ошибки прогноза всех путей для момента времени t в период прогноза.

forecast определяет numpaths от количества столбцов в преддемонстрационных наборах данных Y0, E0, и V0. Для получения дополнительной информации см. Алгоритмы. Если вы не задаете преддемонстрационных наборов данных, или каждый набор данных является вектор-столбцом, то YMSE вектор-столбец.

Квадратные корни из YMSE стандартные погрешности прогнозов Y.

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

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

forecast определяет номер столбцов V (numPaths) к наибольшему числу столбцов в преддемонстрационных массивах Y0, E0, и V0. Если вы не задаете Y0, E0, и V0, затем V numPeriods вектор-столбец.

Во всех случаях строка i содержит условные прогнозы отклонения для i th период.

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

Примеры

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

Предскажите условный средний ответ симулированных данных по горизонту с 30 периодами.

Симулируйте 130 наблюдений из мультипликативной сезонной модели MA с известными значениями параметров.

Mdl = arima('MA',{0.5,-0.3},'SMA',0.4,'SMALags',12,...
		'Constant',0.04,'Variance',0.2);
rng(200);
Y = simulate(Mdl,130);

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

MdlTemplate = arima('MALags',1:2,'SMALags',12);
EstMdl = estimate(MdlTemplate,Y(1:100));
 
    ARIMA(0,0,2) Model with Seasonal MA(12) (Gaussian Distribution):
 
                 Value      StandardError    TStatistic      PValue  
                ________    _____________    __________    __________

    Constant     0.20403      0.069064         2.9542       0.0031344
    MA{1}        0.50212      0.097298         5.1606      2.4619e-07
    MA{2}       -0.20174       0.10447        -1.9312        0.053464
    SMA{12}      0.27028       0.10907          2.478        0.013211
    Variance     0.18681      0.032732         5.7073       1.148e-08

EstMdl новый arima модель, которая содержит предполагаемые параметры (то есть, полностью заданная модель).

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

[YF,YMSE] = forecast(EstMdl,30,Y(1:100));

YF(15)
ans = 0.2040
YMSE(15)
ans = 0.2592

YF и YMSE 30 1 векторы предсказанных ответов и соответствующего MSEs, соответственно. 15 периодов вперед предсказали, 0.2040, и его MSE 0.2592.

Визуально сравните прогнозы с данными о затяжке.

figure
h1 = plot(Y,'Color',[.7,.7,.7]);
hold on
h2 = plot(101:130,YF,'b','LineWidth',2);
h3 = plot(101:130,YF + 1.96*sqrt(YMSE),'r:',...
		'LineWidth',2);
plot(101:130,YF - 1.96*sqrt(YMSE),'r:','LineWidth',2);
legend([h1 h2 h3],'Observed','Forecast',...
		'95% Confidence Interval','Location','NorthWest');
title(['30-Period Forecasts and Approximate 95% '...
			'Confidence Intervals'])
hold off

Предскажите ежедневный Сводный индекс NASDAQ по 500-дневному горизонту.

Загрузите данные NASDAQ, включенные с тулбоксом, и извлеките первые 1 500 наблюдений.

load Data_EquityIdx
nasdaq = DataTable.NASDAQ(1:1500);

Подбирайте модель ARIMA (1,1,1) к данным.

nasdaqModel = arima(1,1,1);
nasdaqFit = estimate(nasdaqModel,nasdaq);
 
    ARIMA(1,1,1) Model (Gaussian Distribution):
 
                  Value      StandardError    TStatistic      PValue  
                _________    _____________    __________    __________

    Constant      0.43031       0.18556          2.3191       0.020392
    AR{1}       -0.074397      0.081985        -0.90744        0.36417
    MA{1}         0.31126      0.077265          4.0285     5.6137e-05
    Variance       27.826       0.63625          43.735              0

Предскажите Сводный индекс в течение 500 дней с помощью подобранной модели. Используйте наблюдаемые данные в качестве преддемонстрационных данных.

[Y,YMSE] = forecast(nasdaqFit,500,nasdaq);

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

lower = Y - 1.96*sqrt(YMSE);
upper = Y + 1.96*sqrt(YMSE);

figure
plot(nasdaq,'Color',[.7,.7,.7]);
hold on
h1 = plot(1501:2000,lower,'r:','LineWidth',2);
plot(1501:2000,upper,'r:','LineWidth',2)
h2 = plot(1501:2000,Y,'k','LineWidth',2);
legend([h1 h2],'95% Interval','Forecast',...
	     'Location','NorthWest')
title('NASDAQ Composite Index Forecast')
hold off

Процесс является неустановившимся, таким образом, ширины интервалов прогноза растут со временем.

Предскажите следующую известную модель ARX (1) в горизонт прогноза с 10 периодами:

yt=1+0.3yt-1+2xt+εt,

где εt стандартная Гауссова случайная переменная, и xt внешняя Гауссова случайная переменная со средним значением 1 и стандартным отклонением 0,5.

Создайте arima объект модели, который представляет модель ARX (1).

Mdl = arima('Constant',1,'AR',0.3,'Beta',2,'Variance',1);

Предсказывать ответы из модели ARX (1), forecast требует:

  • Один преддемонстрационный ответ y0 инициализировать авторегрессивный термин

  • Будущие внешние данные, чтобы включать эффекты внешней переменной на предсказанных ответах

Установите преддемонстрационный ответ на безусловное среднее значение стационарного процесса:

E(yt)=1+2(1)1-0.3.

Для будущих внешних данных чертите 10 значений от распределения внешней переменной.

rng(1);
y0 = (1 + 2)/(1 - 0.3);
xf = 1 + 0.5*randn(10,1);

Предскажите модель ARX (1) в горизонт прогноза с 10 периодами. Задайте преддемонстрационный ответ и будущие внешние данные.

fh = 10;
yf = forecast(Mdl,fh,y0,'XF',xf)
yf = 10×1

    3.6367
    5.2722
    3.8232
    3.0373
    3.0657
    3.3470
    3.4454
    4.2120
    4.0667
    4.8065

yf(3)= 3.8232 3 периода вперед прогноз модели ARX (1).

Предскажите пути ко множественному ответу от известного SAR(1,0,0)(1,1,0)4 модель путем определения нескольких преддемонстрационных путей к ответу.

Создайте arima объект модели, который представляет этот ежеквартальный SAR(1,0,0)(1,1,0)4 модель:

(1-0.5L)(1-0.2L4)(1-L4)yt=1+εt,

где εt стандартная Гауссова случайная переменная.

Mdl = arima('Constant',1,'AR',0.5,'Variance',1,...
    'Seasonality',4,'SARLags',4,'SAR',0.2)
Mdl = 
  arima with properties:

     Description: "ARIMA(1,0,0) Model Seasonally Integrated with Seasonal AR(4) (Gaussian Distribution)"
    Distribution: Name = "Gaussian"
               P: 9
               D: 0
               Q: 0
        Constant: 1
              AR: {0.5} at lag [1]
             SAR: {0.2} at lag [4]
              MA: {}
             SMA: {}
     Seasonality: 4
            Beta: [1×0]
        Variance: 1

Поскольку Mdl содержит авторегрессивные динамические условия, forecast требует предыдущего Mdl.P ответы, чтобы сгенерировать a t- период вперед предсказан из модели. Поэтому предварительная выборка должна содержать девять значений.

Сгенерируйте случайное 9 10 матрица, представляющая 10 преддемонстрационных путей длины 9.

rng(1);
numpaths = 10;
Y0 = rand(Mdl.P,numpaths);

Предскажите 10 путей из модели SAR в 12 горизонтов прогноза четверти. Задайте преддемонстрационные пути к наблюдению Y0.

fh = 12;
YF = forecast(Mdl,fh,Y0);

YF 12 10 матрица независимых предсказанных путей. YF(j,k) j- прогноз периода вперед пути k. Путь YF(:,k) представляет продолжение преддемонстрационного пути Y0(:,k).

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

Y = [Y0;...
     YF];

figure;
plot(Y);
hold on
h = gca;
px = [6.5 h.XLim([2 2]) 6.5];
py = h.YLim([1 1 2 2]);
hp = patch(px,py,[0.9 0.9 0.9]);
uistack(hp,"bottom");
axis tight
legend("Forecast period")
xlabel('Time (quarters)')
ylabel('Response paths')

Больше о

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

Алгоритмы

  • forecast определяет номер демонстрационных путей, чтобы предсказать numpaths к максимальному количеству столбцов среди преддемонстрационных наборов данных E0, V0, и Y0. Все преддемонстрационные наборы данных должны иметь любой numpaths > 1 столбец или один столбец. В противном случае, forecast выдает ошибку. Например, если Y0 имеет пять столбцов, представляя пять путей, затем E0 и V0 может или иметь пять столбцов или один столбец. Если E0 имеет один столбец, затем forecast применяет E0 к каждому пути.

  • NaN значения в преддемонстрационных и будущих наборах данных указывают на недостающие данные. forecast удаляет недостающие данные из преддемонстрационных наборов данных, выполняющих эту процедуру:

    1. forecast горизонтально конкатенирует заданные преддемонстрационные наборы данных Y0, E0, V0, и X0 таким образом, что последние наблюдения происходят одновременно. Результатом может быть зубчатый массив, потому что преддемонстрационные наборы данных могут иметь различное количество строк. В этом случае, forecast переменные перед клавиатурами с ассигновать суммой в размере нулей, чтобы сформировать матрицу.

    2. forecast применяет мудрое списком удаление к объединенной преддемонстрационной матрице путем удаления всех строк, содержащих по крайней мере один NaN.

    3. forecast извлекает обработанные преддемонстрационные наборы данных из результата шага 2 и удаляет все предзаполненные нули.

    forecast применяет подобную процедуру к предсказанным данным о предикторе XF. После forecast применяет мудрое списком удаление к XF, результат должен иметь, по крайней мере, numperiods 'Строки' . В противном случае, forecast выдает ошибку.

    Мудрое списком удаление уменьшает объем выборки и может создать неправильные временные ряды.

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

Вопросы совместимости

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

Ссылки

[1] Baillie, R. и Т. Боллерслев. “Предсказание в Динамических моделях с Зависящими от времени Условными Отклонениями”. Журнал Эконометрики. Издание 52, 1992, стр 91–113.

[2] Боллерслев, T. “Обобщенный Авторегрессивный Условный Heteroskedasticity”. Журнал Эконометрики. Издание 31, 1996, стр 307–327.

[3] Боллерслев, T. “Условно Модель Временных рядов Heteroskedastic за Спекулятивные Цены и Нормы прибыли”. Экономика Анализа и Статистика. Издание 69, 1987, стр 542–547.

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

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

[6] Энгл, R. F. “Авторегрессивный Условный Heteroskedasticity с Оценками Отклонения Инфляции Соединенного Королевства”. Econometrica. Издание 50, 1982, стр 987–1007.

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

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