[Developers] Control files and basic MCMC
dave fournier
davef at otter-rsch.com
Tue Jan 14 08:43:01 PST 2014
On 14-01-10 12:00 PM, Arni Magnusson wrote:
In terms of setting the value of the parameter using the 4th element of
the vector
something like
void param_init_bounded_number::allocate(const data_vector & v,
const char * _s)
{
int phz=int(v(1));
double lb=v(2);
double ub=v(3);
allocate(lb,ub,phz,_s); // this will read in the value of the
parameter from whatever par file
if (v.indexmax()>3) value(*this)=v(4); // now set the value to
what you want
}
Difficulty is that it will always set the value the parameter to v(4).
What if you want to
start from the values in the par file? Also the order in v has been
changed from
the standard order. Better might be
double lb=v(1);
double ub=v(2);
int phz=int(v(3));
> Happy new year to you, core developers!
>
> As Johnoel mentions, there is a wishlist item #11 in the Reykjavik
> Workshop Report that says:
>
> "Flag/switch class Simplify the use of control and MCMC files, perhaps
> MFCL-like object capability"
>
> This wishlist item is really about two things:
>
> ---
>
> (1) Sometimes we want to make ADMB applications general and
> user-friendly. By user-friendly, I don't mean beginner-friendly, but
> an efficient interface for running a variety of related models without
> recompiling. Fixing parameters and setting bounds, phases, and initial
> values, and various model-specific settings. This is sometimes done
> inside the main data file and sometimes in a separate control file.
>
> Take http://www.hafro.is/~arnima/pella/pella.tpl for example. The data
> and parameter sections are rather convoluted, in order to provide a
> PLUI (phase,lower,upper,init) interface for controlling the parameter
> estimation.
>
> Of course the exact implementation will vary from model to model. But
> writing the PLUI code feels unnecessarily clunky and repetitive. The
> code for switching to the control file is rather ugly, and and so is
> the code to set the parameter phases, bounds and inits. Perhaps these
> tasks are so common and so useful that we can provide some new
> functionality to make them easier for the ADMB programmer.
>
> This example is a tiny model with very few parameters. The importance
> of this wishlist item becomes greater with dozens of parameters.
>
> ---
>
> (2) MCMC is an important feature of ADMB. I like telling potential and
> new users that it's a piece of cake to run MCMC for any ADMB model:
> you basically just type mymodel -mcmc.
>
> Well, sort of.
>
> The http://www.hafro.is/~arnima/pella/pella.tpl example shows a common
> approach. First we have if(mceval_phase()) write_mcmc(); and later we
> have FUNCTION write_mcmc, with a long workaround to put a header for
> each column in the MCMC output.
>
> Wouldn't it be cool if the user could actually type mymodel -mcmc
> without all that stuff, and get a text file with column headers, ready
> to plot. For the most advanced users, the PSV file is just that, but
> for the majority of users that's not a very intuitive or accessible
> format. Again, a task that is so common and so useful could be made
> easier to use.
>
> A related idea is an MCMC_SECTION with a stream object that's ready to
> use, mcmc<<"blah"<<..., much like the report stream object in the
> REPORT_SECTION.
>
> ---
>
> As you can tell, I'm interested in both of these wishlist items. They
> may not be top priority, but potential areas where ADMB could be a bit
> smoother around the edges. We can revisit them at the next workshop,
> to decide whether and how some of this could be done. We did not look
> at this at the Reykjavik workshop, but included it in the report as a
> reminder of a discussion item after the workshop.
>
> All the best,
>
> Arni
>
>
>
> On Fri, 10 Jan 2014, Johnoel Ancheta wrote:
>
>> Hi all,
>>
>> Happy New Years.
>>
>> I looked over the workshop report and noticed a priority task
>> "Flag/Switch class to simplify the use of control and MCMC files..."
>>
>> It says someone is working on this, but did not say who?
>>
>> Johnoel
>>
> _______________________________________________
> Developers mailing list
> Developers at admb-project.org
> http://lists.admb-project.org/mailman/listinfo/developers
>
More information about the Developers
mailing list