Quick Help

Hi friends,
I can run my code but But not completely. When I run my model, appear these errors:

Error using initial_estimation_checks (line 38)
initial_estimation_checks:: Estimation can’t take place because
too many shocks have been calibrated with a zero variance!

Error in initial_estimation_checks (line 38)
error(‘initial_estimation_checks:: Estimation can’‘t take
place because too many shocks have been calibrated with a
zero variance!’])

Error in dynare_estimation_1 (line 180)
oo_ =
initial_estimation_checks(objective_function,xparam1,dataset_,M_,estim_params_,options_,bayestopt_,oo_);

Error in dynare_estimation (line 84)
dynare_estimation_1(var_list,dname);

Error in qwe (line 508)
dynare_estimation(var_list_);

Error in dynare (line 162)
evalin(‘base’,fname) ;

please help me to solve these errors.
Thanks.
data.xls (11.6 KB)
Untitled2.m (2.95 KB)
qwe.mod (2.98 KB)

You have 6 observables so you need at least 6 shocks. But in estimation and the shocks-block, only 5 of them are set/estimated. All others are initialized to 0.

Hi Johannes,

This similar question is relevant for me now too. The main question is: how are shocks identified in these models? While it’s easy to add shocks - just put one on production, labor productivity, the taxes, and so on - the empirical justification for doing so seems to be scarce. I read the Econometric Reviews paper by An, but it does not really address this issue. In my application, I am trying to estimate three parameters, and I wanted to make consumption, capital, and labor supply endogenous – but then I need three shocks. What does it mean to run the estimation with only one shock too? Thanks for your help!

I don’t really understand the question. You need at least as many shocks as observables. This has nothing to do with the number of endogenous variables or the number of parameters. Rather, your forecast error variance matrix that needs to be inverted would be singular otherwise.

Right, I mis-spoke above about endogenous variables – what I meant was including more “varobs” (observables). What is the best practice for what to include and how the parameters can be identified? I understand the technical econometric notion of identification – invertibility – but you and I both know that this is not at all the notion of identification that matters for papers, seminars, and, importantly, empirical relevance. The technical condition is easy to satisfy, but I am concerned that my results might look good but still be poorly identified in the empirical sense. Do you have suggested references on this point? Coincidentally, a job market candidate is presenting in another two weeks from UPenn (student of Fernandez Villaverde) who uses this Dynare estimation method!

First of all “shocks” cannot be identified. Only parameters can be identified (like standard deviations and autocorrelations for shock processes). For shocks, the relevant term is their filtered and smoothed estimates. Here, the standard reference is Hamilton’s 1994 Time Series Analysis.

Regarding identification, the standard reference to start with is Nicolai Iskrev’s JME-paper. You can check identification strength using Dynare’s identification command.
Regarding which observables to choose, check out Guerron-Quintana’s “What you match does matter” in the Journal of Applied Econometrics
If you want to use more observable than you have economic shocks, people usually use measurement error. This goes back to Sargent and Ireland.

Does the identification command work when using measurement errors? I always get an error message…

[code]==== Identification analysis ====

Testing ML Starting value
Evaluating simulated moment uncertainty … please wait
Doing 2415 replicas of length 300 periods.
Simulated moment uncertainty … done!
??? Error using ==> times
Matrix dimensions must agree.

Error in ==> identification_analysis at 225
deltaM = deltaM.*abs(params’);

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

Error in ==> Model3 at 666
dynare_identification(options_ident);

Error in ==> dynare at 162
evalin(‘base’,fname) ;[/code]

Unfortunately, not yet.

These are great references – thank you Johannes.

Good evening In fact I have the same problem but when I try to estimate the std error of the shock I have the same error message :

??? Error using ==> initial_estimation_checks at 38
initial_estimation_checks:: Estimation can’t take place because too many shocks have been calibrated with a zero variance!

Error in ==> initial_estimation_checks at 38
error(‘initial_estimation_checks:: Estimation can’‘t take place because too many shocks have been calibrated with a zero variance!’])

Error in ==> dynare_estimation_1 at 179
oo_ = initial_estimation_checks(objective_function,xparam1,dataset_,M_,estim_params_,options_,bayestopt_,oo_);

Error in ==> dynare_estimation at 89
dynare_estimation_1(var_list,dname);

Error in ==> article2modifsansfiscal at 468
dynare_estimation(var_list_);

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

Can you help me ? thank you very much
data7.m (15 KB)
article2modifsansfiscal.mod (11.4 KB)

You have 8 observables, but only 6 non-zero shocks:

shocks; var epsystar = 1; //OK //var epsistar = 1 ; var epszeta = 1 ;//OK //var epspistar = 1 ; var epsei=1 ;//OK var epsz= 1 ;//OK var epspih=1;//OK var epspim=1;//OK end;
Thus, you have stochastic singularity.