From fda021855cbe511674c6bdeededa170ce27a0d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Thu, 2 Aug 2018 14:13:03 +0200 Subject: [PATCH] Fix forecast command with deterministic exogenous and linear option Closes #1608 --- matlab/dyn_forecast.m | 9 +++- tests/Makefile.am | 1 + tests/forecast/linear_exo_det_forecast.mod | 48 ++++++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 tests/forecast/linear_exo_det_forecast.mod diff --git a/matlab/dyn_forecast.m b/matlab/dyn_forecast.m index 69e78d54a5..162ace08ca 100644 --- a/matlab/dyn_forecast.m +++ b/matlab/dyn_forecast.m @@ -151,12 +151,17 @@ else elseif horizon <= exo_det_length ex = zeros(exo_det_length,M.exo_nbr); end + if options.linear + iorder = 1; + else + iorder = options.order; + end if isequal(M.H,0) [yf,int_width] = simultxdet(y0,ex,oo.exo_det_simul,... - options.order,var_list,M,oo,options); + iorder,var_list,M,oo,options); else [yf,int_width,int_width_ME] = simultxdet(y0,ex,oo.exo_det_simul,... - options.order,var_list,M,oo,options); + iorder,var_list,M,oo,options); end end diff --git a/tests/Makefile.am b/tests/Makefile.am index a9472adfef..288c9bb57f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -303,6 +303,7 @@ MODFILES = \ stochastic_purely_forward/stochastic_purely_forward.mod \ stochastic_purely_forward/stochastic_purely_forward_with_static.mod \ forecast/Hansen_exo_det_forecast.mod \ + forecast/linear_exo_det_forecast.mod \ forecast/ls2003_rolling_window_forecast.mod \ gradient/fs2000_numgrad_13.mod \ gradient/fs2000_numgrad_15.mod \ diff --git a/tests/forecast/linear_exo_det_forecast.mod b/tests/forecast/linear_exo_det_forecast.mod new file mode 100644 index 0000000000..cd256bb79b --- /dev/null +++ b/tests/forecast/linear_exo_det_forecast.mod @@ -0,0 +1,48 @@ +// Regression test for issue #1608 (combining forecast, varexo_det and linear) + +var y, pi, i, g, u, k; +varexo e_g e_u e_k; +varexo_det gov; + +parameters lambda, pi_target, y_target, phi_pi, phi, rho, rhoout, rhopi, rhoint, sigma1, sigma2, sigma3; + +lambda = 0.3; +pi_target = 0; +y_target = 0; +phi_pi = 1.5; +phi = 1; +rho = 0.99; +T = 50; +rhoout = 0.8; +rhopi = 0.5; +rhoint = 0; +sigma1 = 1; +sigma2 = 1; +sigma3 = 1; + +model(linear); +y=y(+1)-phi*(i-pi(+1))+gov+g; +pi=lambda*y+rho*pi(+1)+u; +i=phi_pi*(pi-pi_target)+k; +g=rhoout*g(-1)+e_g; +u=rhopi*u(-1)+e_u; +k=rhoint*k(-1)+e_k; +end; + +steady; +check; + +shocks; +var e_g; +stderr sigma1; +var e_u; +stderr sigma2; +var e_k; +stderr sigma3; +var gov; +periods 1:9; +values 0.2; +end; + +stoch_simul(irf=0); +forecast; -- GitLab