Nou în

Modele DSGE liniare și neliniare bayesiene

Prefixul bayes acceptă acum comenzile dsge și dsgenl pentru a se potrivi modelelor bayesiene liniare și neliniare dinamice stocastice de echilibru general (DSGE).
Modelele DSGE sunt populare în macroeconomie și finanțe pentru a modela mai multe serii temporale. Modelele conțin sisteme de ecuații liniare sau neliniare care descriu diverse procese economice. Parametrii modelelor DSGE au de obicei o interpretare directă în contextul teoriei economice și adesea au stabilit game de valori plauzibile. Aceste intervale (sau constrângeri) ar trebui încorporate în estimare pentru a obține rezultate stabile.
Estimarea bayesiană oferă un mod natural de a încorpora astfel de constrângeri prin specificarea diferitelor distribuții anterioare pentru parametrii modelului care satisfac constrângerile.

Să vedem cum funcționează

Model DSGE liniar

Un model DSGE constă dintr-un sistem de ecuații care leagă variabilele economice, cum ar fi inflația, rata dobânzii și decalajul de producție, între ele și variabilele de stare exogene care conduc sistemul.

Repere

  • Modele de echilibru general stocastic dinamic bayesian
    • Modele liniare și neliniare
    • Priorități implicite și personalizate
    • Control flexibil al eșantionării MCMC
    • Statistici rezumative bayesiene
    • Diagnosticare MCMC
    • Lanțuri multiple
  • Funcții impuls-răspuns
    • Grafice și tabele ale IRF-urilor
    • Salvați și comparați modele
    • Suport complet pentru funcții de postestimare bayesiană

Ecuațiile pot fi dinamice în două sensuri: întârzierile surprind comportamentul care arată înapoi, în timp ce valorile viitoare așteptate captează un comportament în perspectivă. Modelele DSGE pot fi utilizate pentru a analiza politicile, cum ar fi efectul șocurilor monetare, șocurilor fiscale etc.
Estimarea bayesiană constă din doi pași: specificarea modelului DSGE și specificarea priorilor pentru parametrii modelului DSGE.
Un mic model nou Keynesian are o ecuație de economisire a investițiilor (IS) care leagă decalajul de producție de rata dobânzii, o curbă Phillips care leagă inflația de decalajul de producție și o regulă Taylor care leagă rata dobânzii de inflație. În sintaxa Stata, modelul arată astfel:

    (   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                    )

Prima ecuație este o curbă IS, a doua este o curbă Phillips, iar a treia este o regulă Taylor. A patra ecuație este un șoc IS, iar a cincea ecuație este un șoc monetar al regulii Taylor.
Opțiunea unobserved din curba IS indică faptul că tratăm decalajul de ieșire ca neobservat. Adaptăm modelul la datele privind inflația și rata dobânzii.
Adăugăm o specificație prealabilă pentru fiecare parametru. Mulți parametri DSGE au interpretări care restricționează în mod natural gama de valori admisibile. Parametrul {beta} din curba Phillips este o rată de actualizare și trebuie să se situeze între 0 și 1. Parametrul {kappa} este un parametru de ajustare a prețului, adesea considerat a fi mic, dar pozitiv. Parametrul {delta} este inversul coeficientului de ajustare a inflației a regulii Taylor, deci trebuie să se situeze între 0 și 1. În plus față de aceste restricții de gamă, s-ar putea avea priorități privind locația probabilă a valorii parametrului. Rata de actualizare este probabil în jurul valorii de 0,95, parametrul de ajustare a inflației în jurul valorii de 0,2 și coeficientul de ajustare a inflației invers în jurul valorii de 0,66 (pentru un coeficient al regulii Taylor de 1,5). Priorii vă permit să încorporați aceste informații în mod explicit în estimare.
Luați în considerare datele privind rata inflației și rata fondurilor federale începând cu 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

Gathering up both the prior specification and the model specification, our estimation command is

. 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

Rezumatul modelului arată modelul de probabilitate și specificațiile anterioare. Sunt necesare prioritățile pentru toate modelele cu excepția abaterilor standard. În cazul modelelor DSGE, acest lucru are sens, deoarece parametrii sunt legați de teoria economică. De exemplu, prioritatea pentru factorul de reducere {beta} este beta cu parametrii de formă 95 și 5. Abaterile standard ale șocurilor la variabilele de stare z și m au primit priorități gamma implicite implicite.
Ieșirea estimată afișează numărul de perioade de ardere (2.500), dimensiunea eșantionului MCMC (10.000), dimensiunea eșantionului datelor (244 perioade), perioada eșantionului (1955q1 până în 2015q4) și rata de acceptare și eficiența procesul de estimare. Rata de acceptare se referă la fracția de extrageri MCMC care a fost acceptată. Valorile tipice pentru eșantionatorul Metropolis – Hastings utilizate sunt de la 20% la 30%; rata noastră de acceptare este de 24%. Eficiența este legată de autocorelația desenelor MCMC și indică cât de repede eșantionatorul traversează spațiul parametrilor. Eficiența noastră medie este de 2,1%.
Ieșirea de estimare afișează medii de parametri posterioare, abateri standard, mediane și intervale credibile cu coadă egală. Media posterioară a {beta} este 0,94, foarte apropiată de media sa anterioară de 0,95. Media posterioară a {kappa} este de aproximativ 0,21, mai mică decât media anterioară de 0,30. Media posterioară pentru {delta} este 0,58, mai mică decât media anterioară de 0,66. Ambele șocuri sunt foarte persistente, cu coeficienți de autocorelație medii posterioare pe z și m de 0,92 și respectiv 0,56. Mijloacele posterioare ale abaterilor standard ale șocurilor sunt 0,53 pentru șocul IS z și 2,16 pentru șocul monetar m al regulii Taylor.
Toate caracteristicile postestimare bayesiene ale lui Stata funcționează după bayes: dsge.
Putem trasa densitatea posterioară a parametrului de ajustare anterior {kappa}.

. bayesgraph kdensity {kappa}

Putem trasa un set complet de diagnostice pentru {kappa}.

. bayesgraph diagnostics {kappa}

Putem să trasăm un set complet de diaga Putem adăuga densitatea anterioară la graficul de densitate posterioară pentru a compara vizual anterior și posterior.nosticele pentru {kappa}.

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

Putem examina densitățile posterioare ale funcțiilor parametrilor modelului, cum ar fi coeficientul regulii Taylor 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

Media posterioară pentru 1/{delta} este 1,7, mai mare decât media anterioară de 1,5 și indică un răspuns puternic al ratelor dobânzii la modificările inflației.
Putem calcula funcțiile Bayesian impuls-răspuns. Mai întâi, salvăm rezultatele MCMC într-un set de date, nk_mcmc.dta. Putem face acest lucru în timpul estimării cu opțiunea saving() sau chiar după estimare, redând comanda bayes cu opțiunea saving().

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

Cu eșantionul MCMC salvat, putem construi funcții impuls-răspuns cu suita bayesirf. Această suită de comenzi extinde irf pentru a se potrivi estimării bayesiene și este disponibilă după bayes: dsge, bayes: dsgenl și 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)

Panoul din stânga sus arată răspunsul variabilei de stare monetară m la un șoc pentru sine. Panoul din dreapta sus arată răspunsul inflației la șoc: acesta scade, apoi revine monoton la starea de echilibru. Panoul din stânga jos arată răspunsul ratei dobânzii: crește. În cele din urmă, panoul din dreapta jos arată răspunsul decalajului de ieșire: scade sub 0, indicând o recesiune. Șocul monetar contracțional crește astfel rata dobânzii, reduce inflația și determină scăderea producției.
Toate acestea și multe altele pot fi efectuate cu comanda bayes: dsge.

Model neliniar DSGE

Prefixul bayes funcționează și cu comanda dsgenl, care estimează parametrii modelelor DSGE neliniare prin perturbare de ordinul întâi.
Apoi estimăm parametrii unui model de creștere stocastică. Modelul are ecuații pentru consum, rata reală a dobânzii, PIB, stocul de capital și productivitate.

 (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)

Macroeconomiștii vor recunoaște aceste relații ca o ecuație Euler de consum, o ecuație a cererii de capital, o funcție de producție, o ecuație de acumulare de capital și, respectiv, o lege a mișcării pentru productivitate.
Parametrii au interpretare: {beta} este rata de actualizare, de obicei considerată a fi în jur de 0,95; {alpha} este cota de venit a capitalului, de obicei considerată a fi o treime; <>{delta} este rata de amortizare, de obicei 2,5% pe trimestru; și {rho} este persistența șocului tehnologic. Priorii sunt folosiți pentru a aduce aceste informații în calcul asupra estimării.
Estimăm parametrii acestui model folosind rezultate defavorizate. Setul de date m1gdp.dta oferă logaritmul de ieșire.

. 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

Comanda tsfilter extrage componenta de tendință a ieșirii. Folosim un filtru Hodrick – Prescott și apoi scalăm rezultatul cu un factor de 100. Scara rezultată este de așa natură încât o valoare de 1 indică faptul că PIB este cu 1% peste valoarea sa de tendință.

. tsfilter hp y = ln_gdp

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

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

Recesiunile sunt asociate cu o scădere a producției sub tendință, în timp ce creșterile sunt asociate cu o creștere a producției peste tendință.
Continuăm cu estimarea parametrilor.

. 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

Media anterioară a ratei de actualizare {beta} este de 0,95; media sa posterioară este puțin modificată la 0,91. Media anterioară a ratei de amortizare {delta} este 0,025; media sa posterioară este puțin modificată la 0,0286. Media anterioară a {alfa} este 0,3; media sa posterioară este ușor mai mică la 0,28.
Între timp, media posterioară a {rho} este 0,77, mult mai mare decât media sa anterioară de 0,5. Abaterea standard a șocului tehnologic este de aproximativ 1.
În continuare calculăm funcțiile impuls-răspuns la un șoc tehnologic.

. 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)

Unitățile axei verticale sunt în procente de devieri de la starea de echilibru. Unitățile axei orizontale au aceeași durată de timp cu datele, adică sferturi. Plotăm 16 pași (4 ani) de răspunsuri.

  • Răspunsul la consum este reprezentat grafic în panoul din stânga sus. Consumul crește la impact și apoi continuă să crească într-un model în formă de cocoașă înainte de a reveni la starea sa de echilibru.
  • Răspunsul stocului de capital este reprezentat grafic în panoul de sus-mijloc. Stocul de capital nu se mișcă la impact, dar ulterior crește la un vârf de 0,6% peste starea sa de echilibru înainte de a scădea.
  • În panoul din dreapta sus, rata dobânzii crește la impact și apoi scade; scade sub 0 după patru trimestre și apoi revine la starea de echilibru de jos.
  • Panoul din stânga jos trasează răspunsul ieșirii; crește la impact și apoi cade monoton înapoi la starea sa de echilibru
  • Panoul de jos-mijloc prezintă răspunsul tehnologiei în sine. Și el crește la impact și cade apoi monoton înapoi la starea sa de echilibru

Mijloacele exacte posterioare și intervalele credibile pot fi vizualizate cu tabelul bayesirf. Mai jos, prezentăm răspunsul consumului la un șoc tehnologic.

. 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.

După un șoc tehnologic cu deviație standard, consumul crește și crește cu 0,447% peste valoarea sa de stare staționară în a treia perioadă după șoc.