forecast

Предскажите ответы из Байесовой векторной модели (VAR) авторегрессии

Описание

forecast хорошо подходит для вычисления безусловных прогнозов из выборки модели Bayesian VAR (p), которая не содержит внешний компонент регрессии. Для усовершенствованных приложений, таких как условное прогнозирование из выборки, прогнозирование модели VARX(p), видят обвинение отсутствующего значения и спецификация сэмплера Гиббса для следующей прогнозирующей оценки распределения, simsmooth.

пример

YF = forecast(PriorMdl,numperiods,Y) возвращает путь предсказанных ответов YF по длине numperiods предскажите горизонт. Каждый период в YF среднее значение следующего прогнозирующего распределения, которое выведено из апостериорного распределения предшествующей модели Bayesian VAR (p) PriorMdl учитывая данные об ответе Y. Выход YF представляет продолжение Y.

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

пример

[YF,YFStd] = forecast(PriorMdl,numperiods,Y) также возвращает соответствующие стандартные отклонения следующего прогнозирующего распределения YFStd.

Примеры

свернуть все

Рассмотрите 3-D модель VAR (4) для инфляции США (INFL), безработица (UNRATE), и федеральные фонды (FEDFUNDS) уровни.

[INFLtUNRATEtFEDFUNDSt]=c+j=14Φj[INFLt-jUNRATEt-jFEDFUNDSt-j]+[ε1,tε2,tε3,t].

\forall t, εt серия независимых 3-D нормальных инноваций со средним значением 0 и ковариация Σ. Примите рассеянное предшествующее распределение для параметров ([Φ1,...,Φ4,c],Σ).

Загрузите и предварительно обработайте данные

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

load Data_USEconModel
seriesnames = ["INFL" "UNRATE" "FEDFUNDS"];
DataTable.INFL = 100*[NaN; price2ret(DataTable.CPIAUCSL)];
DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)];
DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)];
seriesnames(2:3) = "D" + seriesnames(2:3);
rmDataTable = rmmissing(DataTable);

Создайте предшествующую модель

Создайте рассеянную предшествующую модель. Задайте серийные имена ответа.

numseries = numel(seriesnames);
numlags = 4;

PriorMdl = bayesvarm(numseries,numlags,'SeriesNames',seriesnames);

Предскажите ответы

Непосредственно предскажите два года (восемь четвертей) наблюдений от следующего прогнозирующего распределения. forecast оценивает апостериорное распределение параметров, и затем формирует следующее прогнозирующее распределение.

numperiods = 8;
YF = forecast(PriorMdl,numperiods,rmDataTable{:,seriesnames});

YF 8 3 матрица предсказанных ответов.

Постройте предсказанные ответы.

fh = rmDataTable.Time(end) + calquarters(0:8);
for j = 1:PriorMdl.NumSeries
subplot(3,1,j)
plot(rmDataTable.Time(end - 20:end),rmDataTable{end - 20:end,seriesnames(j)},'r',...
    fh,[rmDataTable{end,seriesnames(j)}; YF(:,j)],'b');
legend("Observed","Forecasted",'Location','NorthWest')
title(seriesnames(j))
end

Рассмотрите 3-D модель VAR (4) Ответов Прогноза от Следующего Прогнозирующего Распределения.

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

load Data_USEconModel
seriesnames = ["INFL" "UNRATE" "FEDFUNDS"];
DataTable.INFL = 100*[NaN; price2ret(DataTable.CPIAUCSL)];
DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)];
DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)];
seriesnames(2:3) = "D" + seriesnames(2:3);
rmDataTable = rmmissing(DataTable);

Создайте рассеянную предшествующую модель. Задайте серийные имена ответа.

numseries = numel(seriesnames);
numlags = 4;

PriorMdl = bayesvarm(numseries,numlags,'SeriesNames',seriesnames);

Непосредственно предскажите два года (восемь четвертей) наблюдений ответа от следующего прогнозирующего распределения. Возвратите следующие стандартные отклонения.

numperiods = 8;
[YF,YStd] = forecast(PriorMdl,numperiods,rmDataTable{:,seriesnames});

YF и YStd 8 3 матрицы предсказанных ответов и соответствующих стандартных отклонений, соответственно.

Постройте предсказанные ответы и аппроксимируйте 95%-е вероятные интервалы.

fh = rmDataTable.Time(end) + calquarters(0:8);
for j = 1:PriorMdl.NumSeries
subplot(3,1,j)
plot(rmDataTable.Time(end - 20:end),rmDataTable{end - 20:end,seriesnames(j)},'r',...
    fh,[rmDataTable{end,seriesnames(j)}; YF(:,j)],'b',...
    fh,[rmDataTable{end,seriesnames(j)}; YF(:,j) + 1.96*YStd(:,j)],'b--',...
    fh,[rmDataTable{end,seriesnames(j)}; YF(:,j) - 1.96*YStd(:,j)],'b--');
legend("Observed","Forecasted","Approximate 95% Credible Interval",'Location','NorthWest')
title(seriesnames(j))
end

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

свернуть все

Предшествующая модель Bayesian VAR в виде объекта модели в этой таблице.

Объект моделиОписание
conjugatebvarmЗависимый, матричная нормальная инверсия Уишарт спрягают модель, возвращенную bayesvarm, conjugatebvarm, или estimate
semiconjugatebvarmНезависимый, нормальный обратный Уишарт полуспрягает предшествующую модель, возвращенную bayesvarm или semiconjugatebvarm
diffusebvarmРассейте предшествующую модель, возвращенную bayesvarm или diffusebvarm
normalbvarmНормальная сопряженная модель с фиксированной инновационной ковариационной матрицей, возвращенной bayesvarm, normalbvarm, или estimate

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

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

Предварительная выборка и выборка оценки многомерный ряд ответа в виде (numlags + numobs)-by-numseries числовая матрица.

Строки соответствуют наблюдениям, и последняя строка содержит последнее наблюдение. forecast использует первый numlags = PriorMdl.P наблюдения как предварительная выборка, чтобы инициализировать предшествующую модель PriorMdl для следующей оценки. forecast оценивает следующее использование остающегося numobs наблюдения и PriorMdl.

numseries количество переменных отклика PriorMdl.NumSeries. Столбцы соответствуют отдельным переменным отклика PriorMdl.SeriesNames.

Для получения дополнительной информации см. Алгоритмы.

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

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

свернуть все

Путь многомерных серийных прогнозов ответа, возвращенных как numperiods- numseries числовая матрица. YF среднее значение следующего прогнозирующего распределения каждого периода в горизонте прогноза.

YF представляет продолжение серии Y ответа. Строки соответствуют наблюдениям; строка j j- период вперед предсказан. Столбцы соответствуют столбцам в Y.

Предскажите стандартные отклонения, возвращенные как numperiods- numseries числовая матрица. YFStd стандартное отклонение следующего прогнозирующего распределения каждого периода в горизонте прогноза. Размерности соответствуют размерностям YF.

Больше о

свернуть все

Байесова векторная авторегрессия (VAR) модель

Bayesian VAR model обрабатывает все коэффициенты и инновационную ковариационную матрицу как случайные переменные в m - размерная, стационарная модель VARX(p). Модель имеет одну из трех форм, описанных в этой таблице.

МодельУравнение
VAR уменьшаемой формы (p) в обозначении разностного уравнения

yt=Φ1yt1+...+Φpytp+c+δt+Βxt+εt.

Многомерная регрессия

yt=Ztλ+εt.

Матричная регрессия

yt=Λzt+εt.

В течение каждого раза t = 1..., T:

  • yt является m - размерный наблюдаемый вектор отклика, где m = numseries.

  • Φ1, …, Φp является m-by-m содействующие матрицы AR задержек 1 через p, где p = numlags.

  • c является m-by-1 вектор из констант модели если IncludeConstant true.

  • δ является m-by-1 вектор из линейных коэффициентов тренда времени если IncludeTrend true.

  • Β m-by-r матрица коэффициентов регрессии r-by-1 вектор из наблюдаемых внешних предикторов x t, где r = NumPredictors. Все переменные предикторы появляются в каждом уравнении.

  • zt=[yt1yt2ytp1txt], который является 1 на (mp + r + 2) вектор, и Z t является m-by-m матрица диагонали блока (mp + r + 2)

    [zt0z0z0zzt0z0z0z0zzt],

    где 0z является 1 на (mp + r + 2) нулевой вектор.

  • Λ=[Φ1Φ2ΦpcδΒ], который является (mp + r + 2)-by-m случайная матрица коэффициентов и m (mp + r + 2)-by-1 векторный λ = vec (Λ).

  • εt является m-by-1 вектор из случайных, последовательно некоррелированых, многомерных нормальных инноваций с нулевым вектором для среднего значения и m-by-m матрица Σ для ковариации. Это предположение подразумевает, что вероятность данных

    (Λ,Σ|y,x)=t=1Tf(yt;Λ,Σ,zt),

    где f является m - размерная многомерная нормальная плотность со средним z t Λ и ковариация Σ, оцененный в y t.

Прежде, чем рассмотреть данные, вы налагаете предположение joint prior distribution на (Λ,Σ), которым управляет распределение π (Λ,Σ). В Байесовом анализе распределение параметров обновляется с информацией о параметрах, полученных из вероятности данных. Результатом является π joint posterior distribution (Λ,Σ | Y, X, Y 0), где:

  • Y является T-by-m матрица, содержащая целый ряд ответа {y t}, t = 1, …, T.

  • X является T-by-m матрица, содержащая целый внешний ряд {x t}, t = 1, …, T.

  • Y 0 является p-by-m, матрица преддемонстрационных данных раньше инициализировала модель VAR для оценки.

Следующее прогнозирующее распределение

posterior predictive distribution следующей модели Bayesian VAR (p) π (Yf |Y, X) является распределением следующих переменных отклика будущего τ после итогового наблюдения в выборке оценки Yf = [y T +1, y T +2, …, y T +τ], учитывая следующее, маргинализованный по Λ и Σ:

  • Предварительная выборка и демонстрационные данные об ответе оценки Y

  • Коэффициенты Λ

  • Инновационная ковариационная матрица Σ

  • Оценка и будущие демонстрационные внешние данные X

Символически,

π(Yf|Y,X)=π(Yf|Y,X,Λ,Σ)π(Λ,Σ|Y,X)dΛdΣ.

Советы

  • Симуляция Монте-Карло подвергается изменению. Если forecast симуляция Монте-Карло использования, затем оценивает, и выводы могут варьироваться, когда вы вызываете forecast многократно при на вид эквивалентных условиях. Чтобы воспроизвести результаты оценки, установите seed случайных чисел при помощи rng перед вызовом forecast.

Алгоритмы

  • Если следующее прогнозирующее распределение аналитически тяжело (верный для большинства случаев), forecast реализации выборка Цепи Маркова Монте-Карло (MCMC) с Байесовым увеличением данных, чтобы вычислить среднее и стандартное отклонение следующего прогнозирующего распределения. Для этого forecast вызовы simsmooth, который использует в вычислительном отношении интенсивную процедуру.

  • Большая часть Econometrics Toolbox™ forecast функции принимают предполагаемый или следующий объект модели, от которого можно сгенерировать прогнозы. Такая модель охватывает параметрическую структуру и данные. Однако forecast функция моделей Bayesian VAR требует, чтобы выборочные данные предварительной выборки и оценки сделали следующее:

    • Выполните Байесов параметр, обновляющийся, чтобы оценить апостериорные распределения. forecast MCMC реализаций, производящий с Байесовым увеличением данных, которое включает шаг сглаживания Фильтра Калмана, который требует целого наблюдаемого ряда.

    • Предскажите будущие ответы в присутствии двух источников неопределенности:

      • ε шума оценки 1, …, ε T, который вызывает неопределенность параметра

      • Предскажите шум периода ε T +1, …, ε T +numperiods

Ссылки

[1] Литтермен, Роберт Б., "Предсказывающий с Байесовыми Векторными Авторегрессиями: Пять Лет опыта". Журнал Бизнес-и Экономической статистики 4, № 1 (январь 1986): 25–38. https://doi.org/10.2307/1391384.

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

Объекты

Функции

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