Sure. ODA is running SAS 9.4, so use the NLPNRA procedure, as shown in
Maximum likelihood estimation in SAS/IML - The DO Loop
PROC IML;
start LL(param) global(x); /* normal log likelihood */
mu = param[1]; sigma = param[2];
LL = sum( logpdf("Normal", x, mu, sigma) );
return( -LL ); /* minimize -LL */
finish;
use Sashelp.Iris; /* read sample data */
read all var {SepalWidth} into x;
p = {35 5.5}; /* guess (mu, sigma), sigma>0 */
/* mu-sigma constraint matrix */
con = { . 0, /* lower bounds: -infty < mu; 0 < sigma */
. .}; /* upper bounds: mu < infty; sigma < infty */
call nlpnra(rc, soln, "LL", p) BLC=con;
print soln;
To understand where the SUM(LOGPDF(...)) function call comes from, see
Two simple ways to construct a log-likelihood function in SAS - The DO Loop
... View more