I am having trouble identifying any parameters in my model setup. I have generated data from the calibrated model, estimated it on the generated data but I can’t seem to get a handle on the identification. I keep getting versions of this error message:

==== Identification analysis ====

Testing prior mean
The number of moments with non-zero derivative is smaller than the number of parameters
up to 10 lags: check your model
Either further increase ar or reduce the list of estimated parameters

I have tried reducing the number of paramets to be estimated (and the number of observables), that does not fix my problem. I think I am making some simple but fundamental mistake. However, I am having trouble figuring out what that mistake is. Any guidance on how I can proceed and identify some/any parameters in this model would be most appreciated.

Thank you very much. I will change the settings and run diagnostics.

Since this is the baseline setup for a SMOE from Gali Monacelli, is it documented where the UR comes from? Or rather, how do I setup the parameter distributions to avoid a UR?

Please try to observe the first difference or the growth rate of observed non-stationary variables (only yhat? pih and pif are inflation rates already ?)

This issue percists even after I remove the p_h and cpi_level variables & equations, which are non-stationary. Then the only variable that is non-stationary is e, but it enters as a first difference.

Defining a new variable de=e -e(-1) and dropping e as a variable in the estimation step works, but I don’t understand why that should be an issue for identification. I guess this is what you are working on.

Exactly. Your definition of e implies that there is a unit root. By only having the first difference of e, the unit root is gone from the model. Dynare should be able to deal with this case, but it is tricky to implement.

It seems to me I have the same problem. I suspect the presence of a unit root associated with my exogenous variables.
My model, however, is quite complex.
I would deeply appreciated if someone could help to find where/what the real problem is.

==== Identification analysis ====

Testing posterior mode
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 2
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 3
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 4
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 5
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 6
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 7
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 8
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 9
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 10
The number of moments with non-zero derivative is smaller than the number of parameters
up to 10 lags: check your model
Either further increase ar or reduce the list of estimated parameters nonlinearomega-2 2 USA 2 2.zip (604 KB)

It seems to me you are simply neglecting the parameter dependence. Your calibration only once updates the other parameters depending on the estimated one. That’s why you should use model-local variables (the ones with the pound operator) or a steady state file. See Remark 4 (Parameter dependence and the use of model-local variables) in Pfeifer(2013): “A Guide to Specifying Observation Equations for the Estimation of DSGE Models” sites.google.com/site/pfeiferec … ations.pdf.

For example, you estimate c1telast, but you set outside of the model or steady state

c1rhoc = 1/(c1telast -1);
c1rhoo = 1/(c1oelast -1);
Thus, c1rhoc and c1rhoo will not be updated.

Unfortunately, despite the use of model-local variables for all my dependent parameters I still get the same message.

==== Identification analysis ====

Testing posterior mode
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 2
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 3
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 4
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 5
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 6
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 7
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 8
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 9
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 10
The number of moments with non-zero derivative is smaller than the number of parameters
up to 10 lags: check your model
Either further increase ar or reduce the list of estimated parameters

No. It’s not about a unit root. But it seems your steady state file is overwriting all parameter changes the MCMC does. Your steady state must be conditional on the estimated parameters. You cannot estimate a parameter, but then set the parameter to a different value in the steady state file.

I see what you meant. I already add the following code to my steadystate file:

if isfield(M_,‘param_nbr’) == 1
NumberOfParameters = M_.param_nbr;
for i = 1:NumberOfParameters
paramname = deblank(M_.param_names(i,:));
eval( paramname ’ = M_.params(’ int2str(i) ‘);’]);
end
check = 0;
end

My programming skills, however, are basic and I obtained the same result as before.
Some insights about the correct code shall be really appreciated.

==== Identification analysis ====

Testing posterior mode
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 2
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 3
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 4
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 5
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 6
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 7
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 8
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 9
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 10
The number of moments with non-zero derivative is smaller than the number of parameters
up to 10 lags: check your model
Either further increase ar or reduce the list of estimated parameters
Error using identification_analysis (line 102)
IDETooManyParams

Looking for answers I obtained the same error when running dynare 4.4.3 with my mode file ( nonlinearomeg_22 USA.zip ) and dynare 4.3.3 with the .mod and steady state files in annexes ( see uribe.zip folder, source Bayesian Estimation and Steady State Updating).

Must I conclude that both steady state files are overwriting all parameter changes the MCMC does or it is indeed another problem?

ERROR:
==== Identification analysis ====

Testing posterior mode
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 2
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 3
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 4
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 5
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 6
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 7
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 8
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 9
The number of moments with non-zero derivative is smaller than the number of parameters
Try increasing ar = 10
The number of moments with non-zero derivative is smaller than the number of parameters
up to 10 lags: check your model
Either further increase ar or reduce the list of estimated parameters
Error using identification_analysis (line 102)
IDETooManyParams

Please follow the steady state file example in the NK_baselined.mod of the Dynare examples folder. When doing so, replace the model-local variabes (the one with the # operator) by corresponding assignments within the steady state file. After doing this, also set

Thank you. I already followed the previous advice and changed the models in annexe accordingly to the NK_baselined.mod. I got the expected result with uribe model but not with the nonlinearomega. What could be wrong? I shall deeply appreciated some help in order to figure it out. nonlinear_USA_11Jun.zip (88 KB) uribe.zip (34 KB)