Новое в

Байесовские линейные и нелинейные модели DSGE

Префикс bayes теперь поддерживает команды dsge и dsgenl для подгонки байесовских линейных и нелинейных динамических стохастических моделей общего равновесия (DSGE).

Модели DSGE популярны в макроэкономике и финансах для моделирования нескольких временных рядов. Модели содержат системы линейных или нелинейных уравнений, которые описывают различные экономические процессы. Параметры DSGE-моделей обычно имеют прямую интерпретацию в контексте экономической теории и часто имеют установленные диапазоны правдоподобных значений. Эти диапазоны (или ограничения) должны быть включены в оценку для получения стабильных результатов.

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

Давайте посмотрим, как это работает

Линейная модель DSGE

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

Основные моменты

  • Байесовские динамические стохастические модели общего равновесия
    • Линейные и нелинейные модели
    • Приоритеты по умолчанию и пользовательские
    • Гибкое управление выборкой MCMC
    • Байесовская сводная статистика
    • Диагностика MCMC
    • Многочисленные цепи
  • Импульсно-ответные функции
    • Графики и таблицы ИРФ
    • Сохраняйте и сравнивайте модели
    • Полная поддержка функций байесовской постоценки

Уравнения могут быть динамическими в двух смыслах: лаги отражают поведение, ориентированное на прошлое, а ожидаемые будущие значения отражают поведение, ориентированное на будущее. DSGE-модели могут использоваться для анализа политики, например, влияния монетарных шоков, фискальных шоков и т.д.

Байесовское оценивание состоит из двух этапов: определение модели DSGE и определение приоритетов для параметров модели DSGE.

Небольшая новокейнсианская модель имеет уравнение инвестиции-сбережения (IS), которое связывает разрыв выпуска с процентной ставкой, кривую Филлипса, которая связывает инфляцию с разрывом выпуска, и правило Тейлора, которое связывает процентную ставку с инфляцией. В синтаксисе Stata модель выглядит следующим образом:

    (   x = F.x - (r - F.p - z)   , unobserved ) ///
    (   p = {beta}*F.p + {kappa}*x             ) ///
    (   r = 1/{delta}*p + m                    ) ///
    ( F.z = {rhoz}*z, state                    ) ///
    ( F.m = {rhom}*m, state                    )

Первое уравнение — это кривая IS, второе — кривая Филлипса, а третье — правило Тейлора. Четвертое уравнение — шок IS, а пятое уравнение — монетарный шок по правилу Тейлора.

Опция unobserved на кривой IS указывает на то, что мы рассматриваем разрыв выпуска как ненаблюдаемый. Мы подгоняем модель под данные по инфляции и процентной ставке.
Мы добавляем предварительную спецификацию для каждого параметра. Многие параметры DSGE имеют интерпретации, которые естественным образом ограничивают диапазон допустимых значений. Параметр {beta} в кривой Филлипса — это ставка дисконтирования, которая должна лежать между 0 и 1. Параметр {kappa} — это параметр корректировки цен, который часто считается небольшим, но положительным. Параметр {delta} — это обратный коэффициент корректировки инфляции по правилу Тейлора, поэтому он должен лежать между 0 и 1. В дополнение к этим ограничениям диапазона, можно иметь предположения о вероятном местоположении значения параметра. Вероятно, ставка дисконтирования составляет около 0,95, параметр корректировки инфляции — около 0,2, а обратный коэффициент корректировки инфляции — около 0,66 (для коэффициента правила Тейлора, равного 1,5). Приоры позволяют явно включить эту информацию в оценку.
Рассмотрим данные об уровне инфляции и ставке по федеральным фондам с 1955 года.

. webuse usmacro2
(Federal Reserve Economic Data - St. Louis Fed, 2017-01-15)

. describe p r

Variable Storage Display Value
name type format label Variable label
p double %10.0g Growth rate of prices (GDPDEF)
r double %10.0g Federal funds rate (FEDFUNDS)
. summarize p r
Variable Obs Mean Std. dev. Min Max
p 2.44 3.236709 2.281433 -.6681431 11.60957
r 2.44 5.035328 3.59569 .07 19.1

Собрав как предварительную спецификацию, так и спецификацию модели, наша команда оценки имеет вид

. bayes, prior({beta},  beta(95,5))                   ///
         prior({kappa}, beta(30,70))                  ///
         prior({delta}, beta(60,30))                  ///
         prior({rhoz},  beta(10,10))                 ///
         prior({rhom},  beta(10,10))                 ///
         rseed(17) :                                  ///
         dsge (  x = F.x - (r - F.p - z), unobserved) ///
              (  p = {beta}*F.p + {kappa}*x         ) ///
              (  r = 1/{delta}*p + m                ) ///
              (F.z = {rhoz}*z, state                ) ///
              (F.m = {rhom}*m, state                )
note: initial parameter vector set to means of priors.

Burn-in ...
Simulation ...

Model summary
Likelihood: p r ~ dsgell({beta},{kappa},{delta},{rhoz},{rhom},{sd(e.z)},{sd(e.m)}) Priors: {beta} ~ beta(95,5) {kappa} ~ beta(30,70) {delta} ~ beta(60,30) {rhoz rhom} ~ beta(10,10) {sd(e.z) sd(e.m)} ~ igamma(.01,.01)
Bayesian linear DSGE model MCMC iterations = 12,500 Random-walk Metropolis–Hastings sampling Burn-in = 2,500 MCMC sample size = 10,000 Sample: 1955q1 thru 2015q4 Number of obs = 244 Acceptance rate = .2483 Efficiency: min = .005767 avg = .02115 Log marginal-likelihood = -794.29162 max = .03808
Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
beta .9406005 .0243801 .001984 .9428465 .8869374 .9812481
kappa .206337 .0327608 .001679 .2046031 .1470858 .273637
delta .5832685 .0404188 .004897 .5835278 .497712 .6607058
rhoz .9171911 .015764 .000978 .9170596 .8846393 .9467265
rhom .561412 .0296339 .001667 .5621747 .5036024 .6184265
sd(e.z) .5280986 .057275 .003639 .5255331 .4217194 .6467684
sd(e.m) 2.161816 .1585077 .020872 2.141682 1.902066 2.533669

Сводка модели показывает модель правдоподобия и предварительные спецификации. Приоры для всех параметров, кроме стандартных отклонений, являются обязательными. В случае DSGE-моделей это имеет смысл, поскольку параметры связаны с экономической теорией. Например, приоритет для коэффициента дисконтирования {beta} — это бета с параметрами формы 95 и 5. Стандартным отклонениям шоков для переменных состояния z и m были присвоены обратные гамма-приоры по умолчанию.

В результатах оценки отображается количество периодов перебора (2 500), размер выборки MCMC (10 000), размер выборки данных (244 периода), период выборки (1955q1 — 2015q4), а также коэффициент принятия и эффективность процесса оценки. Коэффициент принятия относится к доле принятых результатов MCMC. Типичные значения для используемой выборки Метрополиса-Гастингса составляют от 20% до 30%; наш коэффициент принятия равен 24%. Эффективность связана с автокорреляцией жребиев MCMC и показывает, насколько быстро сэмплер проходит пространство параметров. Наша средняя эффективность составляет 2,1%.

Результаты оценки показывают апостериорные значения параметров, стандартные отклонения, медианы и равнохвостые доверительные интервалы. Апостериорное среднее значение {beta} равно 0,94, что очень близко к его предшествующему среднему значению 0,95. Апостериорное среднее значение {kappa} составляет около 0,21, что ниже, чем предшествующее среднее значение 0,30. Апостериорное среднее для {delta} составляет 0,58, что ниже, чем предшествующее среднее 0,66. Оба шока очень устойчивы, с апостериорными средними коэффициентами автокорреляции для z и m 0,92 и 0,56, соответственно. Апостериорные средние стандартные отклонения шоков составляют 0,53 для шока ИБ z и 2,16 для монетарного шока m по правилу Тейлора.

Все функции байесовской постоценки Stata работают после bayes: dsge

Мы можем построить график апостериорной плотности параметра предварительной корректировки {kappa}.

. bayesgraph kdensity {kappa}

Мы можем построить полный набор диагностик для {kappa}.

. bayesgraph diagnostics {kappa}

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

. bayesgraph kdensity kappa, addplot(function Prior = betaden(30,70,x), ///
         legend(on label(1 "Posterior")) lcolor(blue))

Мы можем исследовать апостериорные плотности функций параметров модели, таких как коэффициент правила Тейлора 1/{delta}.

. bayesstats summary (1/{delta})

Posterior summary statistics                       MCMC sample size =      10,000

        expr1 : 1/delta

Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
expr1 1.722922 .1225577 .015302 1.713714 1.513533 2.009195

Среднее апостериорное значение для 1/{delta} составляет 1,7, что выше, чем среднее априорное значение 1,5, и указывает на сильную реакцию процентных ставок на изменения инфляции.

Мы можем рассчитать байесовские функции импульсного отклика. Сначала мы сохраним результаты MCMC в наборе данных nk_mcmc.dta. Мы можем сделать это во время оценки с помощью опции saving() или даже после оценки, воспроизведя команду bayes с опцией saving().

. bayes, saving(nk_mcmc.dta, replace)
note: file nk_mcmc.dta not found; file saved.

Сохранив выборку MCMC, мы можем построить функции импульса-ответа с помощью набора bayesirf. Этот набор команд расширяет irf для байесовского оценивания и доступен после bayes: dsge, bayes: dsgenl и bayes: var.

. bayesirf set bayes_irfs.irf, replace
(file bayes_irfs.irf created)
(file bayes_irfs.irf now active)

. bayesirf create nk_model
(file bayes_irfs.irf updated)

. bayesirf graph irf, impulse(m) response(x p r m)

Левая верхняя панель показывает реакцию переменной состояния денежной системы m на шок, вызванный ею самой. Правая верхняя панель показывает реакцию инфляции на шок: она снижается, а затем монотонно возвращается к устойчивому состоянию. Левая нижняя панель показывает реакцию процентной ставки: она повышается. Наконец, на правой нижней панели показана реакция разрыва выпуска: он падает ниже 0, что свидетельствует о рецессии. Таким образом, сокращающий монетарный шок повышает процентную ставку, снижает инфляцию и вызывает сокращение выпуска.

Все это и многое другое можно выполнить с помощью команды bayes: dsge.

Нелинейная модель DSGE

Приставка bayes также работает с командой dsgenl, которая оценивает параметры нелинейных моделей DSGE путем возмущения первого порядка.

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

 (1/c     = {beta}*(1/F.c)*(1+F.r-{delta})    )       ///
 (r       = {alpha}*y/k                       )       ///
 (y       = z*k^({alpha})                     )       ///
 (f.k     = y - c + (1-{delta})*k             )       ///
 (ln(f.z) = {rho}*ln(z)                       ) ,     ///
 exostate(z) endostate(k) observed(y) unobserved(c r)

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

Параметры имеют интерпретацию: {beta} — ставка дисконтирования, обычно считается, что она составляет около 0,95; {alpha} — доля капитала в доходе, обычно считается, что она составляет около одной трети; {delta} — норма амортизации, обычно 2,5% в квартал; и {рго} — стойкость технологического шока. Приоры используются для того, чтобы привнести эту информацию в оценку.

Мы оцениваем параметры этой модели, используя детрендированный выпуск. В наборе данных m1gdp.dta представлен логарифм выпуска.

. webuse m1gdp, clear

. describe

Contains data from  https://www.stata-press.com/data/r17/m1gdp.dta
 Observations:            223
    Variables:              3                   26 Mar 2020 02:49

Variable Storage Display Value
name type format label Variable label
t int %tq Quarterly time variable
ln_m1 float %9.0g ln(M1) monthly to quarterly by
averaging: M1 is Fred M1SL, Bil
of $ seas adj
ln_gdp float %9.0g ln(gdpc1) FRED GDP in Bil of 1996
chained $ seas adj
Sorted by: t

Команда tsfilter извлекает трендовую составляющую выпуска. Мы используем фильтр Ходрика-Прескотта и затем увеличиваем результат в 100 раз. Полученная шкала такова, что значение 1 означает, что ВВП на 1% выше трендового значения.

. tsfilter hp y = ln_gdp

. replace y = 100*y
(222 real changes made)

. tsline y, title("HP-detrended output")

Рецессии связаны со снижением выпуска ниже тренда, а бумы — с ростом выпуска выше тренда.

Мы переходим к оценке параметров.

. bayes, prior({alpha}, beta(30,70))                ///
         prior({beta},  beta(95,5))                 ///
         prior({delta}, beta(25,900))               ///
         prior({rho},   beta(10, 10))               ///
         rseed(20) dots saving(rbc_mcmc, replace):  ///
         dsgenl (1/c      = {beta}*(1/F.c)*(1+f.r-{delta})    )       ///
                 (r       = {alpha}*y/k                       )       ///
                 (y       = z*k^({alpha})                     )       ///
                 (f.k     = y - c + (1-{delta})*k             )       ///
                 (ln(f.z) = {rho}*ln(z)                       ) ,     ///
                 exostate(z) endostate(k) observed(y) unobserved(c r)
note: initial parameter vector set to means of priors.

Burn-in 2500 aaaaaaaaa1000aaaaaa...2000..... done
Simulation 10000 .........1000.........2000.........3000.........4000.........
5000.........6000.........7000.........8000.........9000.........10000 done

Model summary
Likelihood: y ~ dsgell({beta},{delta},{alpha},{rho},{sd(e.z)}) Priors: {beta} ~ beta(95,5) {delta} ~ beta(25,900) {alpha} ~ beta(30,70) {rho} ~ beta(10,10) {sd(e.z)} ~ igamma(.01,.01)
Bayesian first-order DSGE model MCMC iterations = 12,500 Random-walk Metropolis–Hastings sampling Burn-in = 2,500 MCMC sample size = 10,000 Sample: 1947q1 thru 2002q2 Number of obs = 222 Acceptance rate = .2189 Efficiency: min = .02528 avg = .04236 Log marginal-likelihood = -311.7914 max = .05567
Equal-tailed
Mean Std. dev. MCSE Median [95% cred. interval]
beta .9095501 .0392698 .001886 .9133171 .8231531 .9726171
delta .0286052 .0054865 .000345 .0284 .0192159 .0404854
alpha .2768864 .0451422 .002097 .2738962 .1964999 .3772306
rho .7680742 .036755 .001813 .7680699 .6950177 .8412948
sd(e.z) .9340691 .0458306 .001943 .9328126 .8502487 1.032548

Априорное среднее значение ставки дисконтирования {бета} равно 0,95; его апостериорное среднее мало изменилось и составляет 0,91. Предварительное среднее значение нормы амортизации {delta} равно 0,025; его апостериорное среднее мало изменилось и составляет 0,0286. Предварительное среднее значение {alpha} равно 0,3; его апостериорное среднее немного ниже — 0,28. Между тем, апостериорное среднее значение {rho} составляет 0,77, что намного больше, чем его апостериорное среднее значение 0,5. Стандартное отклонение технологического шока составляет около 1.

Далее мы рассчитаем функции импульсной реакции на технологический шок.

. bayesirf set bayes_irf2.irf, replace
(file bayes_irf2.irf created)
(file bayes_irf2.irf now active)

. bayesirf create rbc_model, step(16)
(file bayes_irf2.irf updated)

. bayesirf graph irf, impulse(z) byopts(yrescale)

Единицы измерения по вертикальной оси — процентные отклонения от стабильного состояния. По горизонтальной оси отложены единицы той же временной продолжительности, что и данные, то есть кварталы. Мы построили 16 этапов (4 года) откликов.

  • Реакция потребления показана на левой верхней панели. Потребление возрастает при ударе, а затем продолжает расти по горбовидной траектории, прежде чем вернуться к своему устойчивому состоянию.
  • На верхней средней панели показана реакция на изменения в запасах капитала. Запас капитала не изменяется в момент воздействия, но после этого увеличивается до пика на 0,6% выше своего стабильного состояния, а затем снижается.
  • На правой верхней панели процентная ставка повышается при ударе, а затем падает; через четыре квартала она опускается ниже 0, а затем возвращается к своему устойчивому состоянию снизу.
  • На левой нижней панели показана реакция выпуска; он увеличивается при ударе, а затем монотонно падает, возвращаясь к своему устойчивому состоянию.
  • На нижней средней панели показана реакция самой технологии. Она также повышается при ударе, а затем монотонно падает, возвращаясь к своему стационарному состоянию.

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

. bayesirf table irf, impulse(z) response(c)

Results from rbc_model

(1) (2) (3)
step irf Lower Upper
0 .363699 .209593 .502829
1 .421867 .245335 .587063
2 .445802 .269215 .606835
3 .446962 .280481 .595064
4 .433453 .282893 .575041
5 .410962 .282863 .540024
6 .383436 .272859 .511974
7 .353574 .254899 .473345
8 .323189 .227486 .440766
9 .293459 .195011 .40683
10 .265119 .162333 .379442
11 .238595 .133143 .354938
12 .214099 .108564 .334151
13 .1917 .087822 .313609
14 .171372 .071785 .294301
15 .153031 .057275 .270277
16 .136556 .045631 .251522
Posterior means reported 95% equal-tailed credible lower and upper bounds reported. (1) irfname = rbc_model, impulse, = z, and response = c.

После технологического шока с отклонением в один стандарт потребление возрастает и достигает пика на 0,447% выше своего стабильного значения в третий период после шока.