Нове в

Байєсівські лінійні та нелінійні моделі DSGE

Префікс bayes тепер підтримує команди dsge та dsgenl, щоб відповідати моделям байєсівської лінійної та нелінійної динамічної стохастичної загальної рівноваги (DSGE).

Моделі DSGE популярні в макроекономіці та фінансах для моделювання кількох часових рядів. Моделі містять системи лінійних або нелінійних рівнянь, що описують різні економічні процеси. Параметри моделей DSGE зазвичай мають пряму інтерпретацію в контексті економічної теорії і часто мають встановлені діапазони правдоподібних значень. Ці діапазони (або обмеження) повинні бути включені в оцінку для отримання стабільних результатів.

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

Давайте подивимося, як це працює

Лінійна модель DSGE

Модель DSGE складається з системи рівнянь, які пов’язують економічні змінні, такі як інфляція, процентна ставка та розрив виробництва, один з одним і з екзогенними змінними стану, які керують системою.

Основні моменти

  • Bayesian dynamic stochastic general equilibrium models
    • Лінійні та нелінійні моделі
    • Стандартні та користувацькі пріоритети
    • Гнучкий контроль відбору проб 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 були призначені за замовчуванням оберненими гамма-априорами.

Вихідні дані оцінки показують кількість періодів вигорання (2500), розмір вибірки MCMC (10000), розмір вибірки даних (244 періоди), період вибірки (1955q1–2015q4), а також швидкість прийняття та ефективність процес оцінки. Коефіцієнт прийняття відноситься до частки розіграшів MCMC, яка була прийнята. Типові значення для пробовідбірника Metropolis–Hastings, що використовується, становлять від 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 для удару IS 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 і b>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

Префікс Байеса також працює з командою 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% на квартал; і {rho} – стійкість технологічного шоку. Приори використовуються для того, щоб ця інформація вплинула на оцінку.

Ми оцінюємо параметри цієї моделі за допомогою виходу з детрендом. Набір даних 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. Попереднє середнє значення {альфа} дорівнює 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 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% вище свого стабільного значення в третій період після шоку.