MJDGGES returns the following error code: 20

I ran this mod file and came across the following error report. I could not figure out what is going wrong. Can anyone help?

??? Error using ==> print_info at 36
MJDGGES returns the following error code: 20

Error in ==> initial_estimation_checks at 101
print_info(info, options_.noprint)

Error in ==> dynare_estimation_1 at 367
initial_estimation_checks(xparam1,gend,data,data_index,number_of_observations,no_more_missing_observations);

Error in ==> dynare_estimation at 62
dynare_estimation_1(var_list,varargin{:});

Error in ==> sme at 367
dynare_estimation(var_list_);

Error in ==> dynare at 132
evalin(‘base’,fname) ;
sme.mod (5.24 KB)
smedata.xls (12.6 KB)

For starters, phi_low, m_ss, k_S_ss, h_S_ss, and lamba in your parameter initialization are undefined.

Putsteady; check;
before the estimated_params-block to see that your initial values could not be computed.

1 while this mod file is a linear model, I do not think that I need to put “steady; check;” in it. Is this right?
2 there are so many steady state parameters like lambda_ss and h_L_ss. Some of them can be calibrated using the observed data, such as y_ss, while some of them can not. However, they can be calculated indirectly using the steady state relationship between these parameters (which I have showed in “the steady state parameters” ). So in this way, the parameters like h_L_ss and lambda_ss are defined. Am I right?

  1. No, if everything in your mod-file is correct, you don’t need steady; check.
  2. For all parameters that are not estimated, Dynare uses the values before the model block. If these parameters cannot be computed by Dynare, the initial_estimation_checks will fail as they do in your case. All parameters can be implicitly calculated, but only by you and not by Dynare. You have to tell the program explicitly what the values are. That’s why they are called parameters. Even if you estimate them (which you don’t do) you have to provide valid initial values.

Unfortunately, I don’t understand your last point about “which I have showed in “the steady state parameters””. If you mean that the steady state ratios are functions of the deep parameters of your model which you want to estimate, you have to tell Dynare how to compute these ratios from the deep parameters. You can do this with the #-operator or a steady state file. See the discussion in [External function in dynare 4.2)