Thanks Mark.  That's interesting that it solved the problem you were having--I would definitely call that unexpected behavior. I believe, however, that I am in this situation already--the only non-objective function calculations I have are an abundance reconstruction based on estimated parameters, but I put this in the report section in the interest of speed and efficiency, so it would only run once (right?).<div>
<br></div><div><br></div><div>Chris</div><div><br></div><div><br></div><div><br><div><br></div><div><br></div><div><br>-----------------------------<br>Chris Gast<br><a href="mailto:cmgast@gmail.com">cmgast@gmail.com</a><br>

<br><br><div class="gmail_quote">On Tue, Aug 3, 2010 at 2:48 PM, Mark Maunder <span dir="ltr"><<a href="mailto:mmaunder@iattc.org">mmaunder@iattc.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">









<div lang="EN-US" link="blue" vlink="purple">

<div>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Chris,</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Not sure if this helps, but I was having the same problem with a
model I was running for impact analysis. I had two models running
simultaneously one with the covariates estimated and one with them fixed at
zero to determine the impact of the covariates. Since the second model shared
the parameters of the first model but did not fit to any data, it should not
influence the results. I got the nan, so turned off the second model and it
worked. Then shifted the second model to only get called from the report
section and it still worked. </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">So you might want to place any calculations that are not
required to calculate the objective function in function called from the report
section (and/or called only if in the sd_phase()).</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Hope this helps,</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Mark<br>
<br>
</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Mark Maunder </span></p>

<p class="MsoNormal"><span style="color:#1F497D">Head of the Stock Assessment
Program</span></p>

<p class="MsoNormal"><span style="color:#1F497D">Inter-American  Tropical
Tuna Commission<br>
8604 La Jolla Shores Drive<br>
La Jolla, CA, 92037-1508, USA<br>
  <br>
Tel: (858) 546-7027<br>
Fax: (858) 546-7133<br>
<a href="mailto:mmaunder@iattc.org" target="_blank">mmaunder@iattc.org</a><br>
</span><span style="font-size:10.0pt;color:#1F497D"><a href="http://www.fisheriesstockassessment.com/TikiWiki/tiki-index.php?page=Mark+Maunder" target="_blank">http://www.fisheriesstockassessment.com/TikiWiki/tiki-index.php?page=Mark+Maunder</a></span><span style="font-size:11.0pt;color:#1F497D"></span></p>


<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Visit the AD
Model Builder project at<br>
 <a href="http://admb-project.org/" target="_blank"><span style="color:#810081">http://admb-project.org/</span></a></span><span style="color:#1F497D"></span></p>

<p class="MsoNormal"><span style="color:#1F497D"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">See the
following website for information on fisheries stock assessment</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><a href="http://www.fisheriesstockassessment.com/" target="_blank">http://www.fisheriesstockassessment.com/</a></span><span style="font-size:11.0pt;color:#1F497D"></span></p>


<p class="MsoNormal"><span style="font-size:10.0pt;color:#1F497D"> </span><span style="font-size:11.0pt;color:#1F497D"></span></p>

<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">

<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt">
<a href="mailto:users-bounces@admb-project.org" target="_blank">users-bounces@admb-project.org</a> [mailto:<a href="mailto:users-bounces@admb-project.org" target="_blank">users-bounces@admb-project.org</a>] <b>On
Behalf Of </b>Chris Gast<br>
<b>Sent:</b> Tuesday, August 03, 2010 2:28 PM<br>
<b>To:</b> <a href="mailto:users@admb-project.org" target="_blank">users@admb-project.org</a><br>
<b>Subject:</b> [ADMB Users] Restricting magnitude of random effects
estimates,achieving convergence of RE models</span></p>

</div><div><div></div><div class="h5">

<p class="MsoNormal"> </p>

<p class="MsoNormal">Hello again,</p>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">I'm simulating age-at-harvest data (and accompanying effort
data) and trying to fit a series of 12 models, the most complex of which
contains 3 random effects vectors (all normally-distributed).  I'm varying
the dimensionality of the problem, but my current scenario involves random
effects vectors of dimension ~25.  There are also approximately 15 to 40
fixed parameters (6 of which are means and standard deviations corresponding to
the random effects vectors).</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">A frequent problem I've encountered is that during
estimation, ADMB often elevates the magnitude of random effects estimates such
that the objective function value enters NaN territory, from which it cannot
recover.  I've tried using random_effects_bounded_vectors, but this frequently
leads to optimization failure ("hessian does not appear to be positive
definite"), regardless of the magnitude of the limits I impose.  I've
concocted a penalty function that helps alleviate this problem (most of the
time): Prior to multiplying the log-likelihood by -1, I subtract 10 times the
sum of squared random effects estimates.  In code, this looks like:</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">....previous log-likelihood computations....</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">sumt=0;</p>

</div>

<div>

<p class="MsoNormal">for(i=0;i<nyears;i++){</p>

</div>

<div>

<p class="MsoNormal">sumt=sumt+t[i]*t[i];</p>

</div>

<div>

<p class="MsoNormal">}</p>

</div>

<div>

<p class="MsoNormal">totL -= sumt*10;</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">totL *= -1;</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">where t is defined as a random_effects_vector, sumt is a
dvariable, and totL is the objective function value.  Sometimes a value of
10 works, and sometimes an unreasonable (but equally arbitrary) value of
100,000 is necessary to obtain convergence.  </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Prior to this code, I use the usual</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">totL += -(nyears)*log(csigma)-.5*norm2(t/csigma);</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">or alternatively</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">totL  += -.5*norm2(t);</p>

</div>

<div>

<p class="MsoNormal">tt = csigma*t;</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">with appropriate definitions for the variance parameter
csigma, and t and tt.  I'll also note that each of the random effects
occurs within either an exponential or logistic transformation of some
demographic process.</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Of course, the higher the arbitrary scale factor (10 -
100,000), the greater restriction I am placing on the variance parameter,
csigma.  This is a parameter of some interest for me, and I don't want to
limit its range.</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">I'm willing to accept that some models will fail to fit,
particularly because many models are simplifications of the true simulation
model.  The problem is that to obtain a reasonable number of
"successful" simulations, I need to limit the failure rate of such
models.</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Does anyone have some experience with such a problem that
they'd be willing to share? How have others dealt with problems of this nature?
 Is there some customary penalty function of which I'm unaware?</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Thanks very much,</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal">Chris Gast</p>

</div>

<div>

<p class="MsoNormal">University of Washington</p>

</div>

<div>

<p class="MsoNormal">Quantitative Ecology and Resource Management</p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"> </p>

</div>

<div>

<p class="MsoNormal"><br clear="all">
<br>
-----------------------------<br>
Chris Gast<br>
<a href="mailto:cmgast@gmail.com" target="_blank">cmgast@gmail.com</a></p>

</div>

</div></div></div>

</div>


</blockquote></div><br></div></div>