[ADMB Users] The benefits of ADMB

Laurie Kell Laurie.Kell at iccat.int
Tue Feb 23 11:16:05 PST 2010


I think Arni´s idea is worth puruing and for a test dataset I recommend 
that used in the Polacheck at al 1993 paper, this has data sets for rock 
lobster, Namibian hake and albacore and I already have it in a file, I 
can also generate data sets with known parameters for testing,

It would also be useful to compare the various Bayesian options

Laurie

Arni Magnusson wrote:
> Laurie raised a few points besides DLL compiling:
>
>> ... a worked example of an ADMB/R package with a discussion of 
>> benefits would be useful eg. The benefits of using ADMB rather than R 
>> non-linear solvers (e.g. optim/minpack.lm), the benefits of using R 
>> for graphics, data-bases, and linking with other tools. Then a 
>> discussion of object orientated programming in R, i.e. S4 classes and 
>> FLR.
>>
>> I think a candidate for this example could be Pella-T example.
>
> The benefits of using ADMB rather than R nonlinear solvers like 
> optim/minpack.lm are mainly speed, reliability, and built-in features 
> like random effects and MCMC.
>
> Benchmark results like 
> http://otter-rsch.ca/SchnuteRichardsOlsen1998.pdf, 
> http://otter-rsch.com/admbre/examples/logistic/logistic.html, and 
> http://otter-rsch.com/admbre/examples/sdv/sdv.html indicate that ADMB 
> is faster than Gauss, Matlab, S-Plus, and BUGS. I agree with Laurie, 
> that given the current variety of nonlinear solvers available in R, it 
> would be interesting to benchmark them against ADMB using a 
> Pella-Tomlinson model.
>
> If you want random effects and/or MCMC inside R, the functions are 
> limiting compared to ADMB. R packages like nlme, lme4, MCMCglmm, 
> MCMCpack, and mcmc are practical for many things, but can only express 
> a small subset of the models that can be built with ADMB. I have found 
> this especially true for models that are time-structured but not basic 
> time-series models.
>
> R is excellent for many things, but there are some tasks that are 
> better performed by more specialized software, like databases or 
> spreadsheets, or a programming language with particularly strong 
> support for specific tasks, like ADMB and Perl. Even expert R 
> programmers recognize its limitations, and delegate some tasks to 
> other languages, including C/C++/Fortran to crunch numbers, and Perl 
> to build packages.
>
> If I was to do a Pella-Tomlinson assessment, I would probably start 
> with a quick Excel prototype, to get some initial parameter values and 
> to verify later that I get the same numbers in ADMB. Then I would 
> write the model in ADMB (probably borrow from the existing pella-t.tpl 
> example), diagnose and plot the model fit in R, run ADMB -mcmc, 
> diagnose and plot the MCMC results in R, evaluate possible 
> transformations and reparametrizations, and then plot and summarize 
> the final results in R. Even though R is my preferred programming 
> language, I would use Excel and ADMB for the things they do better. 
> There are many other candidate tools, but these are the ones I would use.
>
> The benefits of ADMB become more important when dealing with models 
> with hundreds of parameters and very large datasets.
>
> I have only used optim() and other nonlinear solvers in R to satisfy 
> my curiosity, never for work. The approach is very similar to ADMB: 
> prepare data objects, define parameters, make predictions, and 
> evaluate the objective function. Even the code will look quite 
> similar, but in my opinion I have a more reliable and versatile tool 
> if I implement a model in ADMB.
>
> Of course, it would be nice to back up this opinion with a 
> Pella-Tomlinson benchmark. To test the "reliable" part, we would need 
> a difficult dataset with local minima. Does anyone know of a suitable 
> dataset?
>
> Arni
>
> P.S. I'm looking forward to trying out the FLR 
> (http://r-forge.r-project.org/R/?group_id=318) way to do 
> Pella-Tomlinson and other assessment models. The FLash package is 
> particularly interesting to ADMB users, as it implements automatic 
> differentiation for other FLR packages using ADOL-C, although it 
> appears not quite ready for testing. FLR is an ambitious project, and 
> even if the S4 classes take some of the playfulness out of R, they're 
> probably the best approach to manage a project of this scope.
>
>




More information about the Users mailing list