From ddc81ce5343e709504c4a7eb6603229fe3a6d5c4 Mon Sep 17 00:00:00 2001 From: sebastien Date: Fri, 7 Dec 2007 14:27:37 +0000 Subject: [PATCH] v4 bvar_forecast: added storage of results in oo_ git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1482 ac1d8469-bf42-47a9-8791-bf33cf982152 --- doc/bvar-a-la-sims.pdf | Bin 166093 -> 167461 bytes doc/bvar-a-la-sims.tex | 8 +++++++ matlab/bvar_forecast.m | 51 +++++++++++++++++++++++++++++++++-------- 3 files changed, 50 insertions(+), 9 deletions(-) diff --git a/doc/bvar-a-la-sims.pdf b/doc/bvar-a-la-sims.pdf index 24467558e292728894021de3c71d01cc5f4a9a98..888235b882e84efd6e0e394512fc400f270b340e 100644 GIT binary patch delta 17816 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 diff --git a/doc/bvar-a-la-sims.tex b/doc/bvar-a-la-sims.tex index db1c4c489..24599fef0 100644 --- a/doc/bvar-a-la-sims.tex +++ b/doc/bvar-a-la-sims.tex @@ -504,6 +504,14 @@ The command will produce one graph per observed variable. Each graph displays: Morever, if option \texttt{nobs} is specified, the command will also compute root mean squared error (RMSE) for all variables between end of sample and end of datafile. +Most results are stored for future use: +\begin{itemize} +\item mean, median, variance and confidence intervals for forecasts (with shocks) are stored in \texttt{oo\_.bvar.forecast.with\_shocks} (in time series form), +\item \textit{idem} for forecasts without shocks in \texttt{oo\_.bvar.forecast.no\_shock}, +\item all simulated samples are stored in variables \texttt{sims\_no\_shock} and \texttt{sims\_with\_shocks} in file \textit{mod\_file}\texttt{/bvar\_forecast/simulations.mat}. Those variables are 3-dimensional arrays: first dimension is time, second dimension is variable (in the order of the \texttt{varobs} declaration), third dimension indexes the sample number, +\item if RMSE has been computed, results are in \texttt{oo\_.bvar.forecast.rmse}. +\end{itemize} + \section{Examples} This section presents two short examples of BVAR estimations. These examples and the associated datafile (\texttt{test.xls}) can be found in the \texttt{tests/bvar\_a\_la\_sims} directory of the Dynare v4 subversion tree. diff --git a/matlab/bvar_forecast.m b/matlab/bvar_forecast.m index 131c15a53..33f537729 100644 --- a/matlab/bvar_forecast.m +++ b/matlab/bvar_forecast.m @@ -1,6 +1,6 @@ function bvar_forecast(nlags) - global options_ + global options_ oo_ M_ options_ = set_default_option(options_, 'bvar_replic', 2000); if options_.forecast == 0 @@ -20,12 +20,14 @@ function bvar_forecast(nlags) k = ny*nlags+nx; - % Declaration of the companion matrix: + % Declaration of the companion matrix Companion_matrix = diag(ones(ny*(nlags-1),1),-ny); + % Number of explosive VAR models sampled p = 0; + % Number of non-explosive VAR models sampled d = 0; - while d<=options_.bvar_replic + while d <= options_.bvar_replic Sigma = rand_inverse_wishart(ny, posterior.df, S_inv_upper_chol); @@ -46,7 +48,6 @@ function bvar_forecast(nlags) % Without shocks lags_data = forecast_data.initval; - for t = 1:options_.forecast X = [ reshape(flipdim(lags_data, 1)', 1, ny*nlags) forecast_data.xdata(t, :) ]; y = X * Phi; @@ -67,10 +68,12 @@ function bvar_forecast(nlags) end end - disp('') - disp(['Some of the VAR models sampled from the posterior distribution']) - disp(['were found to be explosive (' int2str(p) ').']) - disp('') + if p > 0 + disp('') + disp(['Some of the VAR models sampled from the posterior distribution']) + disp(['were found to be explosive (' int2str(p) ' samples).']) + disp('') + end % Plot graphs sims_no_shock_mean = mean(sims_no_shock, 3); @@ -118,5 +121,35 @@ function bvar_forecast(nlags) for i = 1:size(options_.varobs, 1) fprintf('%s: %10.4f\n', options_.varobs(i, :), rmse(i)); + end + end + + % Store results + + DirectoryName = [ M_.fname '/bvar_forecast' ]; + if ~isdir(DirectoryName) + mkdir('.',DirectoryName); + end + save([ DirectoryName '/simulations'], 'sims_no_shock', 'sims_with_shocks'); + + for i = 1:size(options_.varobs, 1) + name = options_.varobs(i, :); + + sims = squeeze(sims_with_shocks(:,i,:)); + eval(['oo_.bvar.forecast.with_shocks.Mean.' name ' = mean(sims, 2);']); + eval(['oo_.bvar.forecast.with_shocks.Median.' name ' = median(sims, 2);']); + eval(['oo_.bvar.forecast.with_shocks.Var.' name ' = var(sims, 0, 2);']); + eval(['oo_.bvar.forecast.with_shocks.HPDsup.' name ' = sims_with_shocks_up_conf(:,i);']); + eval(['oo_.bvar.forecast.with_shocks.HPDinf.' name ' = sims_with_shocks_down_conf(:,i);']); + + sims = squeeze(sims_no_shock(:,i,:)); + eval(['oo_.bvar.forecast.no_shock.Mean.' name ' = sims_no_shock_mean(:,i);']); + eval(['oo_.bvar.forecast.no_shock.Median.' name ' = median(sims, 2);']); + eval(['oo_.bvar.forecast.no_shock.Var.' name ' = var(sims, 0, 2);']); + eval(['oo_.bvar.forecast.no_shock.HPDsup.' name ' = sims_no_shock_up_conf(:,i);']); + eval(['oo_.bvar.forecast.no_shock.HPDinf.' name ' = sims_no_shock_down_conf(:,i);']); + + if exist('rmse') + eval(['oo_.bvar.forecast.rmse.' name ' = rmse(i);']); end - end \ No newline at end of file + end