[ADMB Users] very small number math

Richard Methot - NOAA Federal richard.methot at noaa.gov
Mon Mar 11 11:43:26 PDT 2013


Mark,

The approach I take for stable estimation of F rates is to use a
well-defined starting point for the search and to search over a fixed
number of iterations.  In particular, I get the starting point from Pope's
approximation to calculate an exploitation rate (for each fleet relative to
the mid-year available biomass for that fleet); then convert these U's into
an approximation for each F, then tune these F's over a fixed number of
iterations.  This converges well enough with just 4 iterations even with
multiple fleets.  The trick to rapid convergence is to base the updated F
values based on the anticipated total Z after adjusting the Fs, not the
current total Z.  Note that this is in a separable model, so it is looking
for the F that matches catch biomass conditioned on a set of selectivity
parameters.

This approach leads to very steep gradients for other parameters when F is
high and the catch data is considered to be precise, so convergence of the
overall model is slow because the model is constantly maintaining a good
fit to the catch data.  For these cases, I find it useful to switch over
(during BETWEEN_PHASES)  to treating the F's as ADMB model parameters,
rather than as a set of scaling factors to match the catch.  When treating
the F's as parameters, the model tends to wait until the last iterations to
get a good fit to the catches.

Overall, I find that the variance on other model outputs (such as final
population biomass) is rather insensitive to F as coefficient vs. F as
parameter, but haven't tested this in high F situations.

Rick


On Mon, Mar 11, 2013 at 10:35 AM, Fowler, Mark <Mark.Fowler at dfo-mpo.gc.ca>wrote:

> Yes, and I use epsilon for proper parameters. The situation I'm
> addressing is 'non-ADMB' iterative mortality (F) estimates. These are
> just loop functions to estimate F's to create population and mortality
> matrices. Obviously candidates as parameters, but I needed to keep them
> as originally written. I was translating a particular type of VPA
> written in a language called ACON to R and ADMB. Only the reference year
> abundances are estimated with a serious optimizing function in the
> original model (to reasonably estimate catchabilities).  Initially this
> served for truthing until I finished the translations. Hence the issue
> of dealing with extremely small values are the profusion of F loops. And
> I'm doing these in an equivalent manner to your suggestion, I just don't
> use epsilon per se because I like to restrict it to parameters.
>
> I've since been keeping the loops while comparing vulnerabilities to
> local minima across the three programs, so only the reference year
> abundances are optimized directly. Both optim and the ACON optimizer
> (NLLS) clearly work left to right on parameter sets. The optim function
> gets trapped in local minima with high uninformative constants for
> priors on a vector that grades high to low. Starting left-most they go
> up, which is correct relative to numbers to the right but wrong in
> absolute terms. NLLS starts out similarly (run with few iterations you
> get the same answer) but doesn't stay there, so maybe breaks the
> left-to-right rule at some point to explore the range, or has some
> threshold point at which it gives up on the first parameter. So far I'm
> stymied with ADMB. I'm thinking maybe the F estimations confound
> tracking of gradients?
>
>
> >       Mark Fowler
>                 Population Ecology Division
> >       Bedford Inst of Oceanography
> >       Dept Fisheries & Oceans
> >       Dartmouth NS Canada
>                 B2Y 4A2
>                 Tel. (902) 426-3529
>                 Fax (902) 426-9710
>                 Email Mark.Fowler at dfo-mpo.gc.ca
>                 Home Tel. (902) 461-0708
>                 Home Email mark.fowler at ns.sympatico.ca
>
>
> -----Original Message-----
> From: users-bounces at admb-project.org
> [mailto:users-bounces at admb-project.org] On Behalf Of dave fournier
> Sent: March 8, 2013 11:52 AM
> To: users at admb-project.org
> Subject: Re: [ADMB Users] very small number math
>
> This is proabably a good use of phases. In the early phase you add
> something
>
> like
>
>                         x/(eps+y)
>
> and let eps get smaller or 0 in a later phase.
> _______________________________________________
> Users mailing list
> Users at admb-project.org
> http://lists.admb-project.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list
> Users at admb-project.org
> http://lists.admb-project.org/mailman/listinfo/users
>



-- 
*Richard D. Methot Jr. Ph.D.
**NOAA Fisheries - **Science Advisor for Stock Assessments*
*Office: 206-860-3365**
Mobile: 301-787-0241
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.admb-project.org/pipermail/users/attachments/20130311/8b99ee23/attachment.html>


More information about the Users mailing list