I am trying to implement the differentiate_forward_vars (or differentiate_forward_variables) and I am facing two problems:
The preprocessor does not seem to know the differentiate_forward_vars model option. I am using Dynare 4.3.3 and simply writing model(differentiate_forward_vars); As a result, I don’t know what is happening or how to solve this problem…
As this first approach is not working for now, I tried to implement this approach by hand. I replace my forward jumping variables from X(+1) to X+D_X with D_X = DYN(X(+1)-X)=(1-DYN)NULL, where DYN=1 is a parameter and NULL an exogenous variable. With this transformation, I am able to simulate permanent shocks (say markup shocks) by changing the concerned parameter (here MARKUP) to a endogenous unit root equation: MARKUP = MARKUP(-1)+E_MARKUP and shocking E_MARKUP in the first period.
I understand the Terminal Condition in Differences approach and the purpose of this transformation to obtain a terminal condition only in terms of differentiated forward variables equal to 0 at the steady state (allowing for an easy implementation of a Newton-Raphson algorithm on the time-stacked model). However, I am not sure to fully understand how this concretely works in Dynare.
First, from what I understand, for this approach to be viable, the simulation horizon needs to be big enough for the zero terminal condition hypothesis to be verified?
Second, how do we tell Dynare (or does it do it automatically), that this is the appropriate terminal condition?
So far i am writing something like that, specifying no endval condition.
model; MYTRANSFORMEDMODEL... MARKUP = MARKUP(-1)+E_MARKUP end; initval; A PROPER INITVAL end; steady; check; shocks; var E_MARKUP_FR; periods 1; values -0.1; end; simul(periods=500);
Thank you very much for your help!