Implement interface for posterior sampling methods
Related to #1174 and #1065 (closed)
I would propose to use this occasion to further clean up the options_-structure and create a field options_.posterior_sampler_options that stores as subfields the various options.
The preprocessor should have an option posterior_sampling_method that accepts a quoted string that can be slice, random_walk_metropolis_hastings, independent_metropolis_hastings or tailored_random_block_metropolis_hastings
It should map into options_.posterior_sampler_options.posterior_sampling_method with default
random_walk_metropolis_hastings, which replaces the current options_.posterior_sampling_method
In addition:
- We need a subfields
options_.posterior_sampler_options.tarb,options_.posterior_sampler_options.rwmh,options_.posterior_sampler_options.slice, andoptions_.posterior_sampler_options.imhthat store the default options for the respective sampler as we already do for different mode_computes. - We need the preprocessor to accept name/value pairs like in the already existing
optim-option in the form ofposterior_sampler_options = (NAME, VALUE,...). It should map into a stringoptions_.posterior_sampler_options.sampling_opt, which can then be read out usingread_key_value_stringas we already do indynare_minimize_objective. - The already existing but undocumented options
options_.proposal_distributionandoptions_.student_degrees_of_freedomshould now become sampler-specific subfields of the fields introduced in 1.