Unexpected permanent shock in deterministic model

Hello everyone,

I am quite new to Dynare, so although my model seems quite simple I cannot get it to work.

The model is quite simple.

I have a system of equations as follows.

X_{t+1} = A X_t + B

where X_{t+1}, X_t, B are all 6 by 1 vectors and A is a 6 by 6 square matrix.

There is no uncertainty so it is a deterministic model with perfect foresight.

I assume that the economy is at the steady state prior to period T, but at period T there is an unexpected change in the vector B. (B changes to B’) So this can be viewed as an unexpected permanent shock.

There are 2 predetermined variables in X_t, and matrix A has 4 eigenvalues that are larger than 1 in modulus, so the conditions for a unique nonexplosive solution are satisfied.

Is there a way to program this model and permanent shock to see what will happen to the variables after the shock is implemented?

Lastly, would it matter much if matrix A is singular? I can make the model so that A becomes non-singular, but I would prefer not to do so unless it is required.

Thank you in advance…

Best regards,

That should be a straightforward perfect foresight simulation exercise.

Thank you for the quick reply. As you have suggested, I’ve tried the perfect foresight simulation using methods from your Github, <Solow_growth_rate_changes.mod>, but I am running into errors that I cannot understand.

I have attached the file that I created.

The permanent shock is to the parameter tau and taustar.
I implemented the permanent shock by creating exogenous variables tau_shock and taustar_shock that are added to tau and taustar in the model.
Their initial and end values are defined to implement the shock.
I also defined the initial values of the two predetermined variables (b and s_star).

However, I run into the following error messages.

Error using print_info (line 32)
The steady state has NaNs or Inf.

Error in steady (line 102)
print_info(info,options_.noprint, options_);

Error in DCP_nonUS.driver (line 286)
steady;

Error in dynare (line 293)
evalin(‘base’,[fname ‘.driver’]) ;

What do these errors mean? Is there some way to fix it?

PermanentShock.mod (1.8 KB)

The issue here is finding a well-defined experiment. You have a linear model that has steady state zero with the exogenous process being 0. What is the corresponding termimal steady state ?

PermanentShock.mod (1.8 KB)

Thank you for the reply once again.

I understand what you are implying and once I input the values for the terminal steady state the program works! I have attached the modified .mod file with the terminal values.

However, I would like the program to be able to find the terminal state automatically without having to solve for the terminal steady state by hand. Is this possible?

PermanentShock.mod (1.9 KB)

That is a problem here. Your model has a unit root and therefore infinitely many steady states. Normally, knowing just the value of the exogenous variables is sufficient to compute the steady. But that is not the case in your model. The solution approach relies on solving a nonlinear equation system given an initial and a terminal condition. Having the terminal condition being endogenous does not work.

Thank you for the reply. Then, am I correct in understanding that Dynare does not have a solution method for endogenous terminal conditions and that I would have to manually solve for it and input it in?

That is my understanding, but @stepan-a may know better .

Thank you for your help.