Hi all,

I am trying to solve for the optimal simple rule in a fairly standard 3-equation NK model. However, I’d like to make the simple addition of having the variance of the shocks of one of the equations time-varying, and a function of one of the other endogenous variables.

For example, suppose I want the variance of the shock in the output gap equation to be dependent on the level of inflation (as an example). I tried to do something like the following in the model block:

y = alpha * y(+1) + gamma * (i - pi) + eps_y * pi;

where pi is defined through the inflation equation. But this doesn’t appear to work–it appears as though Dynare initializes pi=0, and the optimal simple rule is calculated as if there is *no* shock at all. Am I missing something conceptually here?

Thanks very much.

I think the problem is that, for optimal simple rules, Dynare solves the model at order 1, *i.e.* it linearizes it. As you can easily see, this is indeed equivalent to having no shock with time-varying volatility.

Thanks very much for this. Is there any workaround–either conceptually, or a Dynare-based approach–that you might suggest? It seems as though the proposed question is not ill-posed–it simply asks what coefficients in the interest rate rule will minimize the quadratic loss function given this time-varying volatility setup. But I understand that the way OSR goes about solving this question may not work.

Thanks again.

Dynare does not provide a ready-to-use method of solving your problem. You’ll have to do some programming.

First you need to solve your model at a higher order, to take into account time-varying volatility. A third order approximation is usually needed to get a satisfactory solution, see e.g. this post and the Fernandez-Villaverde et al. paper.

Then, once you’re able to get a meaningful solution of your model for a given set of parameters, you need to compute your policy objective (e.g. a weighted average of the variances of the variables of interest, as in OSR).

Since you’re now able to compute your objective for a given set of parameters, you can do a grid search over the parameter space to find a maximum for your objective. Of course, there are some computational challenges involved, especially if you have many parameters over which to search (the so-called curse of dimensionality).