Benedikt Gehr, Institut für Evolutionsbiologie und Umweltwissenschaften
2010-Mar-24 12:35 UTC
[R] optimize a joint lieklihood with mle2
Hi I'm trying to maximize a joint likelihood of 2 likelihoods (Likelihood 1 and Likelihood 2) in mle2, where the parameters I estimate in Likelihood 2 go into the likelihood 1. In Likelihood 1 I estimate the vector logN with length 37, and for the Likelihood 2 I measure a vector s of length 8. The values of s in Lieklihood 2 are used in the Likelihood 1. I have 2 questions: ##1 I manage to write the joint lieklihood (it's very long which is why I don't put it here), but I don't know how to write the correct argument for the mle2 function. Here is what I've tried: ################################## the lieklihood function to be optimized is called mfun(logN, s, h=h, cohort=cohort). I want to maximize the vectors logN and s. I define the starting values for logN as svec1 and for s as svec2 then I write for the optimization: m1 = mle2(mfun,start=list(svec1=logN,svec2=s), method="L-BFGS-B",lower=lower,upper=10, vecpar=TRUE, data=list(h=h,cohort=cohort)) but I get the error: Error in mle2(mfun, start = list(svec1 = logN, svec2 = s), method = "L-BFGS-B", : some named arguments in 'start' are not arguments to the specified log-likelihood function How can I correctly write the fucntion for this? ##################################################### ##2 Besides I'm using constrained optim method L-BFGS-B. But I would only like to use it for logN and not for s. Is that at all possible? I guess I could use the same limits also for s because s falls in the range of logN values, but how can I tell mle2 that I measure 2 likelihoods. thanks so much for the help Benedikt