From 4004d8d4424612c6178e488ba811a2572113f16d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= Date: Thu, 1 Jun 2017 09:59:42 +0200 Subject: [PATCH] Allow for lags in exogenous variables. (cherry picked from commit b8e2eec87871563bd5602c648e23a788ee661b2d) --- matlab/backward/backward_model_inversion.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/matlab/backward/backward_model_inversion.m b/matlab/backward/backward_model_inversion.m index 5e305ae55..6acbcc606 100644 --- a/matlab/backward/backward_model_inversion.m +++ b/matlab/backward/backward_model_inversion.m @@ -98,7 +98,7 @@ for i=1:nyctrl end % Initialization of the returned simulations (exogenous variables). -X = exogenousvariables{exo_names{:}}(constraints.dates(1)-1:constraints.dates(end)).data; +X = exogenousvariables{exo_names{:}}(constraints.dates(1)-max(1,DynareModel.maximum_exo_lag):constraints.dates(end)).data; % Inversion of the model, solvers for the free endogenous and exogenous variables (call a Newton-like algorithm in each period). for it = 2:nobs(constraints)+1 @@ -110,7 +110,7 @@ for it = 2:nobs(constraints)+1 % values) and the free exogenous variables (initialized with 0). z = [Y(freeendogenousvariables_id,it-1); zeros(nxfree, 1)]; % Solves for z. - z = dynare_solve(model_dtransf, z, DynareOptions, model_dynamic, ylag, ycur, X, DynareModel.params, DynareOutput.steady_state, it, ModelInversion); + z = dynare_solve(model_dtransf, z, DynareOptions, model_dynamic, ylag, ycur, X, DynareModel.params, DynareOutput.steady_state, it+DynareModel.maximum_exo_lag, ModelInversion); % Update the matrix of exogenous variables. X(it,freeinnovations_id) = z(nyfree+1:end); % Update the matrix of endogenous variables. @@ -118,4 +118,4 @@ for it = 2:nobs(constraints)+1 end endogenousvariables = dseries(Y', constraints.dates(1)-1, endo_names); -exogenousvariables = dseries(X(2:end,:), constraints.dates(1), exo_names); \ No newline at end of file +exogenousvariables = dseries(X(max(DynareModel.maximum_exo_lag,1)+1:end,:), constraints.dates(1), exo_names); \ No newline at end of file