[Developers] Control files and basic MCMC
arnima at hafro.is
Fri Jan 10 12:00:39 PST 2014
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
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
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,
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?
More information about the Developers