# [ADMB Users] The importance of parameterizing a nonlinear model well

Mike Prager mike.prager at mhprager.com
Mon Aug 19 17:25:38 PDT 2013

```Thanks, Dave; as you obviously know, this is a common issue, even with
simple models. The VBGF include an unobserved (asymptotic) length and an
unobserved age (t0).  Production models, before smart people started
using Fmsy and MSY as leading parameters, were parameterized with the
unit growth rate at B=0 and the asymptotic population size, neither
directly observable.  I think it comes down to this:  it makes sense
when thinking about models to put them in terms of asymptotic
quantities, but that doesn't make sense when fitting them!

dave fournier wrote on 8/19/2013 4:48 PM:
> I came across the following  simple 3 parameter logistics problem
> describing
> how difficult it was to fit a small "weeds" data set.
>
> https://groups.nceas.ucsb.edu/non-linear-modeling/projects/weeds/WRITEUP/weeds.pdf
>
>
> there are 12 data points
>
> t   weeds
> 1 5.308
> 2 7.24
> 3 9.638
> 4 12.866
> 5 17.069
> 6 23.192
> 7 31.443
> 8 38.558
> 9 50.156
> 10 62.948
> 11 75.995
> 12 91.972
>
> The model to be fit is
>
>      y = b_1/(1+b_2*exp(-b_3*t))
>
> We are told several times how difficult this data set is to fit.
>
> In fact is is a trivial data set to fit as I shall show.  The
> problem is that the parametrization used is a very poor one.
>
> Consider the parameter b_1.  This is the number of weeds at t=infinity.
>
> It appears to be somewhat greater than 91, but how much?  It is not
> really obvious.
> the parameter b_2 is even less intuitive.
>
> we shall replace b_1 and b_2 with two parameters whose value is almost
> obvious,
> namely the number of weeds at time t_1=1, and t_n=12.  Call thes
> parameter y_1 and y_n.
>
> clearly   y_1 is close to 5.308 and y_n is close to 91.9
>
> Given values for y_1, y_2, and b_3  it is a simple matter to solve for
> b_2 and b_1.
>
> The code in the tpl file is
>
>   b3=exp(logb3);
>   dvariable gamma1=exp(-b3*t(1));
>   dvariable gamman=exp(-b3*t(noObs));
>   b2=(yn-y1)/(y1*gamma1-yn*gamman);  // solve for b2
>   b1=y1*(1.0+b2*gamma1);   // solve for b1
>
> For both models the sum of squares is   rss 2.58728
>
> Now lets make the data a bit more challenging.  we change the 12'th
> data point to
> 110.
>
> For Ander's verion the sum of squares is    rss 60.6799
>
> while for my version  it is rss 55.8948
>
> Now change the 12'th data point to 125.
>
> For Ander's version the sum of squares is    rss 237.054
> and for mine  rss 133.582
>
> So maybe we should think more about how to parameterize these models.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Users mailing list

--
*Michael Prager, Ph.D.*
d/b/a Prager Consulting
Portland, Oregon, USA
http://www.mhprager.com/
mobile (252) 269-7005
-------------- next part --------------
An HTML attachment was scrubbed...