I am attempting to estimate my model with SMM using a 3rd order perturbation approximation. However, the moments in the data are of dramatically different scales/orders of magnitude. I was wondering if Dynare’s implementation scales the moment conditions so that they are percentage deviations from the data moments, or if the raw moments are used? If it is the latter, is there any way to improve the performance of the estimator?

How did you specify the mapping between data and model variables. Dynare does not scale. It’s your job to formulate a measurement equation.

Thank you for the quick reply! I attached all of my files here but to summarize I am estimating a perpetual youth DSGE model using primarily financial data. So in particular I am matching the mean, variance, and (some) first-order autocovariances of excess returns, the risk-free rate, the price-dividend ratio, dividend growth, and consumption growth. Since the data are of very different scales/units, the initial diagonal weighting matrix is poorly scaled. In the files I uploaded I divided the price-dividend ratio through by 100 in the observation equation which seems to have marginally improved things.

Would you recommend rescaling the observation equations so they are roughly the same magnitudes? Or does this not matter in your experience?

estimationData.mat (37.3 KB)

FF_determinate.mod (13.8 KB)

FF_determinate_jacobian.m (1.5 KB)

FF_determinate_steadystate.m (4.6 KB)

In a first step, I would recommend simply simulating the data at second and then third order and have a look at the simulated series and whether it’s close to the observed series. I am seeing a difference of 5 to 8 orders of magnitude. That suggests there is still a fundamental issue with the model or its parameterization. Put differently, the model is way too volatility.

Thank you, I’ll give that a try. To put it differently I think you’re saying the initial guess is pretty poor. I’ll try to alter this initial calibration by trial and error to see if I can start off with some better scaling.

More precisely, I am saying that either

- your initial guess is very poor or
- there is a mistake in the mapping from data to model variables, i.e. the model variables represent something very different
- There is a mistake in the model parameterization (like measuring 1 percent as 1 instead of 0.01)

Thanks for this, I was able to find a significantly better initial guess and it does not seem to have issues with the weighting matrix conditioning now. As far as I can tell there is no mistake in the sense of 2 or 3 after double checking.