[ADMB Users] Values greater than 1.e+307 in ADMB?
mike.prager at mhprager.com
Fri May 16 13:20:16 PDT 2014
I agree with Steve Martell that if you can rescale, you should.
What Steve didn't mention -- and forgive me if you know it already -- is
that 1.0e+307 is close to the maximum floating-point number that typical
computers can represent in double precision, which is the precision used
for computation by ADMB (I am pretty sure), R, SAS, and most other
programs. Increasing ADMB precision beyond that is likely to be a Big
Deal, even for the highly talented people who maintain it. While some
compilers do have quad precision, not all do, and a program that needs
quad precision is not likely to be portable.
Steve Martell wrote on 5/16/2014 9:51 AM:
> Can you rescale the problem?
> On May 16, 2014, at 1:14 AM, Louis du Buisson <louis.dubuisson at ird.fr> wrote:
>> Dear ADMB users,
>> Does anybody know how to deal with values greater than 1.e+307 in ADMB?
>> This might seem strange, but let me explain briefly:
>> I am trying to fit a relatively complex model that consists of numerous equations before reaching the final objective function. One of these equations predicts a ‘biomass’ with depth profile at a specific location and time (This is not really biomass and is unitless - call it eqn1.). This is then standardised by dividing biomass at depth by the total biomass of the profile of the water column to give a relative profile (eqn2.). There are a few more steps after this, but the objective function compares this profile (eqn2.) vs the observed data (also standardised).
>> The problem is that eqn1. is an exponential equation that results in values greater than 1.e+307, which become Inf in ADMB, in some of the iterations. This has a knock on effect that throws the objective function out, and the final stats for the parameters estimated give -1.#IND and 1.#QNB. I get no warning message usually at the end of running the model and I get estimates for the parameters, but the stats around the parameter estimates are as mentioned.
>> I have tried numerous approaches to get around the problem:
>> 1. I tested the problem in matlab. I identified the parameters that seem to be causing the trouble in eqn1. by pushing it over Inf. I estimate these parameters using a logit approach because they can only be between 0 and 1, and therefore I used the logit approach to soften the bounds. Before the hard 0 and 1 bounds or anywhere in between this caused problems. Therefore, I need to keep the bounds as open as possible and can’t constrain these further.
>> 2. Adding penalties to prevent the values of eqn 1. going near Inf. This does not work.
>> 3. Mathematically solving the problem: This does not work. I have tried numerous approaches here, but the shape of the profile from eqn2. is changed every time. This shape cannot be changed.
>> So, is there any way of telling ADMB to handle those large numbers without having to change anything else?
>> Many thanks,
>> Users mailing list
>> Users at admb-project.org
> This internet e-mail message, and any files transmitted with it, contains confidential, privileged information that is intended only for the addressee. If you have received this e-mail message in error, please call us at (206) 634-1838 collect if necessary) and ask to speak to the message sender. Nothing in this e-mail or the act of transmitting it, is to be construed as a waiver of any rights or privileges enjoyed by the sender or the International Pacific Halibut Commission pursuant to the International Organizations Immunities Act, 22 U.S.C. Sec. 288 et seq.
> Users mailing list
> Users at admb-project.org
*Michael Prager, Ph.D.*
d/b/a Prager Consulting
Portland, Oregon, USA
mobile (252) 269-7005
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Users