Higher order identification with discordant results

Dear All,

I have applied order=2 identification routines on my model and I have obtained the below results where 3 out of the 4 available tests suggest I can identify all parameters of my model.
How should I behave in this case? Can I proceed with non-linear estimation or it would be better to run additional tests?

I have used the following command in Dynare 4.6.3: identification(order=2,periods = 150,replic = 100);
In case further tests are suggested, how would you adjust the settings to improve the reliability of results?

Reading the reference paper for this toolkit (“Identification of DSGE models—The effect of higher-order
approximation and pruning”), I see tables 1 and 2 report results for the higher-order version of the Iskrev (2010) and the Qu and Tatchenko (2012) method. May you confirm these are what are called MOMENTS and SPECTRUM, respectively?

Many thanks in advance for your availability and valuable work.

======== Identification Analysis ========
Based on Pruned State Space System (order=2)

Testing prior mean
Evaluating simulated moment uncertainty … please wait
Doing 183 replicas of length 150 periods.
Simulated moment uncertainty … done!

Note that differences in the criteria could be due to numerical settings,
numerical errors or the method used to find problematic parameter sets.
Derivation mode for Jacobians: Analytic using sylvester equations
Method to find problematic parameters: Nullspace and multicorrelation coefficients
Normalize Jacobians: Yes
Tolerance level for rank computations: robust
Tolerance level for selecting nonzero columns: 1e-08
Tolerance level for selecting nonzero singular values: 1e-03

All parameters are identified in the Jacobian of steady state and reduced-form solution matrices (rank(Tau) is full with tol = robust).

All parameters are identified in the Jacobian of first-order minimal system and second-order accurate mean (rank(Deltabar) is full with tol = robust).

The rank of Gbar (Jacobian of mean and spectrum) is deficient!

muhEL is not identified!
muhRE is not identified!
mufEL is not identified!
mufRE is not identified!

All parameters are identified in the Jacobian of first two moments (rank(Mbar) is full with tol = robust).

@wmutschl Another one for you.

That is interesting, would you mind sharing your mod file with me (you can also send it to me via personal message or email willi@mutschler.eu), so I can investigate the numerical issues if there is a bug.

If you want to do some further testing, what does the identification command at order=1 tell you? Also note that the toolbox tells you:

so you could try to adjust the following numerical settings in your identification command:

  • normalize_jacobians = 0 (the original Qu and Tkachenko (2007) paper does not do this normalization, so this will probably have an effect on SPECTRUM)
  • tol_rank: try setting it to 1.e-3, 1.e-7, 1.e-10, 1.e-13, 1.e-15 and compare results
  • analytic_derivation_mode: try setting it to -1 or -2 for numerical derivatives

see the identification section in the manual for more details.

For even more debugging, you can set checks_via_subsets=1, to see whether the single deficiencies in the SPECTRUM criteria are also triggered there. This is a different (and more robust) way to analyze the rank criteria as originally proposed by Qu and Tkachenko; however, it takes a bit more time depending on max_dim_subsets_groups, which you could probably set to 2 here as you have individual parameters that trigger rank deficiencies.

The Minimal System check also depends on whether or not you have the minreal function of the control system toolbox of matlab (if you don’t, the workaround we currently have is error-prone, but we will provide our own implementation of minreal in the next version). Also at higher-order the minimal system check only considers an effect on the mean.

Again, feel free to send me the mod file or post it here, so we can have a look together.