I’m trying to simulate a NK model with Rotemberg type sticky price. The final goal is to use the model for higher order simulation.
But for now when I run the model in first order after few changes on professor Pfeifer non linear code, dynare have trouble to compute the steady state. the equations for the ressource constraint and price setting seems to cause the problem. Based on the literature I used 160 for the Rotemberg parameter.
I would like to know if anybody can give me clarification on wether its a calibration problem or trouble with the equations?
test3mod.mod (11.2 KB)
Firstly, your choice of the adjustment cost parameter should be consistent with the other parameters in the model so as to preserve the slope of the New Keynesian Phillips curve, and therefore ought not be lifted from the literature. For this purpose and for your convenience, I have expressed this mapping, which importantly relates the Calvo probability \theta to the Rotemberg adjustment cost \psi in your model, as a model-local variable:
#psi = (epsilon-1)*theta/((1-theta)*(1-betta*theta));
Secondly, both your first-order condition to the Rotemberg price-setting problem and your aggregate resource constraint were not correct. You will find the adjusted equations in the code, at line 148 and 172 of the model file, respectively.
Please find attached a working version of your code that solves without any residuals .
test3mod_camilo.mod (11.3 KB)
Hi dear cmarch
Thank you for the quick answer. It was already late here so I took a rest. I going to check your suggestion and let you know.
Thank you for the code
Thank you for the correction on the mod file. I understand well your points. I have two clarifications questions:
1- the mapping from Calvo to Rotemberg comes from the equivalence between the first order log-linearization of Rotemberg and calvo Phillips curve slope right? Does this preserve the simulation difference at higher order?
2- As an alternative solution is it possible to directly estimate the parameters from the data?
3- I ran some simulation on higher order. and to my comprehension their should be a lower response of inflation or price dispersion to the monetary shock because they can change their prices more often than in Calvo. But it is not what I see on the response I got. Could you give me any idea on this?
Finally do you have any references on dynare higher order simulation? I checked and did my simulation based on different exemple I found. I joined the mod file.
test4mod_camilo.mod (14.5 KB)
a) No. I parameterized the adjustment cost parameter in the Rotemberg model so as for the model to produce dynamics that, to a first-order approximation, are identical to the Calvo-style version of the this model in the presence of zero net inflation in steady state. This first-order equivalence between the two NKPCs is there only due to this particular parameterization. One may write any other relationships between the Calvo probability and the Rotemberg adjustment cost parameter, just that they would not imply first-order equivalent NKPCs in the two variants of the model.
Therefore, to say “the mapping from Calvo to Rotemberg comes from the equivalence between the first order log-linearization of Rotemberg and calvo Phillips curve slope” is not technically correct.
b) Yes. In general, the two model variants will yield different simulation results at higher order, even if the Rotemberg model is parameterised so as for the model to yield identical first-order dynamics to its Calvo-style counterpart. This is due to Jensen’s inequality, as the stochastic ergodic mean of the variables in the two model variants will be different given that they feature different degrees of curvature. However, if the steady-state is efficient, welfare losses are the same at a second-order approximation.
Yes, but I would not call it “an alternative solution”. If you were to conduct Bayesian estimation in a Calvo-style model you would simply attempt to estimate \theta by choosing a prior for it. In a Rotemberg-type model in which you want to preserve the equivalence between the NKPCs and in which you are estimating the model at first-order, it makes sense to calibrate \epsilon and \beta and then attempt to estimate \psi by choosing a sensible prior for it. How sensible? You will choose a prior on \psi that indirectly reflects you prior on the Calvo probability, given your calibration of \epsilon and \beta and the formula in the reply above. For example, see the estimation approach taken in Gerali et al. (2010) https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1538-4616.2010.00331.x
GIRFs are state-dependent. If you run simulation at higher-order, interpretation of your results will be different, and in general, much trickier, and comparison across model variants is even trickier given my reply in 1b. Size and type of shocks matter as well.
As to references to higher-order simulation, I would suggest you to read the Dynare manual and explore the forum. There are many related posts.
Thank you very much for your helping advices Camilo it was very helpful. I come back to you as soon as I go further in my works
another quick question.
At higher order the model is simulated over the specified periods to compute de GIRFs. Is it normal to have different paths in the simulated variables? In my case I have completely different trend in the path of the price level and money stock. I don’t really get the intuition behind this.
The last mod file i attached had a mistake. so I just attached a new one.
testsim.mod (13.4 KB)
Your model has unit roots, so results will very much depend on the sequence of shocks. And yes, having different shocks for the simulation paths is the whole point about GIRFs.
Thank you for your answer professor.
It might be plausible and sorry for asking but I don’t really get the insight between the unit roots and the sequence of the shocks?
Usually, the effect of shocks averages out over time in different simulations. The reason is that most models are stationary and fluctuate around their ergodic mean. In this case, the effect of shocks dies out over time. With a unit root that is not the case. Rather, the process has infinite memory and shocks accumulate. That implies that the series with unit root depend on all shocks that ever happened in the past.
I understand now. Thank you for your answer professor
I am trying to implement a forward guidance using NK model with Rotemberg sticky price. unfortunately when I run the model in perfect foresight it is unable to compute the steady state. Even though I find a “non conventional” way to get the steady state by adding the excess residual to the equation the rank condition is not verified and so the model fail. I thus have two questions:
1 - I guessed that the problem comes maybe from the initval of the nominal interest or the way the steady state model is parameterized, but I still don’t have any clue on what’s going on. Do any one have an idea on how to solve the problem?
2 - In perfect foresight there is no need to linearize the model for the simulation. But I was wondering if it is possible to use higher order approximation with the simul command so that I could capture the difference between Rotemberg and Calvo?
testFG.mod (8.7 KB)