<div dir="ltr"><div>Hi Carlos, <br><br></div>Just a clarification on the fix. If it's the negative log-likelihood, it should be<br><div><br><div><span style="color:rgb(0,0,0);font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)">nll += -k(i)*log(lambda(i))+lambda(i)+gammln(k(i)+1.);</span><span style="color:rgb(0,0,0);font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)"><br><br></span></div><div>The suggested <br><br><div><span style="color:rgb(0,0,0);font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)">nll -= -k(i)*</span><a href="http://admb-project.org/documentation/api/d3arr2a_8cpp.html#a921f553085254834ebbe598d5e9c0341" title="Description not yet available." style="font-family:monospace,fixed;font-size:9pt;line-height:15px;color:rgb(70,101,162);text-decoration:none" target="_blank">log</a><span style="color:rgb(0,0,0);font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)">(lambda(i))+lambda(i)+</span><a href="http://admb-project.org/documentation/api/group__gammafunc.html#gae01374ddda83bc2216ba9df9c76d9995" title="Log gamma function." style="font-family:monospace,fixed;font-size:9pt;line-height:15px;color:rgb(70,101,162);text-decoration:none" target="_blank">gammln</a><span style="color:rgb(0,0,0);font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)">(k(i)+1.);</span></div><br>returns the log-likelihood.<br></div><br></div><div>Cheers,<br>Coilin<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 1, 2014 at 7:20 PM, Steve Martell <span dir="ltr"><<a href="mailto:SteveM@iphc.int" target="_blank">SteveM@iphc.int</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word">
Hola Carlos,
<div><br>
</div>
<div>Mucho gracias por la correccion.  I will update the source code.</div>
<div><br>
</div>
<div>Steve<br>
<div><div><div class="h5">
<div>On Oct 1, 2014, at 10:59 AM, Carlos Martorell <<a href="mailto:martorell@ciencias.unam.mx" target="_blank">martorell@ciencias.unam.mx</a>> wrote:</div>
<br>
</div></div><blockquote type="cite"><div><div class="h5">
<div dir="ltr">Hi,
<div>After checking the output of an ADMB run I believe that I have found a problem in (at least) a couple of the functions used to calculate the negative log-likelihoods in dpois and dnbinom functions in the statsLib.h library. When a vector of parameters
 (lambdas in the Poisson case) is provided, the code for the log-likelihood is</div>
<div><br>
</div>
<div>
<pre style="font-family:monospace,fixed;font-size:9pt;border:1px solid rgb(214,229,196);padding:4px 6px;margin:4px 8px 4px 2px;overflow:auto;word-wrap:break-word;line-height:15px;background-color:rgb(252,253,251)">00067 <a href="http://admb-project.org/documentation/api/classdvariable.html" title="Fundamental data type for reverse mode automatic differentiation." style="color:rgb(70,101,162);text-decoration:none" target="_blank">dvariable</a> <a href="http://admb-project.org/documentation/api/dpois_8cpp.html#a64d2001c40c90f8295bd86ea88ff6979" style="color:rgb(70,101,162);text-decoration:none" target="_blank">dpois</a>(<span style="color:rgb(0,128,0)">const</span> <a href="http://admb-project.org/documentation/api/classdvector.html" title="Vector of double precision numbers." style="color:rgb(70,101,162);text-decoration:none" target="_blank">dvector</a>& k, <span style="color:rgb(0,128,0)">const</span> <a href="http://admb-project.org/documentation/api/classdvar__vector.html" title="Description not yet available." style="color:rgb(70,101,162);text-decoration:none" target="_blank">dvar_vector</a>& lambda)
<a name="148cd2961b46da2d_l00068" style="color:rgb(103,140,61)"></a>00068 {
<a name="148cd2961b46da2d_l00069" style="color:rgb(103,140,61)"></a>00069   <a href="http://admb-project.org/documentation/api/group__RA.html#ga9616d0c80845da3942a30acbb1dbbfa9" title="Increments gradient_structure::RETURN_ARRAYS_PTR." style="color:rgb(70,101,162);text-decoration:none" target="_blank">RETURN_ARRAYS_INCREMENT</a>();
<a name="148cd2961b46da2d_l00070" style="color:rgb(103,140,61)"></a>00070   <span style="color:rgb(96,64,32)">int</span> i;
<a name="148cd2961b46da2d_l00071" style="color:rgb(103,140,61)"></a>00071   <span style="color:rgb(96,64,32)">int</span> n = <a href="http://admb-project.org/documentation/api/dsize_8cpp.html#aa42ba747b253f027435b478a7d747f52" title="Description not yet available." style="color:rgb(70,101,162);text-decoration:none" target="_blank">size_count</a>(k);
<a name="148cd2961b46da2d_l00072" style="color:rgb(103,140,61)"></a>00072   <a href="http://admb-project.org/documentation/api/classdvariable.html" title="Fundamental data type for reverse mode automatic differentiation." style="color:rgb(70,101,162);text-decoration:none" target="_blank">dvariable</a> nll=0;
<a name="148cd2961b46da2d_l00073" style="color:rgb(103,140,61)"></a>00073   <span style="color:rgb(224,128,0)">for</span>(i = 1; i <= n; i++)
<a name="148cd2961b46da2d_l00074" style="color:rgb(103,140,61)"></a>00074   {
<a name="148cd2961b46da2d_l00075" style="color:rgb(103,140,61)"></a>00075     nll -= k(i)*<a href="http://admb-project.org/documentation/api/d3arr2a_8cpp.html#a921f553085254834ebbe598d5e9c0341" title="Description not yet available." style="color:rgb(70,101,162);text-decoration:none" target="_blank">log</a>(lambda(i))+lambda(i)+<a href="http://admb-project.org/documentation/api/group__gammafunc.html#gae01374ddda83bc2216ba9df9c76d9995" title="Log gamma function." style="color:rgb(70,101,162);text-decoration:none" target="_blank">gammln</a>(k(i)+1.);
<a name="148cd2961b46da2d_l00076" style="color:rgb(103,140,61)"></a>00076   }
<a name="148cd2961b46da2d_l00077" style="color:rgb(103,140,61)"></a>00077   <a href="http://admb-project.org/documentation/api/group__RA.html#ga780ea9f1c9038a5116c28140166d6e7e" title="Decrements gradient_structure::RETURN_ARRAYS_PTR." style="color:rgb(70,101,162);text-decoration:none" target="_blank">RETURN_ARRAYS_DECREMENT</a>();
<a name="148cd2961b46da2d_l00078" style="color:rgb(103,140,61)"></a>00078   <span style="color:rgb(224,128,0)">return</span> nll;
<a name="148cd2961b46da2d_l00079" style="color:rgb(103,140,61)"></a>00079 }</pre>
<div>I believe that the correct code for line 00075 should be</div>
<div> </div>
<div><span style="font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)">nll -= -k(i)*</span><a href="http://admb-project.org/documentation/api/d3arr2a_8cpp.html#a921f553085254834ebbe598d5e9c0341" title="Description not yet available." style="font-family:monospace,fixed;font-size:9pt;line-height:15px;color:rgb(70,101,162);text-decoration:none" target="_blank">log</a><span style="font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)">(lambda(i))+lambda(i)+</span><a href="http://admb-project.org/documentation/api/group__gammafunc.html#gae01374ddda83bc2216ba9df9c76d9995" title="Log gamma function." style="font-family:monospace,fixed;font-size:9pt;line-height:15px;color:rgb(70,101,162);text-decoration:none" target="_blank">gammln</a><span style="font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)">(k(i)+1.);</span></div>
<div><span style="font-family:monospace,fixed;font-size:9pt;line-height:15px;background-color:rgb(252,253,251)"><br>
</span></div>
<div><font face="monospace, fixed"><span style="font-size:11.8181819915771px;line-height:15px;background-color:rgb(252,253,251)">This is evident in the same function when lambda is constant, e.g., </span></font></div>
<div><font face="monospace, fixed"><span style="font-size:11.8181819915771px;line-height:15px;background-color:rgb(252,253,251)"><br>
</span></font></div>
<div>
<pre style="font-family:monospace,fixed;font-size:9pt;border:1px solid rgb(214,229,196);padding:4px 6px;margin:4px 8px 4px 2px;overflow:auto;word-wrap:break-word;line-height:15px;background-color:rgb(252,253,251)"><a href="http://admb-project.org/documentation/api/statsLib_8h.html#a64d2001c40c90f8295bd86ea88ff6979" style="color:rgb(70,101,162);text-decoration:none" target="_blank">00035</a> <a href="http://admb-project.org/documentation/api/classdvariable.html" title="Fundamental data type for reverse mode automatic differentiation." style="color:rgb(70,101,162);text-decoration:none" target="_blank">dvariable</a> <a href="http://admb-project.org/documentation/api/dpois_8cpp.html#a64d2001c40c90f8295bd86ea88ff6979" style="color:rgb(70,101,162);text-decoration:none" target="_blank">dpois</a>(<span style="color:rgb(0,128,0)">const</span> <span style="color:rgb(96,64,32)">double</span>& k, <span style="color:rgb(0,128,0)">const</span> <a href="http://admb-project.org/documentation/api/classprevariable.html" title="Base class for dvariable." style="color:rgb(70,101,162);text-decoration:none" target="_blank">prevariable</a>& lambda)
<a name="148cd2961b46da2d_l00036" style="color:rgb(103,140,61)"></a>00036 {
<a name="148cd2961b46da2d_l00037" style="color:rgb(103,140,61)"></a>00037   <a href="http://admb-project.org/documentation/api/group__RA.html#ga9616d0c80845da3942a30acbb1dbbfa9" title="Increments gradient_structure::RETURN_ARRAYS_PTR." style="color:rgb(70,101,162);text-decoration:none" target="_blank">RETURN_ARRAYS_INCREMENT</a>();
<a name="148cd2961b46da2d_l00038" style="color:rgb(103,140,61)"></a>00038   <a href="http://admb-project.org/documentation/api/classdvariable.html" title="Fundamental data type for reverse mode automatic differentiation." style="color:rgb(70,101,162);text-decoration:none" target="_blank">dvariable</a> tmp = -k*<a href="http://admb-project.org/documentation/api/d3arr2a_8cpp.html#a921f553085254834ebbe598d5e9c0341" title="Description not yet available." style="color:rgb(70,101,162);text-decoration:none" target="_blank">log</a>(lambda)+lambda + <a href="http://admb-project.org/documentation/api/group__gammafunc.html#gae01374ddda83bc2216ba9df9c76d9995" title="Log gamma function." style="color:rgb(70,101,162);text-decoration:none" target="_blank">gammln</a>(k+1.);
<a name="148cd2961b46da2d_l00039" style="color:rgb(103,140,61)"></a>00039   <a href="http://admb-project.org/documentation/api/group__RA.html#ga780ea9f1c9038a5116c28140166d6e7e" title="Decrements gradient_structure::RETURN_ARRAYS_PTR." style="color:rgb(70,101,162);text-decoration:none" target="_blank">RETURN_ARRAYS_DECREMENT</a>();
<a name="148cd2961b46da2d_l00040" style="color:rgb(103,140,61)"></a>00040   <span style="color:rgb(224,128,0)">return</span> tmp;
<a name="148cd2961b46da2d_l00041" style="color:rgb(103,140,61)"></a>00041 }</pre>
</div>
<div>I found these codes both in the ADMB version that I downloaded and in the package documentation (<a href="http://admb-project.org/documentation/api/dpois_8cpp_source.html" target="_blank">http://admb-project.org/documentation/api/dpois_8cpp_source.html</a>). After making
 the correction that I propose above and re-running ADMB, the program reports the correct log-likelihoods. The same problem can be found in dnbinom and maybe in other functions.</div>
<div>Given that the functions provided for the estimation of negative log-likelihoods are widely used, it would be important to check that their outputs are correct.</div>
<div>Best,</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
-- <br>
<span style="font-family:Arial,Helvetica,sans-serif;font-size:13px">      I think [the island's] unusually sterile character gives it a grandeur <br>
      which more vegetation might have spoiled.       </span>
<div><font face="Arial, Helvetica, sans-serif">                                                   ----Ch. Darwin. El diario del Beagle       </font><br>
<font face="Arial, Helvetica, sans-serif"> </font><br>
<font face="Arial, Helvetica, sans-serif">Dr. Carlos Martorell </font><br>
<font face="Arial, Helvetica, sans-serif"> </font><br>
<font face="Arial, Helvetica, sans-serif">Departamento de Ecología y Recursos Naturales </font><br>
<font face="Arial, Helvetica, sans-serif">Facultad de Ciencias-UNAM </font><br>
<font face="Arial, Helvetica, sans-serif">Circuito Exterior S/N, Cd. Universitaria </font><br>
<font face="Arial, Helvetica, sans-serif">04510 México D.F. </font><br>
<font face="Arial, Helvetica, sans-serif">Tel.  (55) 5622 4835 Fax (55) 5622 4828 </font><br>
<font face="Arial, Helvetica, sans-serif" color="#0000ff"><a href="http://www.fciencias.unam.mx/investigacion/grupos/biologia/ecologia/ambientesl" target="_blank">http://www.fciencias.unam.mx/investigacion/grupos/biologia/ecologia/ambientesl</a></font></div>
</div>
</div></div></div>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@admb-project.org" target="_blank">Users@admb-project.org</a><br>
<a href="http://lists.admb-project.org/mailman/listinfo/users" target="_blank">http://lists.admb-project.org/mailman/listinfo/users</a><br>
</blockquote>
</div>
<br>
</div>
<br>
<hr>
<font size="1" face="Arial" color="Gray"><br>
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 <a href="tel:%28206%29%20634-1838" value="+12066341838" target="_blank">(206) 634-1838</a> 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.<br>
</font>
</div>

<br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@admb-project.org">Users@admb-project.org</a><br>
<a href="http://lists.admb-project.org/mailman/listinfo/users" target="_blank">http://lists.admb-project.org/mailman/listinfo/users</a><br>
<br></blockquote></div><br></div>