semiconjugatebvarm

Байесовская модель вектора авторегрессии (VAR) с полуконъюгатной предшествующей для вероятности данных

Описание

Объект модели Bayesian VAR semiconjugatebvarm определяет совместное предшествующее распределение массива коэффициентов модели Λ и инновационная ковариационная матрица Σ вара <reservedrangesplaceholder1>-D (<reservedrangesplaceholder0>) модель. Предшествующее распределение соединений (

В целом, когда вы создаете объект модели Bayesian VAR, он задает совместное предшествующее распределение и характеристики только модели VARX. То есть объект модели является шаблоном, предназначенным для дальнейшего использования. В частности, чтобы включить данные в модель для апостериорного анализа распределения, передайте объект модели и данные в соответствующую функцию объекта.

Создание

Описание

Как создать semiconjugatebvarm объект используйте либо semiconjugatebvarm функцию (описанную здесь) или bayesvarm функция. Синтаксисы для каждой функции схожи, но опции различаются. bayesvarm позволяет вам легко установить предыдущие значения гиперзначений параметров для Миннесоты до [1] регуляризации, в то время какsemiconjugatebvarm требует полной спецификации предшествующих гиперпараметров распределения.

пример

PriorMdl = semiconjugatebvarm(numseries,numlags) создает numseries-D Bayesian VAR (numlags) объект модели PriorMdl, который задает размерности и предыдущие допущения для всех коэффициентов модели λ=vec(Λ)=vec([Φ1Φ2ΦpcδΒ]) и инновации ковариация, где:

  • numseries = m, количество переменных временных рядов откликов.

  • numlags = p, полином AR порядка.

  • Предшествующее распределение соединений (λ,

пример

PriorMdl = semiconjugatebvarm(numseries,numlags,Name,Value) устанавливает свойства, доступные для записи (кроме NumSeries и P) с использованием аргументов пары "имя-значение". Заключайте каждое имя свойства в кавычки. Для примера, semiconjugatebvarm(3,2,'SeriesNames',["UnemploymentRate" "CPI" "FEDFUNDS"]) задает имена трех переменных отклика в модели Bayesian VAR (2).

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

расширить все

Количество m временных рядов, заданное как положительное целое число. numseries задает размерность многомерной переменной отклика yt и инновационных εt.

numseries устанавливает NumSeries свойство.

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

Количество отстающих ответов в каждом уравнении y t, заданное в виде неотрицательного целого числа. Получившаяся модель является VAR (numlags) модель; каждая задержка имеет numseries-by- numseries матрица коэффициентов.

numlags устанавливает P свойство.

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

Свойства

расширить все

Можно задать значения свойств записи, когда вы создаете объект модели с помощью синтаксиса аргумента пары "имя-значение" или после того, как вы создаете объект модели с помощью записи через точку. Например, чтобы создать 3-D модель Bayesian VAR (1) и пометить переменные первой-третьей характеристики, а затем включить линейный временной термин тренда, введите:

PriorMdl = semiconjugatebvarm(3,1,'SeriesNames',["UnemploymentRate" "CPI" "FEDFUNDS"]);
PriorMdl.IncludeTrend = true;

Характеристики модели и размерность

Описание модели, заданное как строковый скаляр или вектор символов. Значение по умолчанию описывает размерность модели, например '2-Dimensional VAR(3) Model'.

Пример: "Model 1"

Типы данных: string | char

Это свойство доступно только для чтения.

Количество m временных рядов, заданное как положительное целое число. NumSeries задает размерность многомерной переменной отклика yt и инновационных εt.

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

Это свойство доступно только для чтения.

Многомерный авторегрессионный полином порядка, заданный как неотрицательное целое число. P - это максимальная задержка, которая имеет ненулевую матрицу коэффициентов.

P задает количество предварительных наблюдений, необходимых для инициализации модели.

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

Имена рядов ответов, заданные как NumSeries длина строки вектор. Значение по умолчанию является ['Y1' 'Y2'... 'Y <reservedrangesplaceholder0>']. semiconjugatebvarm хранит SeriesNames как строковый вектор.

Пример: ["UnemploymentRate" "CPI" "FEDFUNDS"]

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

Флаг для включения постоянной c модели, заданный как значение в этой таблице.

ЗначениеОписание
falseУравнения отклика не включают константу модели.
trueВсе уравнения отклика содержат константу модели.

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

Флаг для включения линейного временного термина тренда δt, заданный как значение в этой таблице.

ЗначениеОписание
falseУравнения отклика не включают линейный срок тренда времени.
trueВсе уравнения отклика содержат линейный срок тренда времени.

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

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

Гиперпараметры Распределения

Среднее значение многомерной нормы перед λ, заданное как NumSeries * k-by-1 числовой вектор, где k = NumSeries * P + IncludeIntercept + IncludeTrend + NumPredictors (количество коэффициентов в уравнении отклика).

Му (1: k) соответствует всем коэффициентам в уравнении переменной отклика SeriesNames(1), Му ((k + 1): (2* k)) соответствует всем коэффициентам в уравнении переменной отклика SeriesNames(2)и так далее. Для набора индексов, соответствующих уравнению:

  • Элементы 1 через NumSeries соответствуют задержке 1 AR коэффициентов переменных отклика, упорядоченных по SeriesNames.

  • Элементы NumSeries + 1 через 2*NumSeries соответствуют задержке 2 коэффициентов AR переменных отклика, упорядоченных по SeriesNames.

  • В целом элементы (q - 1) * NumSeries + 1 через q* NumSeries соответствует задержке q Коэффициенты AR переменных отклика, упорядоченные по SeriesNames.

  • Если IncludeConstant является true, элемент NumSeries*P + 1 является моделью постоянной.

  • Если IncludeTrend является true, элемент NumSeries*P + 2 - линейный коэффициент тренда времени.

  • Если NumPredictors > 0, элементы NumSeries*P + 3 через k составляют вектор коэффициентов регрессии экзогенных переменных.

Этот рисунок показывает структуру транспонирования Mu для 2-D модели VAR (3), которая содержит постоянный вектор и четыре экзогенных предиктора:

[ϕ1,11ϕ1,12ϕ2,11ϕ2,12ϕ3,11ϕ3,12c1β11β12β13β14y1,tϕ1,21ϕ1,22ϕ2,21ϕ2,22ϕ3,21ϕ3,22c2β21β22β23β24y2,t],

где

  • ϕ q jk является элементом (j, k) матрицы коэффициентов AR q задержки.

  • c j является моделью, константой в уравнении переменной j отклика.

  • B j u является коэффициентом регрессии экзогенной переменной, u в уравнении переменной отклика j.

Совет

bayesvarm позволяет вам задавать Mu легко при использовании метода регуляризации Миннесоты. Чтобы задать Mu непосредственно:

  1. Установите отдельные переменные для предыдущего среднего значения каждой матрицы коэффициентов и вектора.

  2. Горизонтально конкатенируйте все средства коэффициентов в этом порядке:

    Coeff=[Φ1Φ2ΦpcδΒ].

  3. Векторизация транспонирования средней матрицы коэффициентов.

    Mu = Coeff.';
    Mu = Mu(:);

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

Условная ковариационная матрица многомерной нормы, предшествующей λ, заданная как NumSeries * k-by-NumSeries * k симметричная, положительно определенная матрица, где k = NumSeries * P + IncludeIntercept + IncludeTrend + NumPredictors (количество коэффициентов в уравнении отклика).

Индексы строка и столбец соответствуют коэффициентам модели так же, как и Mu. Например, рассмотрим 3-D модель VAR (2), содержащую постоянную и четыре экзогенные переменные.

  • V(1,1) - Var (ϕ 1,11).

  • V(5,6) является Cov (ϕ 2,12, ϕ 2,13).

  • V(8,9) является Cov (β 11, β 12).

Совет

bayesvarm позволяет вам создать любую предшествующую модель Bayesian VAR и задать V легко при использовании метода регуляризации Миннесоты.

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

Матрица шкалы Обратного Желания, заданная как NumSeries-by- NumSeries положительная определенная числовая матрица.

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

Обратные степени свободы Wishart, заданные как положительный числовой скаляр.

Для правильного распределения задайте значение, которое больше numseries – 1. Для распределения с конечным средним задайте значение, которое больше numseries + 1.

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

Параметры модели VAR, выведенные из распределительных гиперпараметров

Это свойство доступно только для чтения.

Распределение, среднее из авторегрессивных матриц коэффициентов Φ1..., Φ <reservedrangesplaceholder1> связался с изолированными ответами, определенными как P-D вектор камеры NumSeries-by- NumSeries числовые матрицы.

AR {j} is, j, матрица коэффициентов задержки j . Строки соответствуют уравнениям, а столбцы соответствуют отстающим переменным отклика; SeriesNames определяет порядок переменных отклика и уравнений. Знаки коэффициентов являются знаками модели VAR, выраженными в обозначении разностного уравнения.

Если P = 0, AR - пустая камера. В противном случае AR - набор средств коэффициентов AR, извлеченных из Mu.

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

Это свойство доступно только для чтения.

Среднее распределение модели константы c (или точки пересечения), заданное как NumSeries-by-1 числовой вектор. Константа (j) - константа в уравнении j; SeriesNames определяет порядок уравнений.

Если IncludeConstant = false, Constant - пустой массив. В противном случае Constant - модель среднего вектора константы, извлеченная из Mu.

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

Это свойство доступно только для чтения.

Среднее распределение линейного временного δ тренда, заданное как NumSeries-by-1 числовой вектор. Тренд (j) - линейный временной тренд в уравнении j; SeriesNames определяет порядок уравнений.

Если IncludeTrend = false (по умолчанию), Trend - пустой массив. В противном случае Trend - среднее значение коэффициента линейного временного тренда, извлеченное из Mu.

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

Это свойство доступно только для чтения.

Среднее распределение матрицы коэффициента регрессии B, сопоставленной с переменными экзогенного предиктора, заданное как NumSeries-by- NumPredictors числовая матрица.

Бета (j,:) содержит коэффициенты регрессии каждого предиктора в уравнении переменной отклика j y j, т. Бета (:, k) содержит коэффициенты регрессии в каждом уравнении предиктора xk. По умолчанию все переменные предиктора находятся в регрессионном компоненте всех уравнений отклика. Можно уменьшить вес предиктора из уравнения, задав, для соответствующего коэффициента, предшествующее среднее значение 0 в Mu и небольшое отклонение в V.

Когда вы создаете модель, переменные предиктора являются гипотетическими. Вы задаете данные предиктора, когда вы работаете с моделью (для примера, когда вы оцениваете апостериор при помощи estimate). Столбцы данных предиктора определяют порядок столбцов Beta.

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

Это свойство доступно только для чтения.

Среднее распределение ковариационной матрицы NumSeries инновации в каждый момент времени t = 1,..., T, заданные как NumSeries-by- NumSeries положительная определенная числовая матрица. Строки и столбцы соответствуют инновациям в уравнениях переменных отклика, упорядоченных по SeriesNames.

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

Функции объекта

estimateОцените апостериорное распределение параметров модели Байесовской векторной авторегрессии (VAR)
forecastПрогнозные отклики из модели байесовской векторной авторегрессии (VAR)
simsmoothСглаживание симуляции модели байесовской векторной авторегрессии (VAR)
simulateСимулируйте коэффициенты и инновации ковариационной матрицы модели Байесовской векторной авторегрессии (VAR)
summarizeСводная статистика распределения модели байесовской векторной авторегрессии (VAR)

Примеры

свернуть все

Рассмотрим 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 и ковариацией Σ. Примите следующие предыдущие распределения:

  • vec([Φ1,...,Φ4,c])|ΣΝ39(μ,V), где μ является вектором 39 на 1 средств и V - ковариационная матрица 39 на 39.

  • ΣInverseWishart(Ω,ν), где Ω является матрицей шкалы 3 на 3 и ν - степени свободы.

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

numseries = 3;
numlags = 4;
PriorMdl = semiconjugatebvarm(numseries,numlags)
PriorMdl = 
  semiconjugatebvarm with properties:

        Description: "3-Dimensional VAR(4) Model"
          NumSeries: 3
                  P: 4
        SeriesNames: ["Y1"    "Y2"    "Y3"]
    IncludeConstant: 1
       IncludeTrend: 0
      NumPredictors: 0
                 Mu: [39x1 double]
                  V: [39x39 double]
              Omega: [3x3 double]
                DoF: 13
                 AR: {[3x3 double]  [3x3 double]  [3x3 double]  [3x3 double]}
           Constant: [3x1 double]
              Trend: [3x0 double]
               Beta: [3x0 double]
         Covariance: [3x3 double]

PriorMdl является semiconjugatebvarm Байесовский объект модели VAR, представляющий предшествующее распределение коэффициентов и инноваций ковариации модели 3-D VAR (4). На отображении командной строки показаны свойства модели. Можно отобразить свойства при помощи записи через точку.

Отобразите предыдущие средние матрицы четырех коэффициентов AR путем установки каждой матрицы в камере на переменную.

AR1 = PriorMdl.AR{1}
AR1 = 3×3

     0     0     0
     0     0     0
     0     0     0

AR2 = PriorMdl.AR{2}
AR2 = 3×3

     0     0     0
     0     0     0
     0     0     0

AR3 = PriorMdl.AR{3}
AR3 = 3×3

     0     0     0
     0     0     0
     0     0     0

AR4 = PriorMdl.AR{4}
AR4 = 3×3

     0     0     0
     0     0     0
     0     0     0

semiconjugatebvarm центрируют все коэффициенты AR в 0 по умолчанию. The AR свойство доступно только для чтения, но определяется из свойства writable Mu.

Рассмотрим 1-D байесовскую модель AR (2) для ежедневных возвратов NASDAQ со 2 января 1990 года по 31 декабря 2001 года .

yt=c+ϕ1yt-1+ϕ2yt-1+εt.

Априорными являются:

  • [ϕ1ϕ2c]|σ2N3(μ,V), где μ является вектором коэффициентных средств 3 на 1 и V является ковариационной матрицей 3 на 3.

  • σ2IG(α,β), где α=ν2 является степенями свободы и β=Ω2 - шкала.

Создайте полуконъюгатную предшествующую модель для параметров модели AR (2).

numseries = 1;
numlags = 2;
PriorMdl = semiconjugatebvarm(numseries,numlags)
PriorMdl = 
  semiconjugatebvarm with properties:

        Description: "1-Dimensional VAR(2) Model"
          NumSeries: 1
                  P: 2
        SeriesNames: "Y1"
    IncludeConstant: 1
       IncludeTrend: 0
      NumPredictors: 0
                 Mu: [3x1 double]
                  V: [3x3 double]
              Omega: 1
                DoF: 11
                 AR: {[0]  [0]}
           Constant: 0
              Trend: [1x0 double]
               Beta: [1x0 double]
         Covariance: 0.1111

semiconjugatebvarm интерпретирует инновации ковариации как обратную случайную переменную Wishart. Поскольку шкалы и степени свободы гиперпараметров среди обратного Wishart и обратных гамма- распределений не равны, можно настроить их с помощью записи через точку. Для примера, чтобы достичь 10 степеней свободы для обратной гамма интерпретации, установите обратные степени свободы Wishart равными 20.

PriorMdl.DoF = 20
PriorMdl = 
  semiconjugatebvarm with properties:

        Description: "1-Dimensional VAR(2) Model"
          NumSeries: 1
                  P: 2
        SeriesNames: "Y1"
    IncludeConstant: 1
       IncludeTrend: 0
      NumPredictors: 0
                 Mu: [3x1 double]
                  V: [3x3 double]
              Omega: 1
                DoF: 20
                 AR: {[0]  [0]}
           Constant: 0
              Trend: [1x0 double]
               Beta: [1x0 double]
         Covariance: 0.0556

В модели 3-D VAR (4) Create Normal-Inverse-Wishart Semiconjugate Private Model рассмотрите исключение лагов 2 и 3 из модели.

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

Создайте полуконъюгатную предшествующую модель для параметров модели 3-D VAR (4). Задайте имена переменных отклика.

По умолчанию предшествующие средства коэффициента AR равны нулю. Задайте значения высокой герметичности для лагов 2 и 3 путем установки их предыдущих отклонений на 1e-6. Оставьте все другие значения плотности коэффициентов по умолчанию:

  • 1 для отклонений коэффициентов AR

  • 1e3 для отклонений постоянных векторов

  • 0 для всех ковариаций коэффициентов

numseries = 3;
numlags = 4;
seriesnames = ["INFL"; "UNRATE"; "FEDFUNDS"];
vPhi1 = ones(numseries,numseries);
vPhi2 = 1e-6*ones(numseries,numseries);
vPhi3 = 1e-6*ones(numseries,numseries);
vPhi4 = ones(numseries,numseries);
vc = 1e3*ones(3,1);
Vmat = [vPhi1 vPhi2 vPhi3 vPhi4 vc]';
V = diag(Vmat(:));
PriorMdl = semiconjugatebvarm(numseries,numlags,'SeriesNames',seriesnames,...
    'V',V)
PriorMdl = 
  semiconjugatebvarm with properties:

        Description: "3-Dimensional VAR(4) Model"
          NumSeries: 3
                  P: 4
        SeriesNames: ["INFL"    "UNRATE"    "FEDFUNDS"]
    IncludeConstant: 1
       IncludeTrend: 0
      NumPredictors: 0
                 Mu: [39x1 double]
                  V: [39x39 double]
              Omega: [3x3 double]
                DoF: 13
                 AR: {[3x3 double]  [3x3 double]  [3x3 double]  [3x3 double]}
           Constant: [3x1 double]
              Trend: [3x0 double]
               Beta: [3x0 double]
         Covariance: [3x3 double]

Рассмотрим 2-D модель VARX (1) для реального ВВП США (RGDP) и инвестиции (GCE) тарифы, которые лечат личное потребление (PCEC) скорость как экзогенная:

[RGDPtGCEt]=c+Φ[RGDPt-1GCEt-1]+PCECtβ+εt.

Для всех t, εt - серия независимых 2-D нормальных инноваций со средним значением 0 и ковариацией Σ. Примите следующие предыдущие распределения:

  • vec([Φcβ])|ΣΝ8(μ,V), где μ является вектором средств 8 на 1 и V - ковариационная матрица 4 на 4.

  • ΣInverseWishart(Ω,ν), где И является матрицей шкалы 2 на 2 и ν - степени свободы.

Создайте полуконъюгатную предшествующую модель для параметров модели 2-D VARX (1).

numseries = 2;
numlags = 1;
numpredictors = 1;
PriorMdl = semiconjugatebvarm(numseries,numlags,'NumPredictors',numpredictors)
PriorMdl = 
  semiconjugatebvarm with properties:

        Description: "2-Dimensional VAR(1) Model"
          NumSeries: 2
                  P: 1
        SeriesNames: ["Y1"    "Y2"]
    IncludeConstant: 1
       IncludeTrend: 0
      NumPredictors: 1
                 Mu: [8x1 double]
                  V: [8x8 double]
              Omega: [2x2 double]
                DoF: 12
                 AR: {[2x2 double]}
           Constant: [2x1 double]
              Trend: [2x0 double]
               Beta: [2x1 double]
         Covariance: [2x2 double]

Отобразите среднее значение коэффициентов Mu с соответствующими коэффициентами.

coeffnames = ["phi(11)"; "phi(12)"; "c(1)"; "beta(1)"; "phi(21)"; "phi(22)"; "c(2)"; "beta(2)"];
array2table(PriorMdl.Mu,'VariableNames',{'PriorMean'},'RowNames',coeffnames)
ans=8×1 table
               PriorMean
               _________

    phi(11)        0    
    phi(12)        0    
    c(1)           0    
    beta(1)        0    
    phi(21)        0    
    phi(22)        0    
    c(2)           0    
    beta(2)        0    

semiconjugatebvarm опции позволяют вам задавать предыдущие значения гиперзначений параметров непосредственно, но bayesvarm опции хорошо подходят для настройки гиперпараметров по методу регуляризации Миннесоты.

Рассмотрим 3-D модель VAR (4) Create Normal-Inverse-Wishart Semiconjugate Previor Model. Модель содержит 39 коэффициентов. Для разреженности коэффициентов создайте полуконъюгатную байесовскую модель VAR при помощи bayesvarm. Задайте следующее, априори:

  • Каждый ответ является моделью AR (1), в среднем с коэффициентом задержки 1 0,75.

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

  • Предыдущие коэффициенты перекрестной задержки имеют отклонение 1. Эта настройка малых отклонений затягивает коэффициенты перекрестной задержки до нуля во время оценки.

  • Ковариации предшествующего коэффициента распадаются с увеличением задержки со скоростью 2 (то есть более низкие лаги важнее, чем более высокие лаги).

numseries = 3;
numlags = 4;
seriesnames = ["INFL"; "UNRATE"; "FEDFUNDS"];
PriorMdl = bayesvarm(numseries,numlags,'ModelType','semiconjugate',...
    'Center',0.75,'SelfLag',100,'CrossLag',1,'Decay',2,'SeriesNames',seriesnames)
PriorMdl = 
  semiconjugatebvarm with properties:

        Description: "3-Dimensional VAR(4) Model"
          NumSeries: 3
                  P: 4
        SeriesNames: ["INFL"    "UNRATE"    "FEDFUNDS"]
    IncludeConstant: 1
       IncludeTrend: 0
      NumPredictors: 0
                 Mu: [39x1 double]
                  V: [39x39 double]
              Omega: [3x3 double]
                DoF: 13
                 AR: {[3x3 double]  [3x3 double]  [3x3 double]  [3x3 double]}
           Constant: [3x1 double]
              Trend: [3x0 double]
               Beta: [3x0 double]
         Covariance: [3x3 double]

Отобразите все предыдущие средства коэффициентов.

Phi1 = PriorMdl.AR{1}
Phi1 = 3×3

    0.7500         0         0
         0    0.7500         0
         0         0    0.7500

Phi2 = PriorMdl.AR{2}
Phi2 = 3×3

     0     0     0
     0     0     0
     0     0     0

Phi3 = PriorMdl.AR{3}
Phi3 = 3×3

     0     0     0
     0     0     0
     0     0     0

Phi4 = PriorMdl.AR{4}
Phi4 = 3×3

     0     0     0
     0     0     0
     0     0     0

Отобразите тепловую карту ковариаций предыдущего коэффициента для каждого уравнения отклика.

numexocoeffseqn = PriorMdl.IncludeConstant + ...
    PriorMdl.IncludeTrend + PriorMdl.NumPredictors;             % Number of exogenous coefficients per equation
numcoeffseqn = PriorMdl.NumSeries*PriorMdl.P + numexocoeffseqn; % Total number of coefficients per equation
arcoeffnames = strings(numseries,numlags,numseries);
for j = 1:numseries         % Equations
    for r = 1:numlags
        for k = 1:numseries % Response Variables
            arcoeffnames(k,r,j) = "\phi_{"+r+","+j+k+"}";
        end
    end
    arcoeffseqn = arcoeffnames(:,:,j);
    idx = ((j-1)*numcoeffseqn + 1):(numcoeffseqn*j) - numexocoeffseqn;
    Veqn = PriorMdl.V(idx,idx);
    figure
    heatmap(arcoeffseqn(:),arcoeffseqn(:),Veqn);
    title(sprintf('Equation of %s',seriesnames(j)))
end

Figure contains an object of type heatmap. The chart of type heatmap has title Equation of INFL.

Figure contains an object of type heatmap. The chart of type heatmap has title Equation of UNRATE.

Figure contains an object of type heatmap. The chart of type heatmap has title Equation of FEDFUNDS.

Рассмотрим 3-D модель VAR (4) Create Normal-Inverse-Wishart Semiconjugate Previor Model. Оцените апостериорное распределение и сгенерируйте прогнозы из соответствующего апостериорного прогнозного распределения.

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

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

load Data_USEconModel
seriesnames = ["INFL" "UNRATE" "FEDFUNDS"];
DataTable.INFL = 100*[NaN; price2ret(DataTable.CPIAUCSL)];

figure
plot(DataTable.Time,DataTable{:,seriesnames})
legend(seriesnames)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent INFL, UNRATE, FEDFUNDS.

Стабилизировать показатели безработицы и федеральных средств путем применения первого различия к каждой серии.

DataTable.DUNRATE = [NaN; diff(DataTable.UNRATE)];
DataTable.DFEDFUNDS = [NaN; diff(DataTable.FEDFUNDS)];
seriesnames(2:3) = "D" + seriesnames(2:3);

Удалите все отсутствующие значения из данных.

rmDataTable = rmmissing(DataTable);

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

Создайте полуконъюгатную предшествующую модель Bayesian VAR (4) для трех рядов откликов. Задайте имена переменных отклика.

numseries = numel(seriesnames);
numlags = 4;

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

Оценка апостериорного распределения

Оцените апостериорное распределение путем передачи предыдущей модели и целого ряда данных в estimate.

rng(1); % For reproducibility
PosteriorMdl = estimate(PriorMdl,rmDataTable{:,seriesnames},'Display','equation');
Bayesian VAR under semiconjugate priors
Effective Sample Size:          197
Number of equations:            3
Number of estimated Parameters: 39
                                                                                 VAR Equations                                                                                
           | INFL(-1)  DUNRATE(-1)  DFEDFUNDS(-1)  INFL(-2)  DUNRATE(-2)  DFEDFUNDS(-2)  INFL(-3)  DUNRATE(-3)  DFEDFUNDS(-3)  INFL(-4)  DUNRATE(-4)  DFEDFUNDS(-4)  Constant 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 INFL      |  0.1267     -0.4545        0.1032      0.3197     -0.0536        0.0452      0.4210      0.2690        0.0532      0.0183     -0.1790        0.0075      0.1062  
           | (0.0743)    (0.1466)      (0.0382)    (0.0852)    (0.1549)      (0.0402)    (0.0836)    (0.1542)      (0.0416)    (0.0868)    (0.1460)      (0.0379)    (0.0811) 
 DUNRATE   | -0.0227      0.4551        0.0365      0.0928      0.2390        0.0521     -0.0353      0.0517       -0.0002      0.0292     -0.1774        0.0087     -0.0549  
           | (0.0409)    (0.0808)      (0.0211)    (0.0461)    (0.0874)      (0.0222)    (0.0461)    (0.0855)      (0.0232)    (0.0481)    (0.0812)      (0.0212)    (0.0449) 
 DFEDFUNDS | -0.1489     -1.3020       -0.2713      0.3211     -0.2940       -0.3004      0.2550     -0.6893        0.0155     -0.0680      0.1282       -0.1341     -0.3816  
           | (0.1537)    (0.3013)      (0.0801)    (0.1773)    (0.3162)      (0.0849)    (0.1748)    (0.3165)      (0.0884)    (0.1821)    (0.3001)      (0.0799)    (0.1679) 
 
       Innovations Covariance Matrix       
           |   INFL     DUNRATE  DFEDFUNDS 
-------------------------------------------
 INFL      |  0.2868   -0.0201     0.1464  
           | (0.0292)  (0.0115)   (0.0455) 
 DUNRATE   | -0.0201    0.0878    -0.1336  
           | (0.0115)  (0.0090)   (0.0264) 
 DFEDFUNDS |  0.1464   -0.1336     1.2978  
           | (0.0455)  (0.0264)   (0.1327) 

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

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

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

fh = 8;
FY = forecast(PriorMdl,fh,rmDataTable{:,seriesnames});

FY - матрица прогнозов 8 на 3.

Постройте график конца набора данных и прогнозов.

fp = rmDataTable.Time(end) + calquarters(1:fh);
figure
plotdata = [rmDataTable{end - 10:end,seriesnames}; FY];
plot([rmDataTable.Time(end - 10:end); fp'],plotdata)
hold on
plot([fp(1) fp(1)],ylim,'k-.')
legend(seriesnames)
title('Data and Forecasts')
hold off

Figure contains an axes. The axes with title Data and Forecasts contains 4 objects of type line. These objects represent INFL, DUNRATE, DFEDFUNDS.

Вычислительные импульсные характеристики

Постройте функции импульсной характеристики путем передачи апостериорных оценок в armairf.

armairf(PosteriorMdl.AR,[],'InnovCov',PosteriorMdl.Covariance)

Figure contains an axes. The axes with title Orthogonalized IRF of Variable 1 contains 3 objects of type line. These objects represent Shock to Variable 1, Shock to Variable 2, Shock to Variable 3.

Figure contains an axes. The axes with title Orthogonalized IRF of Variable 2 contains 3 objects of type line. These objects represent Shock to Variable 1, Shock to Variable 2, Shock to Variable 3.

Figure contains an axes. The axes with title Orthogonalized IRF of Variable 3 contains 3 objects of type line. These objects represent Shock to Variable 1, Shock to Variable 2, Shock to Variable 3.

Подробнее о

расширить все

Ссылки

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

См. также

Функции

Объекты

Введенный в R2020a