@JohannesPfeifer Why? The estimated_params_init block is mainly used with the Bayesian approach. Do you mean that the preprocessor should return an error if this block is used when no priors are declared in the estimated_params block?
@stepan-a I am currently working on a model estimated with ML. I have about 40 parameters to be estimated and fully calibrated the model. If I were doing Bayesian estimation, I could simply use the use_calibration option of the estimated_params_init block. But for ML, I am forced to provide starting values, because the preprocessor complains. A more sensible restriction would be to only throw an error if no estimated_params_init is present.
@JohannesPfeifer, Okay. If you are able to estimate a model with ML without imposing upper and lower bounds, this makes sense. The only issue I foresee is that we should check that all the (estimated) parameters are effectively initialized (either in the estimated_params_init block or with the calibration). I am not sure that this can be handled only with the preprocessor. @houtanb can you remove this restriction (i.e. allow to declare only a list of parameters in the estimated_params block) in an experimental branch?
@stepan-a This should not be handled by the preprocessor. initial_estimation_checks should make sure that a valid vector is provided at the start of estimation, because it is also able to detect parameter dependencies from steady state files. If I understand this correctly, we are already doing this when calling test_for_deep_parameters_calibration(Model);