Most efficient method to chart SS transitions


Hello Dynare team

I have a question in regards to deterministic simulations. I have a life-cycle DSGE model and I would like to analyse the effects of: i) a decrease in the population growth rate, ii) an increase in the life expectancy of the population, and iii) an extension of the retirement age.

For i), over a 60 year period, the population growth rate, n, begins in period t=0 at 1% per year so that n=0.01. By the end of the 60 year period, t=60, the population growth rate is -2% per annum so that n=-0.02 (annualised).

For ii) Once a household enters retirement at age 68, the retired household has a probability of surviving from period t to period t+1 given by gamma. If we assume that households have an initial life expectancy at period t=0 of 10 years, this means that gamma=0.9, since 10 years = 1/(1-gamma).

For both of the transitions above, if we assume that n and gamma transition smoothly from their t=0 values to their t=60 values, what would be the best way in Dynare to observe this transition on the steady state values of consumption, savings, and output?
I currently have n and gamma listed in my mod file as exogenous parameters. What would be the most efficient way to compute this transition?

For the last “shock” households transition from workers to retirees with probability omega, so that in period t=0, omega=0.9792, coinciding with an average working life of 48 years given by 1/(1-omega). However, the government announces – in advance – in period t=10 that the average working life will be permanently increased to 53 years. This implies that omega will have a permanent shock going from 0.9792 to 0.9811 (given by 53=1/(1-omega)).
I have omega currently as an exogenous variable in my model. For this shock I think converting this variable into an endogenous variable, and following the outline below would be best:

Bear in mind that n, omega, and gamma are used to discount various endogenous variables in my model, as well as being critical to the law of motion for some variables (e.g. population dependency ratio).

But yes, I am open to suggestions in regards to any potentially better ways to go about computing these transitions.


Have a look at

If you want a smooth transition of these exogenous variables (that were formerly parameters) you need to put the values into a shocks-block.


Amazing. Thank you Johannes.

Also, have you got any sample code for a quality of capital shock (which causes a ZLB problem for the central bank)?

K = [(1-d)*K(-1) + I]*rho

Where rho is a disaster shock ala Gourio.




Johannes, many thanks for the assistance thus far. I had two more general questions:
a) I’m getting some peculiar results in my model when I implement both a trend-based population (n) and survival (gamma) rate shock. Here is my shocks block from the attached mod file:

endval ;
omega =omega_initial ;
gamma =gamma_final ;
n =n_final ;
end ;

steady(solve_algo=0) ;

nvalues = n_final:(n_initial-n_final)/279:n_initial ; //reversed due to negative final
nshocks = fliplr(nvalues) ;
gammashocks = gamma_initial:(gamma_final-gamma_initial)/279:gamma_final ;

shocks ;
var n ;
periods 1:280 ;
values(nshocks) ;
var gamma ;
periods 1:280 ;
values(gammashocks) ;
end ;

perfect_foresight_setup(periods=280) ;
perfect_foresight_solver ;

Dynare essentially cannot find the perfect foresight model with the default solver, and must use a homotopy method. This produces some very peculiar results in the final period of the simulation.mita.mod (12.2 KB)

b) Secondly, would the following be sufficient to replicate a Gourio-type disaster shock to capital which pushes the interest rate to the ZLB:

(1+n+x)*K = ((1-delta)*K(-1) + (1-((I/I(-1))-1)^2)*I)*exp(-ZK) ;

resid(1) ;

steady(solve_algo=0) ;

check ;

stoch_simul(order=1,irf=40) ;

Thanks in advance.