Novinky  ve

Bayesovská dynamická předpověď

Dynamické předpovídání je běžným nástrojem předpovídání po přizpůsobení vícerozměrných modelů časových řad, jako jsou vektorové autoregresní modely (VAR). Předpovídá výsledné hodnoty v aktuálním čase pomocí aktualizovaných (předpovězených) výsledných hodnot v předchozích časech. Nový příkaz bayesfcast počítá bayesovské dynamické předpovědi po fitování bayesovského modelu VAR pomocí příkazu bayes: var.

Bayesovské dynamické předpovědi vytvářejí celý vzorek předpovídaných hodnot výsledků v každém časovém okamžiku namísto jedné předpovědi jako v klasické analýze. Tento vzorek lze použít k zodpovězení různých modelovacích otázek, například jak dobře model předpovídá budoucí pozorování, aniž by se při odhadu nejistoty předpovědi uplatňoval předpoklad asymptotické normality. To je zvláště atraktivní pro malé soubory dat, u nichž může být předpoklad asymptotické normality podezřelý.

K výpočtu dynamických předpovědí a jejich uložení do aktuální datové sady můžete použít bayesfcast compute a pomocí bayesfcast graph je můžete zobrazit do grafu.

Nejdůležitější informace

  • Graf dynamické předpovědi
  • Uložení dynamických předpovědí do aktuální datové sady
  • Zadejte horizont předpovědi
  • Výpočet posteriorních průměrů nebo mediánů předpovědí
  • Výpočet posteriorních směrodatných odchylek
  • Výpočet posteriorních věrohodných intervalů

Podívejme se, jak to funguje

Pokračujeme makrodaty za USA z bayesovských VAR modelů, což jsou čtvrtletní data od prvního čtvrtletí roku 1954 do čtvrtého čtvrtletí roku 2010. Rádi bychom získali bayesovské dynamické prognózy inflace, mezery výstupu a sazby federálních fondů z bayesovského VAR modelu pro tyto proměnné.

Takto vypadají data.

. webuse usmacro
(Federal Reserve Economic Data - St. Louis Fed)

. tsset

Time variable: date, 1954q3 to 2010q4
        Delta: 1 quarter

. tsline inflation ogap fedfunds

Nejprve jsme použili bayesovský VAR model se čtyřmi zpožděními. Abychom si ověřili výkonnost naší prognózy, ponecháme si data po prvním čtvrtletí roku 2004. Výsledky MCMC rovněž uložíme do souboru bvarsim.dta.

Výstup z příkazu bayes: var je dlouhý, proto jeho část níže vynecháme.

. bayes, rseed(17) saving(bvarsim): var inflation ogap fedfunds if date < tq(2004q1), lags(1/4)

Burn-in ...
Simulation ...
(output omitted)


Bayesian vector autoregression                   	MCMC iterations  =     12,500
Gibbs sampling                                   	Burn-in          =      2,500
                                                 	MCMC sample size =     10,000
Sample: 1956q3 thru 2003q4                       	Number of obs    =        190
                                                 	Acceptance rate  =          1
                                                 	Efficiency:  min =      .9322
                                                        	     avg =       .993
Log marginal-likelihood = -670.32584                          	     max =          1
 
Equal-tailed
Mean Std. dev. MSCE Median [95% cred. interval]
inflation
inflation
L1. 1.107465 .0422849 .000423 1.106848 1.02544 1.192476
L2. -.064825 .0417594 .000418 -.064536 -.1470882 .0176208
L3. -.0358872 .0290815 .000291 -.0359867 -.092745 .0210088
L4. -.0397985 .0215853 .000216 -.0397207 -.0821996 .002274
ogap
L1. .0646785 .0294384 .000305 .0644936 .0070243 .1229662
L2. .0071294 .0267595 .000268 .0072498 -.0444994 .058461
L3. -.002015 .0187035 .000192 -.0021291 -.038934 .0346847
L4. -.0088532 .0142951 .000141 -.0089083 -.0366927 .0193774
fedfunds
L1. .0770026 .027543 .000275 .076643 .0237776 .1315991
L2. -.0351476 .0243814 .000244 -.0351349 -.0831241 .0124089
L3. -.0151671 .0173423 .000173 -.0154901 -.0487873 .0193082
L4. -.0190271 .0134133 .000134 -.0191324 -.0456025 .0072003
_cons .1225433 .0832813 .000833 .1225758 -.0433392 .2853939
ogap
inflation
L1. -.068909 .0627925 .000628 -.0683572 -.1934463 .0524915
(output omitted)
_cons .3851112 .1261445 .001261 .3836084 .1334414 .6333448
fedfunds
inflation
L1. .0568126 .0719825 .00072 .0563617 -.0829406 .2008528
(output omitted)
_cons .1931161 .1433129 .001433 .1950842 -.0912408 .4717853
Sigma_1_1 .2873009 .0293728 .000297 .2853721 .2349716 .3493519
Sigma_2_1 .0281781 .0315254 .000315 .0276486 -.0345647 .0912571
Sigma_3_1 .1480748 .0372496 .000372 .1468518 .0777631 .2251876
Sigma_2_2 .6575456 .0671182 .000684 .6530136 .5395734 .8029292
Sigma_3_2 .2398338 .0559347 .000559 .238127 .1357633 .3561841
Sigma_3_3 .8371554 .0857785 .000858 .8298623 .6868505 1.024522
file bvarsim.dta saved.

Podrobnosti o bayes: var a jeho výstupu naleznete v části Bayesovský model VAR.

K výpočtu bayesovských dynamických předpovědí používáme nový příkaz bayesfcast. Tento příkaz má dva dílčí příkazy. bayesfcast compute vypočítá prognózy a uloží je do aktuálního souboru dat jako nové proměnné. A příkaz bayesfcast graph vykreslí předpovědi.

Začněme nejjednodušší specifikací. Zadáme f_ jako předponu nových proměnných a semeno náhodného čísla pro reprodukovatelnost.

. bayesfcast compute f_, rseed(17)

. describe f_*

Variable Storage Display Value
name type format label Variable label
f_inflation double %10.0g Posterior mean forecast for
inflation
f_inflation_sd double %10.0g Posterior standard deviation of
forecast for inflation
f_inflation_lb double %10.0g 95% lower credible bound for
forecast for inflation
f_inflation_ub double %10.0g 95% upper credible bound for
forecast for inflation
f_ogap double %10.0g Posterior mean forecast for ogap
f_ogap_sd double %10.0g Posterior standard deviation of
forecast for ogap
f_ogap_lb double %10.0g 95% lower credible bound for
forecast for ogap
f_ogap_ub double %10.0g 95% upper credible bound for
forecast for ogap
f_fedfunds double %10.0g Posterior mean forecast for
fedfunds
f_fedfunds_sd double %10.0g Posterior standard deviation of
forecast for fedfunds
f_fedfunds_lb double %10.0g 95% lower credible bound for
forecast for fedfunds
f_fedfunds_ub double %10.0g 95% upper credible bound for
forecast for fedfunds

bayesirf compute vytvoří nové proměnné obsahující různé souhrnné statistiky pro předpovědi. Na rozdíl od klasické analýzy neodpovídá bayesovská předpověď v určitém čase pouze jedné hodnotě, ale vzorku hodnot MCMC. Tyto hodnoty jsou pak shrnuty (jako průměry nebo mediány) a poskytují jedinou statistiku. Ve výchozím nastavení příkaz vypočítá pro každou výslednou proměnnou posteriorní průměry, posteriorní směrodatné odchylky a 95% rovnostranné intervaly spolehlivosti prognózy.

Vykresleme výchozí prognózy a jejich 95% rovnostranné intervaly spolehlivosti.
< br>

. bayesfcast graph f_inflation f_ogap f_fedfunds

Ve výchozím nastavení získáme jednookresní předpovědi. Později si ukážeme, jak vytvořit prognózy pro více období.

Namísto posteriorních středních prognóz a rovnoměrných intervalů spolehlivosti můžeme vypočítat posteriorní mediánové prognózy a intervaly spolehlivosti s nejvyšší posteriorní hustotou (HPD). Vypočítáme je a vykreslíme níže.

. bayesfcast compute f_, rseed(17) median hpd replace
. bayesfcast graph f_inflation f_ogap f_fedfunds

Pokud chceme zkoumat trendy v předpovědích, potřebujeme více časových období. Níže například v možnosti step() příkazu bayesfcast compute zadáme 28 období.

. bayesfcast compute f_, step(28) rseed(17) replace
. bayesfcast graph f_inflation f_ogap f_fedfunds, observed

Porovnáme naše předpovědi s pozorovanými hodnotami. Zdá se, že prognózy dobře předpovídají výsledky až do roku 2007. Poté se jejich výsledky zhoršují. Například 95% věrohodné intervaly pro mezeru výstupu neobsahují pozorované hodnoty po část časového horizontu.

Po analýze odstraníme soubor simulace MCMC uložený pomocí bayes: var.

. erase bvarsim.dta