I was wondering if anybody could help clarify the following:
if the model is not log-linearized and not in exp-log form (so it is the original FOC’s) in Dynare code we would write “model;” and “stoch_simul” which would imply Dynare is automatically taking 2nd order Taylor expansion, right? And if so, why does it have to be 2nd order and not 1st order (why is it that when the model is not specified in logs Dynare has to take 2nd order rather than 1st order taylor expansion)? And the output from Dynare for the IRF’s would be interpreted as deviation of, say, c from its steady state (ct-css)?
if the model is log-linearized and I write “model;” and “stoch_simul;”, it means Dynare is automatically taking 1st order Taylor expansion and I don’t need to specify “order=1”? Why does the order have to be 1? And if so, the output from Dynare would be interpreted as log-deviations from the steady state, log(ct)-log(css)?
if the model is specified in exp-log form, it means the model is not log-linearized, it is just telling Dynare to take the Taylor series expansion in logs, rather than in levels, therefore the correct order for the Taylor expansion would be 1? And in this case, how would you interpret the output from Dyanre? As log-deviations or just deviations from the steady state?
in the steady state, the log-deviation from the steady state of a variable is always zero. why?
Thanks a million!
I can answer to 1, 2, and 4.
I am new to Dynare but as I know
- You can specify first order approx in stoch_simul when model is not log liniarized. Check the manual.
- If you have written log liniarized FOCs you should write
model(linear); in your code. It will take automatically first order approx because it is linear and just first order approx cand be take into account.
- Because at steady state the value of a variabile is constant (for stationary) or growing at fixed rate (non stationary). If there are no shocks the value of the variable should be it’s steady state value. Think of it as a “gap”, the gap is deviation of a variable from steady state, since there is no deviation it is zero at steady state.
- If you put an exp() before every variable, you perform a substitution, defining all variables in logs. Hence, the output of Dynare is log-deviations (percentage deviations from steady state). So the interpretation of e.g. IRFs is the same as if you entered the model without exp() in front of each variable, but used the relative_irfs statements in the stoch_simul command.
If you perform a first order approximation to the exp()-model, you effectively perform a log-linear approximation as if you entered the model in log-linear form (model(linear);-statement). However, in contrast to a model entered to Dynare in log-linear form, which is derived by stopping the approximation at first order when entering the model in Dynare, it is possible to compute higher-order approximations.
The standard for exp()-loglinear models is the same second order approximation that Dynare uses for other non-linearly entered model. Note also, that there is no “correct approximation order” in this case. It simply depends on the level of accuracy you need. For same applications like asset pricing, first order approximations are simply not sufficient. The only case when there exists a “correct approximation order” is the already linearly entered model as all higher order terms are simply 0 and you gain nothing by higher order approximations.