options double crt nodate; ? double makes a slight difference in evaluating ? the objective function; makes it possible to exactly reproduce ? the FRML results (for HITER=F) ? ML w/ user PROC smpl 1,9; trend t; ? find mean of t (5) frml eq1 logl = -log(sigt) + lnorm((t-mt)/sigt) ; param mt,2, sigt,1; ?ml(hiter=f,grad=c2) pm mt sigt; ? these options are now the default ml pm mt sigt; ? ML with PROC param mt,2, sigt,1; ml(hiter=f,grad=c2,hcov=f) eq1; ? ML with FRML param mt,2, sigt,1; ml(hiter=n,hcov=nb) eq1; ? ML with FRML param mt,2, sigt,1; set lr2pi1 = 1 + log(2*4*atan(1)); ? constant definition for proc pmc ml pmc mt; ? concentrated version (PROC) proc pm; ? unconcentrated likelihood fn if (sigt<=0); then; do; set @logl = @miss; goto 10; enddo; genr eq1; mat @logl = sum(logl); 10 nodbug; endproc; proc pmc; ? concentrated likelihood fn e = t-mt; mat sig2 = (e'e)/@nob; ?set pi = 4*atan(1); ?set @logl = -(@nob/2)*(log(sig2) + 1 + log(2*pi)); ?set lr2pi1 = 1 + log(2*4*atan(1)); ? define this outside the ? proc so that it doesn't have to be repeatedly evaluated set @logl = -(@nob/2)*(log(sig2) + lr2pi1); endproc;