exponenta event banner

semiconjugatebvarm

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

Описание

Объект модели Bayesian VAR semiconjugatebvarm задает совместное предварительное распределение массива модельных коэффициентов Λ и новой ковариационной матрицы Λ модели m-D VAR (p). Совместное предварительное распределение (Λ, Λ) представляет собой независимую, нормально-обратную - полуконъюгатную модель Вишарта.

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

Создание

Описание

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

пример

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

пример

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

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

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

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

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

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

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

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

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

Свойства

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

Значения свойств, доступные для записи, можно задать при создании объекта модели с помощью синтаксиса аргумента пара имя-значение или после создания объекта модели с помощью точечной нотации. Например, чтобы создать 3D модель 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 и innovation αt.

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

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

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

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

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

Имена серий ответов, указанные как NumSeries вектор строки длины. Значение по умолчанию: ['Y1' 'Y2' ... 'YNumSeries']. semiconjugatebvarm магазины SeriesNames в виде строкового вектора.

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Элементы NumSeries + 1 через 2*NumSeries соответствуют коэффициентам AR с запаздыванием 2 для переменных ответа, упорядоченных по 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β14︷y1,t ϕ1,21ϕ1,22ϕ2,21ϕ2,22ϕ3,21ϕ3,22c2β21β22β23β24︷y2,t],

где

  • β q, jk - элемент (j, k) матрицы коэффициентов lag q AR.

  • cj - константа модели в уравнении переменной отклика j.

  • Bju - коэффициент регрессии экзогенной переменной u в уравнении переменной ответа j.

Совет

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

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

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

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

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

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

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

Условная ковариационная матрица многомерного нормаля, предшествующая λ, заданная как NumSeries*kоколо-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около-NumSeries положительная определенная числовая матрица.

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

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

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

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

Параметры модели VAR, полученные из гиперпараметров распределения

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

Среднее распределение матриц авторегрессионных коэффициентов Φ1,...,Φp связанных с запаздывающими откликами, указанное как P-D клеточный вектор NumSeriesоколо-NumSeries числовые матрицы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Среднее распределение новшеств ковариационной матрицы NumSeries нововведения в каждый момент времени t = 1,...,T, указанные как NumSeriesоколо-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 (Λ, start), где Λ - матрица шкалы 3 на 3, а start- степени свободы.

Создайте предшествующую модель в полуконъюгате для параметров модели 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 по умолчанию. AR свойство доступно только для чтения, но является производным от записываемого свойства Mu.

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

yt = c + δ 1yt-1 + δ 2yt-1 + αt.

Приорами являются:

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

  • σ2∼IG (α, β), где α = start2 - степени свободы, а β = Ω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 интерпретирует ковариацию инноваций как обратную случайную переменную Вишарта. Поскольку гиперпараметры масштабов и степеней свободы среди обратного распределения Вишарта и обратного гамма-распределения не равны, их можно настроить, используя точечную нотацию. Например, чтобы достичь 10 степеней свободы для обратной гамма-интерпретации, установите обратные степени свободы Вишарта на 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) «Создать нормальную-обратную-вишартовскую полунъюгейтную предыдущую модель» рассмотрите возможность исключения из модели сегментов 2 и 3.

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

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

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

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

  • 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 ([Фсβ] ) |Σ∼Ν8 (λ, V), где λ - вектор среднего значения 8 на 1, а V - ковариационная матрица 4 на 4.

  • Σ∼InverseWishart (Λ, start), где Λ - матрица шкалы 2 на 2, а start- степени свободы.

Создайте предшествующую модель в полуконъюгате для параметров модели 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 Previous 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 Previous 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