options_mom_.mom.analytic_jacobian_optimizers=[1,3,4,13,101];% these are currently supported optimizers that are able to use the analytical_jacobian option
options_mom_=set_default_option(options_mom_,'plot_priors',true);% control plotting of priors
options_mom_=set_default_option(options_mom_,'prior_trunc',1e-10);% probability of extreme values of the prior density that is ignored when computing bounds for the parameters
options_mom_.mom=set_default_option(options_mom_.mom,'bartlett_kernel_lag',20);% bandwith in optimal weighting matrix
options_mom_.mom=set_default_option(options_mom_.mom,'penalized_estimator',false);% include deviation from prior mean as additional moment restriction and use prior precision as weights
options_mom_.mom=set_default_option(options_mom_.mom,'se_tolx',1e-5);% step size for numerical computation of standard errors
options_mom_.mom=set_default_option(options_mom_.mom,'weighting_matrix_scaling_factor',1);% scaling of weighting matrix in objective function
options_mom_.mom=set_default_option(options_mom_.mom,'weighting_matrix',{'DIAGONAL';'OPTIMAL'});% weighting matrix in moments distance objective function at each iteration of estimation;
% possible values are 'OPTIMAL', 'IDENTITY_MATRIX' ,'DIAGONAL' or a filename. Size of cell determines stages in iterated estimation.
end
ifstrcmp(mom_method,'SMM')
options_mom_.mom=set_default_option(options_mom_.mom,'burnin',500);% number of periods dropped at beginning of simulation
options_mom_.mom=set_default_option(options_mom_.mom,'bounded_shock_support',false);% trim shocks in simulation to +- 2 stdev
options_mom_.mom=set_default_option(options_mom_.mom,'seed',24051986);% seed used in simulations
options_mom_.mom=set_default_option(options_mom_.mom,'simulation_multiple',7);% multiple of the data length used for simulation
end
ifstrcmp(mom_method,'GMM')
options_mom_.mom=set_default_option(options_mom_.mom,'analytic_standard_errors',false);% compute standard errors numerically (0) or analytically (1). Analytical derivatives are only available for GMM.
options_mom_=set_default_option(options_mom_,'first_obs',1);% number of first observation
options_mom_=set_default_option(options_mom_,'logdata',false);% if data is already in logs
options_mom_=set_default_option(options_mom_,'nobs',NaN);% number of observations
options_mom_=set_default_option(options_mom_,'prefilter',false);% demean each data series by its empirical mean and use centered moments
options_mom_=set_default_option(options_mom_,'xls_sheet',1);% name of sheet with data in Excel, Octave does not support the empty string, rather use first sheet
options_mom_=set_default_option(options_mom_,'xls_range','');% range of data in Excel sheet
options_mom_=set_default_option(options_mom_,'mode_compute',13);% specifies lsqnonlin as default optimizer for minimization
end
else
options_mom_=set_default_option(options_mom_,'mode_compute',4);% specifies csminwel as fallback default option for minimization
end
options_mom_=set_default_option(options_mom_,'additional_optimizer_steps',[]);% vector of additional mode-finders run after mode_compute
options_mom_=set_default_option(options_mom_,'optim_opt',[]);% a list of NAME and VALUE pairs to set options for the optimization routines. Available options depend on mode_compute
options_mom_=set_default_option(options_mom_,'silent_optimizer',false);% run minimization of moments distance silently without displaying results or saving files in between
options_mom_=set_default_option(options_mom_,'huge_number',1e7);% value for replacing the infinite bounds on parameters by finite numbers. Used by some optimizers for numerical reasons
options_mom_.mom=set_default_option(options_mom_.mom,'analytic_jacobian',false);% use analytic Jacobian in optimization, only available for GMM and gradient-based optimizers
options_mom_=set_default_option(options_mom_,'order',1);% order of Taylor approximation in perturbation
options_mom_=set_default_option(options_mom_,'pruning',false);% use pruned state space system at order>1
options_mom_=set_default_option(options_mom_,'aim_solver',false);% use AIM algorithm to compute perturbation approximation instead of mjdgges
options_mom_=set_default_option(options_mom_,'k_order_solver',false);% use k_order_perturbation instead of mjdgges
options_mom_=set_default_option(options_mom_,'dr_cycle_reduction',false);% use cycle reduction algorithm to solve the polynomial equation for retrieving the coefficients associated to the endogenous variables in the decision rule
options_mom_=set_default_option(options_mom_,'dr_cycle_reduction_tol',1e-7);% convergence criterion used in the cycle reduction algorithm
options_mom_=set_default_option(options_mom_,'dr_logarithmic_reduction',false);% use logarithmic reduction algorithm to solve the polynomial equation for retrieving the coefficients associated to the endogenous variables in the decision rule
options_mom_=set_default_option(options_mom_,'dr_logarithmic_reduction_maxiter',100);% maximum number of iterations used in the logarithmic reduction algorithm
options_mom_=set_default_option(options_mom_,'dr_logarithmic_reduction_tol',1e-12);% convergence criterion used in the cycle reduction algorithm
options_mom_=set_default_option(options_mom_,'qz_criterium',1-1e-6);% value used to split stable from unstable eigenvalues in reordering the Generalized Schur decomposition used for solving first order problems
% if there are no unit roots one can use 1.0 (or slightly below) which we set as default; if they are possible, you may have have multiple unit roots and the accuracy decreases when computing the eigenvalues in lyapunov_symm
% Note that unit roots are only possible at first-order, at higher order we set it to 1 in pruned_state_space_system and focus only on stationary observables.
options_mom_=set_default_option(options_mom_,'qz_zero_threshold',1e-6);% value used to test if a generalized eigenvalue is 0/0 in the generalized Schur decomposition
options_mom_=set_default_option(options_mom_,'schur_vec_tol',1e-11);% tolerance level used to find nonstationary variables in Schur decomposition of the transition matrix.
% numerical algorithms
options_mom_=set_default_option(options_mom_,'lyapunov_db',false);% doubling algorithm (disclyap_fast) to solve Lyapunov equation to compute variance-covariance matrix of state variables
options_mom_=set_default_option(options_mom_,'lyapunov_fp',false);% fixed-point algorithm to solve Lyapunov equation to compute variance-covariance matrix of state variables
options_mom_=set_default_option(options_mom_,'lyapunov_srs',false);% square-root-solver (dlyapchol) algorithm to solve Lyapunov equation to compute variance-covariance matrix of state variables
options_mom_=set_default_option(options_mom_,'lyapunov_complex_threshold',1e-15);% complex block threshold for the upper triangular matrix in symmetric Lyapunov equation solver
options_mom_=set_default_option(options_mom_,'lyapunov_fixed_point_tol',1e-10);% convergence criterion used in the fixed point Lyapunov solver
options_mom_=set_default_option(options_mom_,'lyapunov_doubling_tol',1e-16);% convergence criterion used in the doubling algorithm
options_mom_=set_default_option(options_mom_,'sylvester_fp',false);% determines whether to use fixed point algorihtm to solve Sylvester equation (gensylv_fp), faster for large scale models
options_mom_=set_default_option(options_mom_,'sylvester_fixed_point_tol',1e-12);% convergence criterion used in the fixed point Sylvester solver
% mode check plot
options_mom_.mode_check.nolik=false;% we don't do likelihood (also this initializes mode_check substructure)
options_mom_.mode_check=set_default_option(options_mom_.mode_check,'status',false);% plot the target function for values around the computed minimum for each estimated parameter in turn. This is helpful to diagnose problems with the optimizer.
options_mom_.mode_check=set_default_option(options_mom_.mode_check,'neighbourhood_size',.5);% width of the window around the computed minimum to be displayed on the diagnostic plots. This width is expressed in percentage deviation. The Inf value is allowed, and will trigger a plot over the entire domain
options_mom_.mode_check=set_default_option(options_mom_.mode_check,'symmetric_plots',true);% ensure that the check plots are symmetric around the minimum. A value of 0 allows to have asymmetric plots, which can be useful if the minimum is close to a domain boundary, or in conjunction with neighbourhood_size = Inf when the domain is not the entire real line
options_mom_.mode_check=set_default_option(options_mom_.mode_check,'number_of_points',20);% number of points around the minimum where the target function is evaluated (for each parameter)
options_mom_.analytic_derivation_mode=0;% needed by get_perturbation_params_derivs.m, ie use efficient sylvester equation method to compute analytical derivatives as in Ratto & Iskrev (2012)
options_mom_.initialize_estimated_parameters_with_the_prior_mode=0;% needed by set_prior.m
options_mom_.figures=options_.figures;% needed by plot_priors.m
options_mom_.ramsey_policy=false;% needed by evaluate_steady_state
options_mom_.risky_steadystate=false;% needed by resol
options_mom_.jacobian_flag=true;% needed by dynare_solve