Ново  в

Бейсовско динамично прогнозиране

Динамичното прогнозиране е често срещан инструмент за прогнозиране, след като се приложат многомерни модели на времеви редове, като например векторни авторегресионни модели (VAR). При него се прогнозират стойностите на резултатите в текущия момент, като се използват актуализирани (прогнозирани) стойности на резултатите в предишни моменти. Новата команда bayesfcast изчислява динамични прогнози по метода на Байес след монтиране на байесов VAR модел с помощта на командата bayes: var.

Байесовите динамични прогнози създават цяла извадка от прогнозирани стойности на резултатите във всеки момент, вместо една прогноза, както е при класическия анализ. Тази извадка може да се използва за отговор на различни въпроси, свързани с моделирането, като например колко добре моделът предсказва бъдещите наблюдения, без да се прави допускане за асимптотична нормалност при оценяване на несигурността на прогнозата. Това е особено привлекателно за малки набори от данни, за които допускането за асимптотична нормалност може да е подозрително.

Можете да използвате bayesfcast compute, за да изчислите динамични прогнози и да ги запазите в текущата съвкупност от данни, както и да ги изобразите на графики, като използвате bayesfcast graph.

Акценти

  • Графични динамични прогнози
  • Записване на динамични прогнози в текущия набор от данни
  • Посочете хоризонта на прогнозиране
  • Изчисляване на апостериорни средни стойности или медиани на прогнозите
  • Изчисляване на апостериорните стандартни отклонения
  • Изчисляване на апостериорни доверителни интервали

Нека видим как работи

Продължаваме с макроданните за САЩ от моделите на Бейс VAR, които са тримесечни данни от първото тримесечие на 1954 г. до четвъртото тримесечие на 2010 г. Бихме искали да получим бейсовски динамични прогнози за инфлацията, производствената разлика и лихвения процент по федералните фондове от бейсовски VAR модел за тези променливи.

Ето как изглеждат данните.

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

. tsset

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

. tsline inflation ogap fedfunds

Най-напред приложихме модел на Бейс с четири лаг-а. За да проверим ефективността на прогнозата, ще задържим данните си след първото тримесечие на 2004 г. Запазваме и резултатите от MCMC в bvarsim.dta.

Изходът от командата bayes: var е дълъг, затова по-долу ще пропуснем част от него.

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

See Bayesian VAR model for details about bayes: var and its output.

We use the new bayesfcast command to compute Bayesian dynamic forecasts. This command has two subcommands. bayesfcast compute computes the forecasts and saves them in the current dataset as new variables. And bayesfcast graph plots the forecasts.

Let’s start with the simplest specification. We specify f_ as the prefix for the new variables and a random-number seed for reproducibility.

. 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 създава нови променливи, съдържащи различни обобщени статистики за прогнозите. За разлика от класическия анализ, прогнозата на Байес в определен момент съответства не само на една стойност, а на извадка от MCMC стойности. След това тези стойности се обобщават (като средни стойности или медиани), за да се получи една статистика. По подразбиране командата изчислява апостериорни средни стойности, апостериорни стандартни отклонения и 95% равни доверителни интервали за прогнозата за всяка резултативна променлива.

Нека изведем графиката на прогнозите по подразбиране и техните 95% равностойни доверителни интервали.
< br>

. bayesfcast graph f_inflation f_ogap f_fedfunds

По подразбиране получаваме прогнози за един период. По-късно ще покажем как да създадем прогнози за повече периоди.

Вместо апостериорни средни прогнози и равностойни доверителни интервали можем да изчислим апостериорни медианни прогнози и доверителни интервали с най-висока апостериорна плътност (HPD). Изчисляваме ги и ги изобразяваме по-долу.

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

Ако искаме да проучим тенденциите в прогнозите, са ни необходими повече периоди от време. Например, по-долу сме посочили 28 периода в опцията step() на bayesfcast compute.

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

Сравняваме нашите прогнози с наблюдаваните стойности. Изглежда, че прогнозите се справят добре с прогнозирането на резултатите до 2007 г. След това те се представят зле. Например 95%-ните доверителни интервали за производствената разлика не съдържат наблюдаваните стойности за част от времевия хоризонт.

След анализа премахваме файла за MCMC симулация, запазен от bayes: var.

. erase bvarsim.dta