exponenta event banner

прогноз

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

Описание

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

пример

YF = forecast(PriorMdl,numperiods,Y) возвращает путь к прогнозируемым ответам YF по длине numperiods горизонт прогноза. Каждый период в YF является средним задним прогностическим распределением, которое получено из заднего распределения предшествующей байесовской модели 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].

Для всех t αt - это ряд независимых 3-D нормальных нововведений со средним значением 0 и ковариацией Λ. Предположим диффузное предварительное распределение для параметров ([Ф1,..., Φ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);

Прогнозные ответы

Прямой прогноз двух лет (восемь четвертей) наблюдений из заднего прогностического распределения. 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

Figure contains 3 axes. Axes 1 with title INFL contains 2 objects of type line. These objects represent Observed, Forecasted. Axes 2 with title DUNRATE contains 2 objects of type line. These objects represent Observed, Forecasted. Axes 3 with title DFEDFUNDS contains 2 objects of type line. These objects represent Observed, Forecasted.

Рассмотрим модель 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

Figure contains 3 axes. Axes 1 with title INFL contains 4 objects of type line. These objects represent Observed, Forecasted, Approximate 95% Credible Interval. Axes 2 with title DUNRATE contains 4 objects of type line. These objects represent Observed, Forecasted, Approximate 95% Credible Interval. Axes 3 with title DFEDFUNDS contains 4 objects of type line. These objects represent Observed, Forecasted, Approximate 95% Credible Interval.

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

свернуть все

Предыдущая байесовская модель VAR, заданная как объект модели в этой таблице.

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

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

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

Предварительный отбор и оценка выборки многомерных рядов ответов, указанных как (numlags + numobsоколо-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)

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

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

yt = Φ1yt − 1 +... + Фpyt p + 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-на-1 коэффициентов линейного тренда времени, если IncludeTrend является true.

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

  • zt=[yt−1′yt−2′⋯yt−p′1txt ], который является вектором 1-by- (mp + r + 2), а Zt является диагональной матрицей m-by-m (mp + r + 2)

    [zt0z0z0zzt0z  0z0z0zzt],

    где 0z - 1-по- (мп + r + 2) вектор нулей.

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

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

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

    где f - m-мерная многомерная нормальная плотность со средним значением ztΛ и ковариацией

Прежде, чем рассмотреть данные, Вы налагаете совместное предшествующее предположение распределения на (Λ,Σ), которым управляет распределение π (Λ,Σ). В байесовском анализе распределение параметров обновляется информацией о параметрах, полученных из правдоподобия данных. В результате получается совместное заднее распределение λ (Λ, Λ 'Y, X, Y0), где:

  • Y представляет собой матрицу T-на-m, содержащую весь ответный ряд {yt}, t = 1,...,T.

  • X представляет собой матрицу T-на-m, содержащую весь экзогенный ряд {xt}, t = 1,...,T.

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

Апостериорное прогностическое распределение

Апостериорное прогностическое распределение апостериорной байесовской модели VAR (p) δ (Yf 'Y, X) - это распределение следующих δ будущих переменных ответа после окончательного наблюдения в оценочной выборке Yf = [yT + 1, yT + 2,..., yT +

  • Примерные и оценочные данные отклика Y

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

  • Новшества ковариантной матрице Λ

  • Оценка и будущая выборка экзогенных данных X

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

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

Совет

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

Алгоритмы

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

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

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

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

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

      • Прогнозируемый период шума αT + 1,..., αT +numperiods

Ссылки

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

См. также

Объекты

Функции

Представлен в R2020a