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
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.