[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