semiconjugatebvarm

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

Описание

Байесов объект модели 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"]) задает имена этих трех переменных отклика в модели Bayesian VAR (2).

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

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

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

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

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

Количество изолированных ответов в каждом уравнении y t в виде неотрицательного целого числа. Получившаяся модель является VAR (numlags) модель; каждая задержка имеет numseries- 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'... 'YNumSeries']. semiconjugatebvarm хранилища SeriesNames как вектор строки.

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

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

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

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

Типы данных: логический

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

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

Типы данных: логический

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

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

Среднее значение многомерного нормального предшествующего на λ в виде NumSeries*k- 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 для 2D модели 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 (количество коэффициентов в уравнении ответа).

Индексы строки и столбца соответствуют коэффициентам модели таким же образом как Му. Например, рассмотрите 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 позволяет вам создать любой Байесов VAR предшествующая модель и задать V легко при помощи Миннесотского метода регуляризации.

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

Инверсия матрица шкалы Уишарта в виде NumSeries- NumSeries положительная определенная числовая матрица.

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

Инверсия степени свободы Уишарта в виде положительного числового скаляра.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Бета (j,:) содержит коэффициенты регрессии каждого предиктора в уравнении переменной отклика j yjT. \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].

\forall 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 по умолчанию. AR свойство только для чтения, но оно выведено из writeable свойства Mu.

Полагайте, что 1D модель Bayesian 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 интерпретирует инновационную ковариацию как инверсию случайная переменная Уишарта. Поскольку шкалы и гиперпараметры степеней свободы среди инверсии, Уишарт и обратные гамма распределения не равны, можно настроить их при помощи записи через точку. Например, чтобы достигнуть 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 для содействующих отклонений 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]

Считайте 2D модель VARX(1) для США действительным GDP (RGDP) и инвестиции (GCE) уровни, который обрабатывает персональное потребление (PCEC) уровень как внешний:

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

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

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

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

Создайте полусопряженную предшествующую модель для 2D 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) Создает Нормального Обратного Уишарта Полусопряженная Предшествующая Модель. Модель содержит 39 коэффициентов. Для содействующей разреженности создайте полусопряженную модель Bayesian 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

Полагайте, что 3-D модель VAR (4) Создает Нормального Обратного Уишарта Полусопряженная Предшествующая Модель. Оцените апостериорное распределение и сгенерируйте прогнозы от соответствующего следующего прогнозирующего распределения.

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

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

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

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

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

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

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

rmDataTable = rmmissing(DataTable);

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

Создайте полусопряженный Байесов 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 использует первые четыре наблюдения в качестве предварительной выборки, чтобы инициализировать модель.

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

От следующего прогнозирующего распределения сгенерируйте прогнозы более чем горизонт 2D года. Поскольку выборка от следующего прогнозирующего распределения требует целого набора данных, задайте предшествующую модель в 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

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

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

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

Больше о

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

Ссылки

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

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

Функции

Объекты

Введенный в R2020a

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