# [R] Optim

Thu Feb 12 06:54:28 CET 2009

```Dear R user I follow the steps defined in Modern applied statistics page(453)
to use optim. However, when I run the following code the parameters seems
way off and the third parameter(p3) stayed as the initial value.
below is the code:
## data
da=c(418,401,416,360,411,425,537,379,484,388,486,380,394,363,405,383,392,363,398,526)

### initial values
pars=c(392.25, 507.25,   0.80)
p1=pars;p2=pars;p3=pars

### Objective function
mix.obj = function(p,x)
{
e =p*(pnorm((x+1/2-p)/sqrt(p))-pnorm((x-1/2-p)/sqrt(p)))
+ (1-p)*(pnorm((x-1/2-p)/sqrt(p))-pnorm((x-3/2-p)/sqrt(p)))
if (any(e<=0)) Inf
else -sum(log(e))
}

### Calculate the first derivatives of the objective function.
lmix2a = deriv(~
-log(p3*pnorm((x+1/2-p1)/sqrt(p1))-pnorm((x-1/2-p1)/sqrt(p1))
+ (1-p3)*pnorm((x-1/2-p2)/sqrt(p2))-pnorm((x-3/2-p2)/sqrt(p2))),
c("p3","p2","p1"),
function(x,p1,p2,p3) NULL)

mix.gr = function(p,x)
{
p3 = p
p2 = p
p1 = p
}
### optim
(resultsBFGS_D=optim(pars,mix.obj,mix.gr,x=da,method="L-BFGS-B",lower=rep(0,3),upper=c(Inf,Inf,1),hessian=T)\$par)

Also, sometimes it gives me the following error:
Error in optim(pars, mix.obj, mix.gr, x = da, method = "L-BFGS-B", lower =
rep(0,  :
L-BFGS-B needs finite values of 'fn'

Thanks in advance for ur help.

--
View this message in context: http://www.nabble.com/Optim-tp21970390p21970390.html
Sent from the R help mailing list archive at Nabble.com.

```