# [R] Help MLE

LFRC feliperiehs at yahoo.com.br
Sat Oct 11 01:06:00 CEST 2008

```Thanks again.

Now I want to complicate the model. Supose that Y is a vector with 30 data.

Y = c(0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,
1, 0, 0, 0, 0, 1, 0)
Then the r = sum(Y*log(comb))

Is it possible? I want to discover the variables values
(alpha12,w_g12,w_u12) for each Y that optimize the function r.

The new code is:

Model = function(alpha12,w_g12,w_u12)
{
Y = c(0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, 0, 1, 0)
u = 0.5
g = -1
comb = alpha12 + g*w_g12 + u*w_u12
r = sum(Y*log(comb))
cat(alpha12,w_g12,w_u12,comb,log(comb),r,"\n") ## debug
r
}

res = mle(minuslog=Model,start=list(alpha12=0.1,w_u12=0.1,w_g12=0.1),
method = "BFGS")

model2 <- function(p) {
do.call("Model",as.list(p))
}

constrOptim(theta=c(0.1,0.1,0.1),f=model2,
ui = c(1,-1,0.5),
ci = rep(0,3))

ERROR:

Error in optim(start, f, method = method, hessian = TRUE, ...) :
objective function in optim evaluates to length 30 not 1

Best regards,
LFRC

Ben Bolker wrote:
>
> LFRC <feliperiehs <at> yahoo.com.br> writes:
>
>>
>>
>> Dear Ben Bolker,
>>
>> Thanks a lot for your help.
>>
>> I have two more questions:
>>
>> 1) My goal is maximize the function (>     r = Y*log(comb)) but the
>> parameters found, minimized the function (r = Y*log(comb)).
>>
>
>   Oh.  Oops.  Just change the sign ( r = -Y*log(comb)) or
> set fnscale=-1 (see ?optim)
>
>> 2) What this function do?
>>   > model2 <- function(p) {
>>   >   do.call("Model",as.list(p))
>>   > }
>>
>
>   I got a little carried away, this is R Magic.
> mle() expects the function to be written out with
> a list of parameters ( func(param1,param2,param3) ),
> while optim and constrOptim want the function to
> have a single vector argument ( func(paramvec) ).
> model2() is a wrapper that converts a vector p
> into a list and passes it to the Model function.
>
>   Ben Bolker
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help