tedzxx asked about apparent multiple optima. See below.
Users should be aware that optim() does local optimization. The default
Nelder-Mead approach is fairly robust at finding such a local minimum, though
it may halt if it is on a flat area of the loss function surface. I would
recommend trying one of the BFGS codes (they use somewhat different approaches)
and look at the gradient information. With only 3 parameters, these should work
fine. There is also another package (I forget the name -- someone?) that does
full Newton with Hessian computed. That may be worth using to get more complete
information about your problem.
tedzxx: If you send me the data off-list (maybe also include the function again to save me digging it up again), I'll try to provide more information.
John Nash
Date: Thu, 27 Nov 2008 23:30:56 -0800 (PST)
From: tedzzx <[EMAIL PROTECTED]>
Subject: [R] optimization problem
To: r-help@r-project.org
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=UTF-8
I am facing an optimization problem. I am using the function optim(par,fun),
but I find that every time I give different original guess parameter, I can
get different result. For example
I have a data frame named data:
head(data)
price s x t
1 1678.0 12817 11200 0.1495902
2 1675.5 12817 11200 0.1495902
3 1678.0 12817 11200 0.1495902
4 1688.0 12817 11200 0.1495902
5 1677.0 12817 11200 0.1495902
6 1678.5 12817 11200 0.1495902
??.
f<-function(p,...){
v=exp(p[1]+p[2]*(x/s)+p[3]*(x/s)2)
d1=(log(s/x)+(v2)*t/2)/(v*sqrt(t))
d2=(log(s/x)-(v2)*t/2)/(v*sqrt(t))
sum((price-(s*pnorm(d1)-x*pnorm(d2)))2)
}
p=c(-0.1,-0.1,0.01)
optim(par=p,f) # use the default algorism
I have other different original estimes, It also show me different result.
Why?
Thanks.
______________________________________________
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.