Troubles with DSGE-VAR estimation


#1

Dear all,

I am new to the DSGE-VAR estimation routine, and even if it does not not seem pretty difficult I encountered the following issue with the dsge_prior_weight estimation.

When I calibrate dsge_prior_weight = 2 (within the estimation command) the estimation works fine (if I set it to 1 it does not). When instead I try to estimate it assessing a uniform prior over the support [2, 10] the following error appears (nor it does enlarging the support lower bound)

"Error using chol
Matrix must be positive definite.

Error in posterior_sampler_initialization (line 84)
d = chol(vv);

Error in posterior_sampler (line 60)
posterior_sampler_initialization(TargetFun, xparam1, vv,
mh_bounds,dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,oo_);

Error in dynare_estimation_1 (line 447)
posterior_sampler(objective_function,posterior_sampler_options.proposal_distribution,xparam1,posterior_sampler_options,bounds,dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,oo_);

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

Error in SW_ES_VARDSGE (line 564)
oo_recursive_=dynare_estimation(var_list_);

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

The estimation command when lambda is estimated is the following:

“estimation(nograph, lik_init=2, datafile=SW_ES_data_final, mode_compute=4, optim=(‘NumgradAlgorithm’,3), prefilter=0, mh_replic=2000, first_obs=5, nobs=50, mh_nblocks=1,mh_jscale=0.30, dsge_var, dsge_varlag=4)”

Does anybody have any clue on how to fix it?

Thank you in advance!


#2

This indicates that mode-finding has problems when giving the data more weight relative to the prior. Have you checked your data treatment? And what do the mode_check plots say?


#3

Data treatment is fine (the canonical DSGE estimation worked fine), concerning the ‘mode_chek’ plots I could infer there was some serious identification issue. In fact I managed to pick up the parameter source of troubles and took it out from the estimation procedure. Now it works fine also with ‘dsge_prior_weight’.

Is this correct or would you have any better insight?


#4

If a parameter is not identified, then you will have the problem that you describe. So your approach is correct.