Problems with estimating large model with many shocks?


I’m relatively new to estimation with Dynare, though I’ve been using it to solve and simulate for a while. I’m stuck and am hoping this forum can help me out.

So I have a “medium scale” DSGE model (essentially a replica of the model in many of Jesus Fernandez Villaverde’s survey papers – The model has two unit roots – one in neutral and the other in investment specific technology, both following random walks with drift. There are sticky wages and prices, as well as investment adjustment costs, habit formation, and variable utilization. I’m almost certain there is nothing wrong with the code itself – I can solve the steady state of the transformed variables by hand (and have a _steadystate.m file to do so), and the moments and impulse responses from a stochastic simulation look right, work for different parameter values, and vary as they should with the parameter values.

The issues start to surface when I go to the estimation stage. The model has six shocks – two preference shocks (one intertemporal and one intratemporal), two technology shocks (investment specific and neutral), a monetary policy shock to the Taylor rule, and a government spending shock. There are something like 20 or so free parameters.

As I understand it, I should be able to use as many observables as I have shocks. But the estimation does not work very well as I increase the number of observables. Suppose I estimate the model just using output growth and inflation as observables. The model produces fairly reasonable estimates for some parameters, but many of them don’t appear to be identified (i.e. the posterior mode is essentially the prior mean, which isn’t surprising given the small number of observables).

When I increase the number of observables things start to go haywire. I’ll frequently get the “hessian isn’t positive definite at the mode” error. Fine. I switch to mode_compute=6, as appears to be the suggestion on this forum. Then I don’t get that error, but I get “silly” results. Silly as in the estimated growth rates are way too small and the shock standard deviations are way too high. The growth rate thing really bugs me – the average growth rate of output per capita is about 0.4 percent at a quarterly frequency. It strikes me that the optimizer should produces drift terms for the neutral and investment specific shocks that match this pretty well, as those parameters don’t influence much else. But it gets me drift term estimates of 0.0006 or so for each, which implies almost no trend growth. And then the shock standard deviations are too high, implying output growth that is way too volatile. I just don’t get it.

I’ve tried everything I can think of – different values in the initial parameter value block, different priors, etc… I continue to run into the same problem – more than about two or three observables and the results go nuts. Does anyone have any suggestions on what may be going on or what I can do?

Thanks a bunch.