<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Profile-Likelihood-Based Confidence Intervals in SAS/IML Software and Matrix Computations</title>
    <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Profile-Likelihood-Based-Confidence-Intervals/m-p/46958#M283</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;in the following link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/viewer.htm#nonlinearoptexpls_sect19.htm"&gt;http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/viewer.htm#nonlinearoptexpls_sect19.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I find an example for conficence intervals but it's based on 2 equations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead I have 3 equations to calculate....i have create a code for this case but the results are bad.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think that the problem is "delt" &lt;SPAN class="hps"&gt;and its calculation....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hps"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hps"&gt;&lt;SPAN class="short_text" id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;I hope&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;someone can&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;help me.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro conf_interval_lnorm_3_par;&lt;/P&gt;&lt;P&gt;%let mu_init=%sysevalf(&amp;amp;param1/&amp;amp;scale_mu);&lt;BR /&gt;%let sigma_init=%sysevalf(&amp;amp;param2/&amp;amp;scale_sigma);&lt;BR /&gt;%let gamma_init=%sysevalf(&amp;amp;param3/&amp;amp;scale_gamma);&lt;BR /&gt;%let bound_gamma=%sysevalf(&amp;amp;soglia/&amp;amp;scale_gamma);&lt;/P&gt;&lt;P&gt;proc iml;&lt;BR /&gt;&amp;nbsp; use importi_netti_&amp;amp;distribuzione.; &lt;BR /&gt;&amp;nbsp; read all var {x} into ing;&lt;BR /&gt;&amp;nbsp; ingresso=t(ing);/* ingresso=row vector*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; xopt={&amp;amp;mu_init &amp;amp;sigma_init &amp;amp;gamma_init}; /* inizializes vectors */&lt;BR /&gt;&amp;nbsp; xub={0,0,0};&lt;BR /&gt;&amp;nbsp; xlb={0,0,0};&lt;BR /&gt;&amp;nbsp; scala={&amp;amp;scale_mu 0 0 ,0 &amp;amp;scale_sigma 0,0 0 &amp;amp;scale_gamma};&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; start funzione(x) global(ingresso);/*function loglikelihood*/ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p=ncol(ingresso);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if x[2] &amp;gt; 0 &amp;amp; x[3]&amp;lt; &amp;amp;bound_gamma &amp;amp; CDF('LOGNORMAL',&amp;amp;soglia-(x[3]*&amp;amp;scale_gamma),x[1]*&amp;amp;scale_mu,x[2]*&amp;amp;scale_sigma) ^= 1 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w=0; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w=w-log((ingresso&lt;I&gt;-(x[3]*&amp;amp;scale_gamma))*x[2]*&amp;amp;scale_sigma*sqrt(2*CONSTANT('PI'))) - &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.5*((log(ingresso&lt;I&gt;-(x[3]*&amp;amp;scale_gamma))-(x[1]*&amp;amp;scale_mu))/(x[2]*&amp;amp;scale_sigma))**2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loglik=w-p*log(1-CDF('LOGNORMAL',&amp;amp;soglia-(x[3]*&amp;amp;scale_gamma),x[1]*&amp;amp;scale_mu,x[2]*&amp;amp;scale_sigma))-0.3*((x[2]*&amp;amp;scale_sigma)**2);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loglik=.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f=loglik;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (f);&lt;BR /&gt;&amp;nbsp; finish funzione;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; start derivate(x) global(ingresso); /* partial derivates loglikelihood */ &lt;BR /&gt;&amp;nbsp;&amp;nbsp; g = j(1,3,0.); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p=ncol(ingresso);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w=0;v=0;z=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to p; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w=w+(log(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma)-x[1]*&amp;amp;scale_mu)/(x[2]*&amp;amp;scale_sigma)**2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v=v+((log(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma)-x[1]*&amp;amp;scale_mu)**2)/(x[2]*&amp;amp;scale_sigma)**3-1/(x[2]*&amp;amp;scale_sigma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z=z+(log(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma)-x[1]*&amp;amp;scale_mu)/(x[2]*&amp;amp;scale_sigma)/((x[2]*&amp;amp;scale_sigma)*(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma))-1/(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T=(log(&amp;amp;soglia-x[3]*&amp;amp;scale_gamma)-x[1]*&amp;amp;scale_mu)/(x[2]*&amp;amp;scale_sigma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLN=cdf('lognormal',&amp;amp;soglia-x[3]*&amp;amp;scale_gamma,x[1]*&amp;amp;scale_mu,x[2]*&amp;amp;scale_sigma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g[1]=w-p*(1/(x[2]*&amp;amp;scale_sigma))*pdf('normal',T)/(1-FLN);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g[2]=v+p*pdf('normal',T)/(1-FLN)*(-T/(x[2]*&amp;amp;scale_sigma))-0.6*(x[2]*&amp;amp;scale_sigma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g[3]=z-p*pdf('normal',T)/(1-FLN)/((x[2]*&amp;amp;scale_sigma)*(&amp;amp;soglia-x[3]*&amp;amp;scale_gamma));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(g);&lt;BR /&gt;&amp;nbsp; finish derivate;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; start f_plln3(x) global(ingresso,ipar,lstar); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; like = funzione(x); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grad = derivate(x);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grad[ipar] = like - lstar;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(grad`); &lt;BR /&gt;&amp;nbsp; finish f_plln3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; h={&amp;amp;h11 &amp;amp;h12 &amp;amp;h13, &amp;amp;h12 &amp;amp;h22 &amp;amp;h23, &amp;amp;h13 &amp;amp;h23 &amp;amp;h33};&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* quantile of chi**2 distribution */&lt;BR /&gt;&amp;nbsp; fopt=-&amp;amp;loglikelihood;&lt;BR /&gt;&amp;nbsp; prob=0.32;&lt;BR /&gt;&amp;nbsp; chqua = cinv(1-prob,1); &lt;BR /&gt;&amp;nbsp; lstar = fopt - .5 * chqua;&lt;BR /&gt;&amp;nbsp; optn = {3 0};&lt;/P&gt;&lt;P&gt;&amp;nbsp; con={. 1.e-6 1.e-6 . .,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . . &amp;amp;bound_gamma . .};&lt;/P&gt;&lt;P&gt;&amp;nbsp; tc=j(1,12,.);&lt;BR /&gt;&amp;nbsp; tc[1]=100000;&lt;BR /&gt;&amp;nbsp; tc[2]=100000;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ddd=j(2,2,.);&lt;BR /&gt;&amp;nbsp; v_col=j(2,1,.);&lt;/P&gt;&lt;P&gt;&amp;nbsp; do ipar = 1 to 3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ipar=1 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = 2; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jnd = 3; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ipar=2 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jnd = 3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ipar=3 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jnd = 2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print ipar ind jnd;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a=h[ind,ind];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b=h[jnd,ind];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c=h[jnd,jnd];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d=h[ipar,ind];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e=h[ipar,jnd];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f=h[ipar,ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddd[1,1]=a;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddd[1,2]=b;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddd[2,1]=b;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddd[2,2]=c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_col[1,1]=d;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_col[2,1]=e;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delt = - inv(ddd) * v_col;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alfa = -( f + delt` * v_col);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if alfa &amp;gt; 0 then alfa = .5 * sqrt(chqua / alfa); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else do; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Bad alpha"; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alfa = .1 * xopt[ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print alfa;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ipar=1 then delt = 1 // delt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ipar=2 then do; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delt = 1//delt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delt[1]=delt[2];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delt[2]=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ipar=3 then delt = delt // 1;&lt;/P&gt;&lt;P&gt;/* upper bound */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x0 = (xopt + alfa * delt);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con2 = con; con2[1,ipar] = xopt[ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL NLPLM(rc,xresu,"f_plln3",x0,optn,con2,tc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fu = f_plln3(xresu);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; su = ssq(fu);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if xresu[ipar]=xopt[ipar] | su &amp;gt;= 1 then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xub[ipar]=.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xub[ipar]= xresu[ipar]; &lt;/P&gt;&lt;P&gt;/* lower bound */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x0 = (xopt - alfa * delt); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con2= con; con2[2,ipar] = xopt[ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL NLPLM(rc,xresl,"f_plln3",x0,optn,con2,tc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fl = f_plln3(xresl);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sl = ssq(fl);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if xresl[ipar]=xopt[ipar] | sl &amp;gt;= 1 then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlb[ipar]=.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlb[ipar]= xresl[ipar];&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; xopt[ipar]=xopt[ipar]*scala[ipar,ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; xub[ipar]=xub[ipar]*scala[ipar,ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; xlb[ipar]=xlb[ipar]*scala[ipar,ipar];&lt;/P&gt;&lt;P&gt;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Output */&lt;BR /&gt;&amp;nbsp; if xlb[1]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_inf_param1",char(xlb[1]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xlb[2]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_inf_param2",char(xlb[2]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xlb[3]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_inf_param3",char(xlb[3]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xub[1]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_sup_param1",char(xub[1]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xub[2]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_sup_param2",char(xub[2]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xub[3]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_sup_param3",char(xub[3]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;s=t(xopt);&lt;BR /&gt;&amp;nbsp; print "Profile-Likelihood Confidence Interval"; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print xlb s xub;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 28 Mar 2012 13:57:21 GMT</pubDate>
    <dc:creator>trevi83</dc:creator>
    <dc:date>2012-03-28T13:57:21Z</dc:date>
    <item>
      <title>Profile-Likelihood-Based Confidence Intervals</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Profile-Likelihood-Based-Confidence-Intervals/m-p/46958#M283</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;in the following link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/viewer.htm#nonlinearoptexpls_sect19.htm"&gt;http://support.sas.com/documentation/cdl/en/imlug/59656/HTML/default/viewer.htm#nonlinearoptexpls_sect19.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I find an example for conficence intervals but it's based on 2 equations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead I have 3 equations to calculate....i have create a code for this case but the results are bad.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think that the problem is "delt" &lt;SPAN class="hps"&gt;and its calculation....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hps"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hps"&gt;&lt;SPAN class="short_text" id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;I hope&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;someone can&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;help me.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro conf_interval_lnorm_3_par;&lt;/P&gt;&lt;P&gt;%let mu_init=%sysevalf(&amp;amp;param1/&amp;amp;scale_mu);&lt;BR /&gt;%let sigma_init=%sysevalf(&amp;amp;param2/&amp;amp;scale_sigma);&lt;BR /&gt;%let gamma_init=%sysevalf(&amp;amp;param3/&amp;amp;scale_gamma);&lt;BR /&gt;%let bound_gamma=%sysevalf(&amp;amp;soglia/&amp;amp;scale_gamma);&lt;/P&gt;&lt;P&gt;proc iml;&lt;BR /&gt;&amp;nbsp; use importi_netti_&amp;amp;distribuzione.; &lt;BR /&gt;&amp;nbsp; read all var {x} into ing;&lt;BR /&gt;&amp;nbsp; ingresso=t(ing);/* ingresso=row vector*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; xopt={&amp;amp;mu_init &amp;amp;sigma_init &amp;amp;gamma_init}; /* inizializes vectors */&lt;BR /&gt;&amp;nbsp; xub={0,0,0};&lt;BR /&gt;&amp;nbsp; xlb={0,0,0};&lt;BR /&gt;&amp;nbsp; scala={&amp;amp;scale_mu 0 0 ,0 &amp;amp;scale_sigma 0,0 0 &amp;amp;scale_gamma};&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; start funzione(x) global(ingresso);/*function loglikelihood*/ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p=ncol(ingresso);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if x[2] &amp;gt; 0 &amp;amp; x[3]&amp;lt; &amp;amp;bound_gamma &amp;amp; CDF('LOGNORMAL',&amp;amp;soglia-(x[3]*&amp;amp;scale_gamma),x[1]*&amp;amp;scale_mu,x[2]*&amp;amp;scale_sigma) ^= 1 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w=0; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to p;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w=w-log((ingresso&lt;I&gt;-(x[3]*&amp;amp;scale_gamma))*x[2]*&amp;amp;scale_sigma*sqrt(2*CONSTANT('PI'))) - &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.5*((log(ingresso&lt;I&gt;-(x[3]*&amp;amp;scale_gamma))-(x[1]*&amp;amp;scale_mu))/(x[2]*&amp;amp;scale_sigma))**2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loglik=w-p*log(1-CDF('LOGNORMAL',&amp;amp;soglia-(x[3]*&amp;amp;scale_gamma),x[1]*&amp;amp;scale_mu,x[2]*&amp;amp;scale_sigma))-0.3*((x[2]*&amp;amp;scale_sigma)**2);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loglik=.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f=loglik;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (f);&lt;BR /&gt;&amp;nbsp; finish funzione;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; start derivate(x) global(ingresso); /* partial derivates loglikelihood */ &lt;BR /&gt;&amp;nbsp;&amp;nbsp; g = j(1,3,0.); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p=ncol(ingresso);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w=0;v=0;z=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to p; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; w=w+(log(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma)-x[1]*&amp;amp;scale_mu)/(x[2]*&amp;amp;scale_sigma)**2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; v=v+((log(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma)-x[1]*&amp;amp;scale_mu)**2)/(x[2]*&amp;amp;scale_sigma)**3-1/(x[2]*&amp;amp;scale_sigma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; z=z+(log(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma)-x[1]*&amp;amp;scale_mu)/(x[2]*&amp;amp;scale_sigma)/((x[2]*&amp;amp;scale_sigma)*(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma))-1/(ingresso&lt;I&gt;-x[3]*&amp;amp;scale_gamma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; T=(log(&amp;amp;soglia-x[3]*&amp;amp;scale_gamma)-x[1]*&amp;amp;scale_mu)/(x[2]*&amp;amp;scale_sigma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FLN=cdf('lognormal',&amp;amp;soglia-x[3]*&amp;amp;scale_gamma,x[1]*&amp;amp;scale_mu,x[2]*&amp;amp;scale_sigma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g[1]=w-p*(1/(x[2]*&amp;amp;scale_sigma))*pdf('normal',T)/(1-FLN);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g[2]=v+p*pdf('normal',T)/(1-FLN)*(-T/(x[2]*&amp;amp;scale_sigma))-0.6*(x[2]*&amp;amp;scale_sigma);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g[3]=z-p*pdf('normal',T)/(1-FLN)/((x[2]*&amp;amp;scale_sigma)*(&amp;amp;soglia-x[3]*&amp;amp;scale_gamma));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(g);&lt;BR /&gt;&amp;nbsp; finish derivate;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; start f_plln3(x) global(ingresso,ipar,lstar); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; like = funzione(x); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grad = derivate(x);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grad[ipar] = like - lstar;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(grad`); &lt;BR /&gt;&amp;nbsp; finish f_plln3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; h={&amp;amp;h11 &amp;amp;h12 &amp;amp;h13, &amp;amp;h12 &amp;amp;h22 &amp;amp;h23, &amp;amp;h13 &amp;amp;h23 &amp;amp;h33};&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* quantile of chi**2 distribution */&lt;BR /&gt;&amp;nbsp; fopt=-&amp;amp;loglikelihood;&lt;BR /&gt;&amp;nbsp; prob=0.32;&lt;BR /&gt;&amp;nbsp; chqua = cinv(1-prob,1); &lt;BR /&gt;&amp;nbsp; lstar = fopt - .5 * chqua;&lt;BR /&gt;&amp;nbsp; optn = {3 0};&lt;/P&gt;&lt;P&gt;&amp;nbsp; con={. 1.e-6 1.e-6 . .,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; . . &amp;amp;bound_gamma . .};&lt;/P&gt;&lt;P&gt;&amp;nbsp; tc=j(1,12,.);&lt;BR /&gt;&amp;nbsp; tc[1]=100000;&lt;BR /&gt;&amp;nbsp; tc[2]=100000;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ddd=j(2,2,.);&lt;BR /&gt;&amp;nbsp; v_col=j(2,1,.);&lt;/P&gt;&lt;P&gt;&amp;nbsp; do ipar = 1 to 3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ipar=1 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = 2; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jnd = 3; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ipar=2 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jnd = 3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ipar=3 then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ind = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jnd = 2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print ipar ind jnd;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a=h[ind,ind];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b=h[jnd,ind];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c=h[jnd,jnd];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; d=h[ipar,ind];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e=h[ipar,jnd];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f=h[ipar,ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddd[1,1]=a;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddd[1,2]=b;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddd[2,1]=b;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddd[2,2]=c;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_col[1,1]=d;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; v_col[2,1]=e;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delt = - inv(ddd) * v_col;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alfa = -( f + delt` * v_col);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if alfa &amp;gt; 0 then alfa = .5 * sqrt(chqua / alfa); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else do; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Bad alpha"; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alfa = .1 * xopt[ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print alfa;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ipar=1 then delt = 1 // delt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ipar=2 then do; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delt = 1//delt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delt[1]=delt[2];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delt[2]=1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ipar=3 then delt = delt // 1;&lt;/P&gt;&lt;P&gt;/* upper bound */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x0 = (xopt + alfa * delt);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con2 = con; con2[1,ipar] = xopt[ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL NLPLM(rc,xresu,"f_plln3",x0,optn,con2,tc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fu = f_plln3(xresu);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; su = ssq(fu);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if xresu[ipar]=xopt[ipar] | su &amp;gt;= 1 then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xub[ipar]=.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xub[ipar]= xresu[ipar]; &lt;/P&gt;&lt;P&gt;/* lower bound */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x0 = (xopt - alfa * delt); &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; con2= con; con2[2,ipar] = xopt[ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL NLPLM(rc,xresl,"f_plln3",x0,optn,con2,tc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fl = f_plln3(xresl);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sl = ssq(fl);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if xresl[ipar]=xopt[ipar] | sl &amp;gt;= 1 then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlb[ipar]=.;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlb[ipar]= xresl[ipar];&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; xopt[ipar]=xopt[ipar]*scala[ipar,ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; xub[ipar]=xub[ipar]*scala[ipar,ipar];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; xlb[ipar]=xlb[ipar]*scala[ipar,ipar];&lt;/P&gt;&lt;P&gt;&amp;nbsp; end; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Output */&lt;BR /&gt;&amp;nbsp; if xlb[1]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_inf_param1",char(xlb[1]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xlb[2]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_inf_param2",char(xlb[2]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xlb[3]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_inf_param3",char(xlb[3]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xub[1]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_sup_param1",char(xub[1]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xub[2]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_sup_param2",char(xub[2]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;&amp;nbsp; if xub[3]^=. then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL SYMPUT("CL_sup_param3",char(xub[3]));&lt;BR /&gt;&amp;nbsp; end;&lt;BR /&gt;s=t(xopt);&lt;BR /&gt;&amp;nbsp; print "Profile-Likelihood Confidence Interval"; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print xlb s xub;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 13:57:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Profile-Likelihood-Based-Confidence-Intervals/m-p/46958#M283</guid>
      <dc:creator>trevi83</dc:creator>
      <dc:date>2012-03-28T13:57:21Z</dc:date>
    </item>
    <item>
      <title>Profile-Likelihood-Based Confidence Intervals</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Profile-Likelihood-Based-Confidence-Intervals/m-p/46959#M284</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I submit this code for many input parameters (mu, sigma and gamma) and my problem is that the confidence &lt;/P&gt;interval (lower or upper, depends of cases) not calculate.&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="short_text" id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;What are the&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;causes&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;of&lt;/SPAN&gt; &lt;SPAN class="hps atn"&gt;non-&lt;/SPAN&gt;&lt;SPAN&gt;computing of confidence intervals?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="short_text" lang="en"&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 12:55:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Profile-Likelihood-Based-Confidence-Intervals/m-p/46959#M284</guid>
      <dc:creator>trevi83</dc:creator>
      <dc:date>2012-03-29T12:55:02Z</dc:date>
    </item>
    <item>
      <title>Profile-Likelihood-Based Confidence Intervals</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Profile-Likelihood-Based-Confidence-Intervals/m-p/46960#M285</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; When I calculate the upper (or lower) bound, I add this condition "if xresu[ipar]=xopt[ipar] then xub[ipar]=.;" because the result (xresu) of CALL NLPLM is equal to optimization value (xopt) &lt;SPAN class="short_text" id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;but&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I expect&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;different value.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Mar 2012 14:10:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Profile-Likelihood-Based-Confidence-Intervals/m-p/46960#M285</guid>
      <dc:creator>trevi83</dc:creator>
      <dc:date>2012-03-29T14:10:47Z</dc:date>
    </item>
  </channel>
</rss>

