<?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 call NLPNRA and NLPFDD in sas 9.2 and 9.3 in SAS/IML Software and Matrix Computations</title>
    <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/call-NLPNRA-and-NLPFDD-in-sas-9-2-and-9-3/m-p/131946#M1062</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I wrote a simulation program in IML to obtain Maximum likelihood estimator and its variance. There results from SAS 9.2 and SAS 9.3 are different for some samples. SAS 9.2 gave negative variance but SAS 9.3 gave positive variance. I need to decide which version I should use since I am running a massive simulation. I can run the simulation on a server (SAS 9.2) or on my own computer (SAS 9.3) which is very slow. The following is the code. A data set (enable2fact.txt) based on which 9.2 and 9.3 gave different results is attached. Thanks a lot for any help on this problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=enable2fact;&lt;/P&gt;&lt;P&gt;by ID;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc means data=enable2fact;&lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;var tij;&lt;/P&gt;&lt;P&gt;output out=no1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data no2;&lt;/P&gt;&lt;P&gt;set no1;&lt;/P&gt;&lt;P&gt;rename tij=N;&lt;/P&gt;&lt;P&gt;if _STAT_='N';&lt;/P&gt;&lt;P&gt;keep tij;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc iml;&lt;/P&gt;&lt;P&gt;start F_GLOBAL(x);&lt;/P&gt;&lt;P&gt;&amp;nbsp; c=13;bc=6;p=2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; lambda1t=x[1];lambda2t=x[2];lambda1=x[3];lambda2=x[4];&lt;/P&gt;&lt;P&gt;&amp;nbsp; phi1=x[5]*x[5];phi2=x[6]*x[6];phi3=x[7]*x[7];phi=x[8];&lt;/P&gt;&lt;P&gt;&amp;nbsp; beta=x[,9:14];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use no2;&lt;/P&gt;&lt;P&gt;read all into n;&lt;/P&gt;&lt;P&gt;use enable2fact;&lt;/P&gt;&lt;P&gt;read all var {tij_b} into tijb;&lt;/P&gt;&lt;P&gt;read all var {tij} into tij;&lt;/P&gt;&lt;P&gt;read all var {trt} into trt;&lt;/P&gt;&lt;P&gt;read all var {factpal} into y;&lt;/P&gt;&lt;P&gt;read all var {intercept} into intcep;&lt;/P&gt;&lt;P&gt;read all var {duration_month} into s;&lt;/P&gt;&lt;P&gt;read all var {death} into D;&lt;/P&gt;&lt;P&gt;m=0;lyd=0;tune=0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do i=1 to nrow(n);&lt;/P&gt;&lt;P&gt;m=m+n&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;si=s&lt;M&gt;;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;**********************************log likelihood of mixed model part;&lt;/P&gt;&lt;P&gt;rando=j(n&lt;I&gt;,n&lt;I&gt;,1);&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;epsi=I(n&lt;I&gt;);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;Ri=j(n&lt;I&gt;,n&lt;I&gt;,1);&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;tib=tijb[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ti=tij[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta=J(n&lt;I&gt;,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;fyd1=J(n&lt;I&gt;+1,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;fyd2=J(n&lt;I&gt;+1,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;fyd3=J(n&lt;I&gt;+1,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;onej1=J(n&lt;I&gt;+1,1,1);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*******************************generate Ri;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do j=1 to n&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do k=j to n&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ri[k,j]=exp(-phi*((abs(tib&lt;K&gt;-tib&lt;J&gt;))**p));&lt;/J&gt;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Ri[j,k]=exp(-phi*((abs(tib&lt;K&gt;-tib&lt;J&gt;))**p));&lt;/J&gt;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vi=phi1*rando+phi2*epsi+phi3*Ri;&lt;/P&gt;&lt;P&gt;yi=y[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;incepti=intcep[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;trti=trt[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ind1=J(n&lt;I&gt;,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt; do l=1 to n&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if tib&lt;L&gt;&amp;lt;=bc then ind1&lt;L&gt;=1;else ind1&lt;L&gt;=0;&lt;/L&gt;&lt;/L&gt;&lt;/L&gt;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;ind2=J(n&lt;I&gt;,1,1)-ind1;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;tind1=tib#ind1;&lt;/P&gt;&lt;P&gt;tind2=tib#ind2;&lt;/P&gt;&lt;P&gt;xib=incepti||trti||ind2||tind1||tind2;&lt;/P&gt;&lt;P&gt;beta1=J(5,1,1);&lt;/P&gt;&lt;P&gt;beta1[1]=beta[1];beta1[2]=beta[2];beta1[3]=bc*(beta[3]+trt&lt;M&gt;*beta[5]-beta[4]-trt&lt;M&gt;*beta[6]);&lt;/M&gt;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;beta1[4]=beta[3]+trt&lt;M&gt;*beta[5];beta1[5]=beta[4]+trt&lt;M&gt;*beta[6];&lt;/M&gt;&lt;/M&gt;&lt;/P&gt;&lt;P&gt; if D&lt;M&gt;=1 then do;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ly=-0.5*(log(det(Vi))+(t(yi-xib*beta1))*inv(Vi)*(yi-xib*beta1));&lt;/P&gt;&lt;P&gt; *************************************************************************log likelihood for observed events;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if trt&lt;M&gt;=1 then do;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if si&amp;lt;=c then ld=log(lambda1t)-lambda1t*si;else ld=log(lambda2t)-c*lambda1t-lambda2t*(si-c);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if trt&lt;M&gt;=0 then do;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if si&amp;lt;=c then ld=log(lambda1)-lambda1*si;else ld=log(lambda2)-c*lambda1-lambda2*(si-c);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; lyd=lyd+ly+ld;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*************************************************************************log likelihood for censored events;&lt;/P&gt;&lt;P&gt; if D&lt;M&gt;=0 then do;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lam1=lambda1t;lam2=lambda2t;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if trt&lt;M&gt;=0 then do; lam1=lambda1;lam2=lambda2;end;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if si&amp;gt;c then do;&lt;/P&gt;&lt;P&gt;***************************************************************;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to n&lt;I&gt;+1;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j=1 then do;&lt;/P&gt;&lt;P&gt;ybeta=yi+J(n&lt;I&gt;,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;)+(beta[3]+beta[5]*trt&lt;M&gt;)*ti;&lt;/M&gt;&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,1)*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu22=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[1]+bc then fyd1[1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[1]+bc then fyd1[1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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;&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; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;*(sdf('NORMAL',(si-mu22)/sqrt(sigma2))-sdf('NORMAL',(ti[1]+bc-mu22)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;1 &amp;amp; j&amp;lt;n&lt;I&gt;+1 then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta[1:j-1,]=yi[1:j-1,]+J(j-1,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;-bc*(beta[3]+beta[5]*trt&lt;M&gt;-beta[4]-beta[6]*trt&lt;M&gt;))+ti[1:j-1,]&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/P&gt;&lt;P&gt;betaA[1:j-1,]=J(j-1,1,1)*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/P&gt;&lt;P&gt;ybeta[j:n&lt;I&gt;,]=yi[j:n&lt;I&gt;,]+J(n&lt;I&gt;-j+1,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;)+ti[j:n&lt;I&gt;,]*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/M&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA[j:n&lt;I&gt;,]=J(n&lt;I&gt;-j+1,1,1)*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu22=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti&lt;J&gt;+bc then fyd1&lt;J&gt;=0;&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[j-1]+bc then &lt;/P&gt;&lt;P&gt;fyd1&lt;J&gt;=sqrt(det(inv(Vi)))*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/J&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&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; *(sdf('NORMAL',(ti[j-1]+bc-mu22)/sqrt(sigma2))-sdf('NORMAL',(ti&lt;J&gt;+bc-mu22)/sqrt(sigma2)));&lt;/J&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[j-1]+bc &amp;amp; si&amp;lt;=ti&lt;J&gt;+bc then do;&lt;/J&gt;&lt;/P&gt;&lt;P&gt;fyd1&lt;J&gt;=sqrt(det(inv(Vi)))*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/J&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(sdf('NORMAL',(si-mu22)/sqrt(sigma2))-sdf('NORMAL',(ti&lt;J&gt;+bc-mu22)/sqrt(sigma2)));end;&lt;/J&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j=n&lt;I&gt;+1 then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta=yi+J(n&lt;I&gt;,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;-bc*(beta[3]+beta[5]*trt&lt;M&gt;-beta[4]-beta[6]*trt&lt;M&gt;))+(beta[4]+beta[6]*trt&lt;M&gt;)*ti;&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,1)*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu22=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[n&lt;I&gt;]+bc then fyd1&lt;J&gt;=sqrt(det(inv(Vi)))&lt;/J&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(si-mu22)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[n&lt;I&gt;]+bc then fyd1&lt;J&gt;=sqrt(det(inv(Vi)))&lt;/J&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(ti[n&lt;I&gt;]+bc-mu22)/sqrt(sigma2)))&lt;/I&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;********************************************************;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; fyd=t(onej1)*fyd1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lyd=lyd+log(fyd);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if si&amp;lt;c then do;&lt;/P&gt;&lt;P&gt;***************************************************************;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j1=1 to n&lt;I&gt;+1;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j1=1 then do;&lt;/P&gt;&lt;P&gt;ybeta=yi+J(n&lt;I&gt;,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;)+(beta[3]+beta[5]*trt&lt;M&gt;)*ti;&lt;/M&gt;&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,1)*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu=(t(ybeta)*inv(Vi)*betaA-lam1)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu2=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[1]+bc then fyd2[1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[1]+bc &amp;amp; c&amp;gt;ti[1]+bc then fyd2[1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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; *lam1*sqrt(sigma2)*(sdf('NORMAL',(si-mu)/sqrt(sigma2))-sdf('NORMAL',(ti[1]+bc-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[1]+bc then fyd2[1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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; *lam1*sqrt(sigma2)*(sdf('NORMAL',(si-mu)/sqrt(sigma2))-sdf('NORMAL',(c-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[1]+bc then fyd3[1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[1]+bc then fyd3[1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;*(sdf('NORMAL',(c-mu2)/sqrt(sigma2))-sdf('NORMAL',(ti[1]+bc-mu2)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j1&amp;gt;1 &amp;amp; j1&amp;lt;n&lt;I&gt;+1 then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta[1:j1-1,]=yi[1:j1-1,]+J(j1-1,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;-bc*(beta[3]+beta[5]*trt&lt;M&gt;-beta[4]-beta[6]*trt&lt;M&gt;))+ti[1:j1-1,]&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/P&gt;&lt;P&gt;betaA[1:j1-1,]=J(j1-1,1,1)*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/P&gt;&lt;P&gt;ybeta[j1:n&lt;I&gt;,]=yi[j1:n&lt;I&gt;,]+J(n&lt;I&gt;-j1+1,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;)+ti[j1:n&lt;I&gt;,]*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/M&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA[j1:n&lt;I&gt;,]=J(n&lt;I&gt;-j1+1,1,1)*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu=(t(ybeta)*inv(Vi)*betaA-lam1)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu2=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[j1]+bc then fyd2[j1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[j1-1]+bc then fyd2[j1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[j1-1]+bc &amp;amp; c&amp;gt;ti[j1]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)*(sdf('NORMAL',(ti[j1-1]+bc-mu)/sqrt(sigma2))-sdf('NORMAL',(ti[j1]+bc-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[j1-1]+bc &amp;amp; si&amp;lt;=ti[j1]+bc &amp;amp; c&amp;gt;ti[j1]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)*(sdf('NORMAL',(si-mu)/sqrt(sigma2))-sdf('NORMAL',(ti[j1]+bc-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[j1-1]+bc &amp;amp; c&amp;lt;=ti[j1]+bc &amp;amp; c&amp;gt;ti[j1-1]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)*(sdf('NORMAL',(ti[j1-1]+bc-mu)/sqrt(sigma2))-sdf('NORMAL',(c-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[j1-1]+bc &amp;amp; c&amp;lt;=ti[j1]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt;&amp;nbsp; *lam1*sqrt(sigma2)*(sdf('NORMAL',(si-mu)/sqrt(sigma2))-sdf('NORMAL',(c-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[j1]+bc then fyd3[j1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[j1-1]+bc then fyd3[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;&amp;nbsp; *exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&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;&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; *(sdf('NORMAL',(ti[j1-1]+bc-mu2)/sqrt(sigma2))-sdf('NORMAL',(ti[j1]+bc-mu2)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[j1-1]+bc &amp;amp; c&amp;lt;=ti[j1]+bc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then fyd3[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;*(sdf('NORMAL',(c-mu2)/sqrt(sigma2))-sdf('NORMAL',(ti[j1]+bc-mu2)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j1=n&lt;I&gt;+1 then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta=yi+J(n&lt;I&gt;,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;-bc*(beta[3]+beta[5]*trt&lt;M&gt;-beta[4]-beta[6]*trt&lt;M&gt;))+(beta[4]+beta[6]*trt&lt;M&gt;)*ti;&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,1)*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu=(t(ybeta)*inv(Vi)*betaA-lam1)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu2=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[n&lt;I&gt;]+bc then fyd2[j1]=0;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[n&lt;I&gt;]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(si-mu)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;-sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(c-mu)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[n&lt;I&gt;]+bc &amp;amp; si&amp;lt;=ti[n&lt;I&gt;]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(ti[n&lt;I&gt;]+bc-mu)/sqrt(sigma2)))&lt;/I&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;-sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(c-mu)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[n&lt;I&gt;]+bc then fyd3[j1]=sqrt(det(inv(Vi)))&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(c-mu2)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[n&lt;I&gt;]+bc then fyd3[j1]=sqrt(det(inv(Vi)))&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(ti[n&lt;I&gt;]+bc-mu2)/sqrt(sigma2)))&lt;/I&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;********************************************************;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; fyd=t(onej1)*(fyd2+fyd3);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lyd=lyd+log(fyd);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;f=lyd;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;return(f);&lt;/P&gt;&lt;P&gt;finish F_GLOBAL;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x={0.05234 0.03309 0.07719 0.018472 18.22067 11.35843 9.95227 0.018541 108.4382 12.02538 3.994826 0.088183 -1.36527&lt;/P&gt;&lt;P&gt;-0.06034};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;opt=J(1,9,.);&lt;/P&gt;&lt;P&gt;opt[1]=1;&lt;/P&gt;&lt;P&gt;opt[2]=3;&lt;/P&gt;&lt;P&gt;tc=j(1,11,.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******************Making upper and lower bounds for the parameters;&lt;/P&gt;&lt;P&gt;con=J(2,14,.);&lt;/P&gt;&lt;P&gt;boundbeta=500;&lt;/P&gt;&lt;P&gt;positive=10**(-10);&lt;/P&gt;&lt;P&gt;varianlower=3;&lt;/P&gt;&lt;P&gt;varianupper=500;&lt;/P&gt;&lt;P&gt;boundphi=5;&lt;/P&gt;&lt;P&gt;boundlam=1;&lt;/P&gt;&lt;P&gt;do i=1 to 2;&lt;/P&gt;&lt;P&gt; do j=1 to 14;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i=1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if j&amp;lt;=4 then con[i,j]=positive;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;=5 &amp;amp; j&amp;lt;=7 then con[i,j]=varianlower;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j=8 then con[i,j]=positive;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;=9 then con[i,j]=-boundbeta;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if i=2 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if j&amp;lt;=4 then con[i,j]=boundlam;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;=5 &amp;amp; j&amp;lt;=7 then con[i,j]=varianupper;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j=8 then con[i,j]=boundphi;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;=9 then con[i,j]=boundbeta;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;print con;&lt;/P&gt;&lt;P&gt;call nlpnra(rc,xr,"F_GLOBAL",x,opt,con,tc);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL NLPFDD( f1, g1, h1, "F_GLOBAL", xr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;print f1,g1,h1;&lt;/P&gt;&lt;P&gt;B=I(14);&lt;/P&gt;&lt;P&gt;V=inv(-B*h1*(t(B)));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;print V;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var=VECDIAG(V);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do s=1 to nrow(var);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if var&lt;S&gt;&amp;lt;0 then var&lt;S&gt;=0;&lt;/S&gt;&lt;/S&gt;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;std=t(sqrt(var));&lt;/P&gt;&lt;P&gt;para=xr[,1:ncol(xr)];&lt;/P&gt;&lt;P&gt;print para std, V;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;truex={0.05234 0.03309 0.07719 0.018472 18.22067 11.35843 9.95227 0.018541 108.4382 12.02538 3.994826 0.088183 -1.36527&lt;/P&gt;&lt;P&gt;-0.06034};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CP=J(1,ncol(std),.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do r=1 to ncol(std);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if truex&lt;R&gt;&amp;lt;=para&lt;R&gt;+1.96*std&lt;R&gt; &amp;amp; truex&lt;R&gt;&amp;gt;=para&lt;R&gt;-1.96*std&lt;R&gt; then CP&lt;R&gt;=1;else CP&lt;R&gt;=0;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;resultpara=para||std||CP;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create result from resultpara;&lt;/P&gt;&lt;P&gt;append from resultpara;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 04 Jun 2012 14:47:43 GMT</pubDate>
    <dc:creator>JerryLee</dc:creator>
    <dc:date>2012-06-04T14:47:43Z</dc:date>
    <item>
      <title>call NLPNRA and NLPFDD in sas 9.2 and 9.3</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/call-NLPNRA-and-NLPFDD-in-sas-9-2-and-9-3/m-p/131946#M1062</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I wrote a simulation program in IML to obtain Maximum likelihood estimator and its variance. There results from SAS 9.2 and SAS 9.3 are different for some samples. SAS 9.2 gave negative variance but SAS 9.3 gave positive variance. I need to decide which version I should use since I am running a massive simulation. I can run the simulation on a server (SAS 9.2) or on my own computer (SAS 9.3) which is very slow. The following is the code. A data set (enable2fact.txt) based on which 9.2 and 9.3 gave different results is attached. Thanks a lot for any help on this problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=enable2fact;&lt;/P&gt;&lt;P&gt;by ID;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc means data=enable2fact;&lt;/P&gt;&lt;P&gt;by id;&lt;/P&gt;&lt;P&gt;var tij;&lt;/P&gt;&lt;P&gt;output out=no1;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data no2;&lt;/P&gt;&lt;P&gt;set no1;&lt;/P&gt;&lt;P&gt;rename tij=N;&lt;/P&gt;&lt;P&gt;if _STAT_='N';&lt;/P&gt;&lt;P&gt;keep tij;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc iml;&lt;/P&gt;&lt;P&gt;start F_GLOBAL(x);&lt;/P&gt;&lt;P&gt;&amp;nbsp; c=13;bc=6;p=2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; lambda1t=x[1];lambda2t=x[2];lambda1=x[3];lambda2=x[4];&lt;/P&gt;&lt;P&gt;&amp;nbsp; phi1=x[5]*x[5];phi2=x[6]*x[6];phi3=x[7]*x[7];phi=x[8];&lt;/P&gt;&lt;P&gt;&amp;nbsp; beta=x[,9:14];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use no2;&lt;/P&gt;&lt;P&gt;read all into n;&lt;/P&gt;&lt;P&gt;use enable2fact;&lt;/P&gt;&lt;P&gt;read all var {tij_b} into tijb;&lt;/P&gt;&lt;P&gt;read all var {tij} into tij;&lt;/P&gt;&lt;P&gt;read all var {trt} into trt;&lt;/P&gt;&lt;P&gt;read all var {factpal} into y;&lt;/P&gt;&lt;P&gt;read all var {intercept} into intcep;&lt;/P&gt;&lt;P&gt;read all var {duration_month} into s;&lt;/P&gt;&lt;P&gt;read all var {death} into D;&lt;/P&gt;&lt;P&gt;m=0;lyd=0;tune=0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do i=1 to nrow(n);&lt;/P&gt;&lt;P&gt;m=m+n&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;si=s&lt;M&gt;;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;**********************************log likelihood of mixed model part;&lt;/P&gt;&lt;P&gt;rando=j(n&lt;I&gt;,n&lt;I&gt;,1);&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;epsi=I(n&lt;I&gt;);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;Ri=j(n&lt;I&gt;,n&lt;I&gt;,1);&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;tib=tijb[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ti=tij[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta=J(n&lt;I&gt;,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;fyd1=J(n&lt;I&gt;+1,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;fyd2=J(n&lt;I&gt;+1,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;fyd3=J(n&lt;I&gt;+1,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;onej1=J(n&lt;I&gt;+1,1,1);&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*******************************generate Ri;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do j=1 to n&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do k=j to n&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ri[k,j]=exp(-phi*((abs(tib&lt;K&gt;-tib&lt;J&gt;))**p));&lt;/J&gt;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Ri[j,k]=exp(-phi*((abs(tib&lt;K&gt;-tib&lt;J&gt;))**p));&lt;/J&gt;&lt;/K&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vi=phi1*rando+phi2*epsi+phi3*Ri;&lt;/P&gt;&lt;P&gt;yi=y[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;incepti=intcep[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;trti=trt[m-n&lt;I&gt;+1:m];&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ind1=J(n&lt;I&gt;,1,.);&lt;/I&gt;&lt;/P&gt;&lt;P&gt; do l=1 to n&lt;I&gt;;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if tib&lt;L&gt;&amp;lt;=bc then ind1&lt;L&gt;=1;else ind1&lt;L&gt;=0;&lt;/L&gt;&lt;/L&gt;&lt;/L&gt;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;ind2=J(n&lt;I&gt;,1,1)-ind1;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;tind1=tib#ind1;&lt;/P&gt;&lt;P&gt;tind2=tib#ind2;&lt;/P&gt;&lt;P&gt;xib=incepti||trti||ind2||tind1||tind2;&lt;/P&gt;&lt;P&gt;beta1=J(5,1,1);&lt;/P&gt;&lt;P&gt;beta1[1]=beta[1];beta1[2]=beta[2];beta1[3]=bc*(beta[3]+trt&lt;M&gt;*beta[5]-beta[4]-trt&lt;M&gt;*beta[6]);&lt;/M&gt;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;beta1[4]=beta[3]+trt&lt;M&gt;*beta[5];beta1[5]=beta[4]+trt&lt;M&gt;*beta[6];&lt;/M&gt;&lt;/M&gt;&lt;/P&gt;&lt;P&gt; if D&lt;M&gt;=1 then do;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ly=-0.5*(log(det(Vi))+(t(yi-xib*beta1))*inv(Vi)*(yi-xib*beta1));&lt;/P&gt;&lt;P&gt; *************************************************************************log likelihood for observed events;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if trt&lt;M&gt;=1 then do;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if si&amp;lt;=c then ld=log(lambda1t)-lambda1t*si;else ld=log(lambda2t)-c*lambda1t-lambda2t*(si-c);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if trt&lt;M&gt;=0 then do;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if si&amp;lt;=c then ld=log(lambda1)-lambda1*si;else ld=log(lambda2)-c*lambda1-lambda2*(si-c);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; lyd=lyd+ly+ld;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*************************************************************************log likelihood for censored events;&lt;/P&gt;&lt;P&gt; if D&lt;M&gt;=0 then do;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lam1=lambda1t;lam2=lambda2t;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if trt&lt;M&gt;=0 then do; lam1=lambda1;lam2=lambda2;end;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if si&amp;gt;c then do;&lt;/P&gt;&lt;P&gt;***************************************************************;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to n&lt;I&gt;+1;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j=1 then do;&lt;/P&gt;&lt;P&gt;ybeta=yi+J(n&lt;I&gt;,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;)+(beta[3]+beta[5]*trt&lt;M&gt;)*ti;&lt;/M&gt;&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,1)*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu22=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[1]+bc then fyd1[1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[1]+bc then fyd1[1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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;&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; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;*(sdf('NORMAL',(si-mu22)/sqrt(sigma2))-sdf('NORMAL',(ti[1]+bc-mu22)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;1 &amp;amp; j&amp;lt;n&lt;I&gt;+1 then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta[1:j-1,]=yi[1:j-1,]+J(j-1,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;-bc*(beta[3]+beta[5]*trt&lt;M&gt;-beta[4]-beta[6]*trt&lt;M&gt;))+ti[1:j-1,]&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/P&gt;&lt;P&gt;betaA[1:j-1,]=J(j-1,1,1)*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/P&gt;&lt;P&gt;ybeta[j:n&lt;I&gt;,]=yi[j:n&lt;I&gt;,]+J(n&lt;I&gt;-j+1,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;)+ti[j:n&lt;I&gt;,]*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/M&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA[j:n&lt;I&gt;,]=J(n&lt;I&gt;-j+1,1,1)*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu22=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti&lt;J&gt;+bc then fyd1&lt;J&gt;=0;&lt;/J&gt;&lt;/J&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[j-1]+bc then &lt;/P&gt;&lt;P&gt;fyd1&lt;J&gt;=sqrt(det(inv(Vi)))*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/J&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&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; *(sdf('NORMAL',(ti[j-1]+bc-mu22)/sqrt(sigma2))-sdf('NORMAL',(ti&lt;J&gt;+bc-mu22)/sqrt(sigma2)));&lt;/J&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[j-1]+bc &amp;amp; si&amp;lt;=ti&lt;J&gt;+bc then do;&lt;/J&gt;&lt;/P&gt;&lt;P&gt;fyd1&lt;J&gt;=sqrt(det(inv(Vi)))*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/J&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(sdf('NORMAL',(si-mu22)/sqrt(sigma2))-sdf('NORMAL',(ti&lt;J&gt;+bc-mu22)/sqrt(sigma2)));end;&lt;/J&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j=n&lt;I&gt;+1 then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta=yi+J(n&lt;I&gt;,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;-bc*(beta[3]+beta[5]*trt&lt;M&gt;-beta[4]-beta[6]*trt&lt;M&gt;))+(beta[4]+beta[6]*trt&lt;M&gt;)*ti;&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,1)*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu22=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[n&lt;I&gt;]+bc then fyd1&lt;J&gt;=sqrt(det(inv(Vi)))&lt;/J&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(si-mu22)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[n&lt;I&gt;]+bc then fyd1&lt;J&gt;=sqrt(det(inv(Vi)))&lt;/J&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(ti[n&lt;I&gt;]+bc-mu22)/sqrt(sigma2)))&lt;/I&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;********************************************************;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; fyd=t(onej1)*fyd1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lyd=lyd+log(fyd);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if si&amp;lt;c then do;&lt;/P&gt;&lt;P&gt;***************************************************************;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j1=1 to n&lt;I&gt;+1;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j1=1 then do;&lt;/P&gt;&lt;P&gt;ybeta=yi+J(n&lt;I&gt;,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;)+(beta[3]+beta[5]*trt&lt;M&gt;)*ti;&lt;/M&gt;&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,1)*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu=(t(ybeta)*inv(Vi)*betaA-lam1)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu2=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[1]+bc then fyd2[1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[1]+bc &amp;amp; c&amp;gt;ti[1]+bc then fyd2[1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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; *lam1*sqrt(sigma2)*(sdf('NORMAL',(si-mu)/sqrt(sigma2))-sdf('NORMAL',(ti[1]+bc-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[1]+bc then fyd2[1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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; *lam1*sqrt(sigma2)*(sdf('NORMAL',(si-mu)/sqrt(sigma2))-sdf('NORMAL',(c-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[1]+bc then fyd3[1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[1]+bc then fyd3[1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;*(sdf('NORMAL',(c-mu2)/sqrt(sigma2))-sdf('NORMAL',(ti[1]+bc-mu2)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j1&amp;gt;1 &amp;amp; j1&amp;lt;n&lt;I&gt;+1 then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta[1:j1-1,]=yi[1:j1-1,]+J(j1-1,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;-bc*(beta[3]+beta[5]*trt&lt;M&gt;-beta[4]-beta[6]*trt&lt;M&gt;))+ti[1:j1-1,]&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/P&gt;&lt;P&gt;*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/P&gt;&lt;P&gt;betaA[1:j1-1,]=J(j1-1,1,1)*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/P&gt;&lt;P&gt;ybeta[j1:n&lt;I&gt;,]=yi[j1:n&lt;I&gt;,]+J(n&lt;I&gt;-j1+1,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;)+ti[j1:n&lt;I&gt;,]*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/M&gt;&lt;/I&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA[j1:n&lt;I&gt;,]=J(n&lt;I&gt;-j1+1,1,1)*(beta[3]+beta[5]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu=(t(ybeta)*inv(Vi)*betaA-lam1)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu2=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[j1]+bc then fyd2[j1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[j1-1]+bc then fyd2[j1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[j1-1]+bc &amp;amp; c&amp;gt;ti[j1]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)*(sdf('NORMAL',(ti[j1-1]+bc-mu)/sqrt(sigma2))-sdf('NORMAL',(ti[j1]+bc-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[j1-1]+bc &amp;amp; si&amp;lt;=ti[j1]+bc &amp;amp; c&amp;gt;ti[j1]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)*(sdf('NORMAL',(si-mu)/sqrt(sigma2))-sdf('NORMAL',(ti[j1]+bc-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;lt;=ti[j1-1]+bc &amp;amp; c&amp;lt;=ti[j1]+bc &amp;amp; c&amp;gt;ti[j1-1]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)*(sdf('NORMAL',(ti[j1-1]+bc-mu)/sqrt(sigma2))-sdf('NORMAL',(c-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[j1-1]+bc &amp;amp; c&amp;lt;=ti[j1]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt;&amp;nbsp; *lam1*sqrt(sigma2)*(sdf('NORMAL',(si-mu)/sqrt(sigma2))-sdf('NORMAL',(c-mu)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[j1]+bc then fyd3[j1]=0;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[j1-1]+bc then fyd3[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;&amp;nbsp; *exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&gt; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&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;&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; *(sdf('NORMAL',(ti[j1-1]+bc-mu2)/sqrt(sigma2))-sdf('NORMAL',(ti[j1]+bc-mu2)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[j1-1]+bc &amp;amp; c&amp;lt;=ti[j1]+bc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then fyd3[j1]=sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta)&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;*(sdf('NORMAL',(c-mu2)/sqrt(sigma2))-sdf('NORMAL',(ti[j1]+bc-mu2)/sqrt(sigma2)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j1=n&lt;I&gt;+1 then do;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;ybeta=yi+J(n&lt;I&gt;,1,1)*(-beta[1]-beta[2]*trt&lt;M&gt;-bc*(beta[3]+beta[5]*trt&lt;M&gt;-beta[4]-beta[6]*trt&lt;M&gt;))+(beta[4]+beta[6]*trt&lt;M&gt;)*ti;&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;betaA=J(n&lt;I&gt;,1,1)*(beta[4]+beta[6]*trt&lt;M&gt;);&lt;/M&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu=(t(ybeta)*inv(Vi)*betaA-lam1)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mu2=(t(ybeta)*inv(Vi)*betaA-lam2)/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; sigma2=1/(t(betaA)*inv(Vi)*betaA);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[n&lt;I&gt;]+bc then fyd2[j1]=0;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if si&amp;gt;ti[n&lt;I&gt;]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(si-mu)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;-sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(c-mu)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[n&lt;I&gt;]+bc &amp;amp; si&amp;lt;=ti[n&lt;I&gt;]+bc then fyd2[j1]=sqrt(det(inv(Vi)))&lt;/I&gt;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(ti[n&lt;I&gt;]+bc-mu)/sqrt(sigma2)))&lt;/I&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2)&lt;/P&gt;&lt;P&gt;-sqrt(det(inv(Vi)))&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam1)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(c-mu)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam1*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;gt;ti[n&lt;I&gt;]+bc then fyd3[j1]=sqrt(det(inv(Vi)))&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(c-mu2)/sqrt(sigma2)))&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if c&amp;lt;=ti[n&lt;I&gt;]+bc then fyd3[j1]=sqrt(det(inv(Vi)))&lt;/I&gt;&lt;/P&gt;&lt;P&gt;*exp(-tune+0.5*(t(ybeta)*inv(Vi)*betaA-lam2)**2/(t(betaA)*inv(Vi)*betaA)-0.5*t(ybeta)*inv(Vi)*ybeta&lt;/P&gt;&lt;P&gt;+logsdf('NORMAL',(ti[n&lt;I&gt;]+bc-mu2)/sqrt(sigma2)))&lt;/I&gt;&lt;/P&gt;&lt;P&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; *lam2*exp(-c*(lam1-lam2))*sqrt(sigma2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;********************************************************;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; fyd=t(onej1)*(fyd2+fyd3);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lyd=lyd+log(fyd);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;f=lyd;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;return(f);&lt;/P&gt;&lt;P&gt;finish F_GLOBAL;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x={0.05234 0.03309 0.07719 0.018472 18.22067 11.35843 9.95227 0.018541 108.4382 12.02538 3.994826 0.088183 -1.36527&lt;/P&gt;&lt;P&gt;-0.06034};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;opt=J(1,9,.);&lt;/P&gt;&lt;P&gt;opt[1]=1;&lt;/P&gt;&lt;P&gt;opt[2]=3;&lt;/P&gt;&lt;P&gt;tc=j(1,11,.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******************Making upper and lower bounds for the parameters;&lt;/P&gt;&lt;P&gt;con=J(2,14,.);&lt;/P&gt;&lt;P&gt;boundbeta=500;&lt;/P&gt;&lt;P&gt;positive=10**(-10);&lt;/P&gt;&lt;P&gt;varianlower=3;&lt;/P&gt;&lt;P&gt;varianupper=500;&lt;/P&gt;&lt;P&gt;boundphi=5;&lt;/P&gt;&lt;P&gt;boundlam=1;&lt;/P&gt;&lt;P&gt;do i=1 to 2;&lt;/P&gt;&lt;P&gt; do j=1 to 14;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i=1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if j&amp;lt;=4 then con[i,j]=positive;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;=5 &amp;amp; j&amp;lt;=7 then con[i,j]=varianlower;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j=8 then con[i,j]=positive;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;=9 then con[i,j]=-boundbeta;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if i=2 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if j&amp;lt;=4 then con[i,j]=boundlam;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;=5 &amp;amp; j&amp;lt;=7 then con[i,j]=varianupper;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j=8 then con[i,j]=boundphi;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if j&amp;gt;=9 then con[i,j]=boundbeta;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;print con;&lt;/P&gt;&lt;P&gt;call nlpnra(rc,xr,"F_GLOBAL",x,opt,con,tc);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL NLPFDD( f1, g1, h1, "F_GLOBAL", xr);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;print f1,g1,h1;&lt;/P&gt;&lt;P&gt;B=I(14);&lt;/P&gt;&lt;P&gt;V=inv(-B*h1*(t(B)));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;print V;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var=VECDIAG(V);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do s=1 to nrow(var);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if var&lt;S&gt;&amp;lt;0 then var&lt;S&gt;=0;&lt;/S&gt;&lt;/S&gt;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;std=t(sqrt(var));&lt;/P&gt;&lt;P&gt;para=xr[,1:ncol(xr)];&lt;/P&gt;&lt;P&gt;print para std, V;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;truex={0.05234 0.03309 0.07719 0.018472 18.22067 11.35843 9.95227 0.018541 108.4382 12.02538 3.994826 0.088183 -1.36527&lt;/P&gt;&lt;P&gt;-0.06034};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CP=J(1,ncol(std),.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;do r=1 to ncol(std);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if truex&lt;R&gt;&amp;lt;=para&lt;R&gt;+1.96*std&lt;R&gt; &amp;amp; truex&lt;R&gt;&amp;gt;=para&lt;R&gt;-1.96*std&lt;R&gt; then CP&lt;R&gt;=1;else CP&lt;R&gt;=0;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/R&gt;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;resultpara=para||std||CP;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;create result from resultpara;&lt;/P&gt;&lt;P&gt;append from resultpara;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Jun 2012 14:47:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/call-NLPNRA-and-NLPFDD-in-sas-9-2-and-9-3/m-p/131946#M1062</guid>
      <dc:creator>JerryLee</dc:creator>
      <dc:date>2012-06-04T14:47:43Z</dc:date>
    </item>
    <item>
      <title>Re: call NLPNRA and NLPFDD in sas 9.2 and 9.3</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/call-NLPNRA-and-NLPFDD-in-sas-9-2-and-9-3/m-p/131947#M1063</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I suggest improving the efficiency of your code by using the ideas in the blog post "&lt;A href="http://blogs.sas.com/content/iml/2012/06/06/tips-to-make-your-simulation-run-faster/"&gt;Eight tips to make your simulation run faster&lt;/A&gt;." All those loops over "i"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'll even add a few more tips:&lt;BR /&gt;Tip #9: Don't read the data in the F_GLOBAL function. This is KILLING your performance because you are reading the data at EVERY STEP of the optimization!&amp;nbsp; Instead, read the data once and then include those vectors as global variables by using the GLOBAL statement&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tip #10: det(inv(X) = 1/det(X) so there is no need to take the inverse&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2012 14:28:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/call-NLPNRA-and-NLPFDD-in-sas-9-2-and-9-3/m-p/131947#M1063</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2012-06-12T14:28:23Z</dc:date>
    </item>
  </channel>
</rss>

