Identification problems in a large-scale DSGE model

Hi everyone, I am trying to run the identification analysis onto my large scale DSGE model (around 60 equations). The GSA and Bayesian estimation work well whereas the identification analysis outputs the following message:

Code: Select all==== Identification analysis ====

Testing prior mean
??? Attempted to access x(2,4); index out of bounds because size(x)=[1,61].

Error in ==> igem_gsa_dynamic at 236
Error in ==> identification_analysis at 77
[residual, g1 ] = feval([M_.fname,’_dynamic’],yy0, …

Error in ==> dynare_identification at 272
[idehess_point, idemoments_point, idemodel_point, idelre_point,
derivatives_info_point, info] = …

Error in ==> igem_gsa at 1215

Error in ==> dynare at 120
evalin(‘base’,fname) ;

May the message refer to the fact that the model is too ‘large’ to be dealt with identification analysis?

Thanks in advance for any possible suggestion

Please provide us with the mode. Model size should usually net be an issue.

I am sorry for the delay of my answer. I cannot provide you the code as it is protected by copyright.

Thank you anyway.


Hi everyone,

I’m trying to deal with an issue in loglinerizing my DSGE model.

The problem is the following.

I have log-linearized my model (by hand) so that now the endogenous variables are expressed as percentage deviation from the steady state. This procedure works for the variables whose the steady state is not null. Of course, some variables could have a steady state equal to zero: in this case I cannot loglinerize the variable at all. In fact, this is the case of my model (fortunately only a few of them present the problem).

For instance this is the case of the following equation (namely, the public debt equation):


where BR (BR(-1)) is the debt at time t (t-1); INFY is the factor inflation; DR is the deficit.

The problem is that in this equation DR takes zero in steady state so that I cannot loglinerize this equation as usual. Of course I can’t write to dynare any log-deviation of DR as it doesn’t exist!

Do you have any idea (or mathematical trick) to go through this issue?

Thanks in advance for any possibile suggestion.


If you cannot impose market clearing directly so that debt drops out, because it is 0, you should log-linearize for all other variables and linearize for debt.

See also Remark 19 (Variables with Negative Steady States or already in Percent) in Pfeifer(2013): “A Guide to Specifying Observation Equations for the Estimation of DSGE Models”

Thanks a lot. I’ll see it and I 'll keep you informed on model’s reaction.


Dear Johannes,

I read your paper. It is really clear, well written and deals with topics generally excluded by traditional manuals.

I used your suggestion in the box (pag 43) to log-linearize for almost all variables and linearize for the variables/equations on which loglinerization doesn’t work.

Now in my model I have some variables expressed as percentage deviations form steady state (for those variables/equations I have log-linearized) and others just as difference with respect to the steady state (for those variables/equations I have linearized).

From a computational point of view is it a problem? In particular (given that I use the option model(linear)) does Dynare interpret all variables as percentage deviation from steady state or something else? In other words, is it necessary to express all variables in the same ‘dimension’ to have a meaningful result?

Thanks a lot for any possible suggestion.

Dynare does not care about variable interpretation. That is your job. Dynare always does a linearization. By using variable substitution with exp() you transform the linearization to be a log-linearization in the actual variables that interest you.

When entering a linear model, the linearized version of that model is the model itself (a linear model is invariant to linearization). That is the reason why it does not matter whether you did linearization or log-linearization for your model. The resulting model will still be linear (in the sense of all equations having the form constant+constant*variable). You just have to make sure that the same variable always denotes the same concept. That is, you cannot have the same variable denote level deviations in one equation and percentage deviations in a second equation.

Thanks a lot, again!