[R] Trouble with optim function
Prof. John C Nash
nashjc at uottawa.ca
Thu Feb 18 16:53:41 CET 2010
optim really isn't intended for [1D] functions. And if you have a constrained search area,
it pays to use it. The result you are getting is like the second root of a quadratic that
you are not interested in.
You may want to be rather careful about the problem to make sure you have the function you
intend.
> I'm trying to make a little script to determine an "unknown" rate for a
> number of known exponential trials.
>
>
>
> My Code:
> #Set Trials and generate number
> trials=100
> rand<-runif(1,0,1)
> vector=0
>
> #Generate vector of 100 random exponentials and sum them
> for (i in 1:100) {
> vector<-rexp(trials,rate=rand)
> }
> sumvect=sum(vector)
>
> #Create the log likelihood function
> LL<-function(x) {(trials*log(x))-(x*sumvect)}
>
> optim(1,LL,method="BFGS")
>
>
>
> The "rand" variable should be between 0 and 1 and is what I am trying to
> approximate. However, as it is I generally get a value in the tens of
> thousands. I'm sure it's something simple but I can't find my error.
How about?
> ans2<-optimize(f=LL,interval=c(0,1))
> ans2
$minimum
[1] 6.610696e-05
$objective
[1] -962.4322
>
J Nash
More information about the R-help
mailing list