[R] fit to spike with exponential decay : optim() question
Prof Brian D Ripley
ripley at stats.ox.ac.uk
Sat Dec 15 08:30:33 CET 2001
On Fri, 14 Dec 2001, Robert D. Merithew wrote:
>
> I finally got (mostly) what I wanted. In an attempt to figure out how to
> get nls to deal with a non-differentiable function, I had (stupidly)
> 'simplified' the problem until it became singular.
>
> Can I do something to make optim() less sensitive to my initial guess? For
> this example, I get a lousy solution if I make the initial guess for t0 =
> min(t) = 0.05.
1) Give it derivatives
2) Use a different method, such as BFGS.
3) Scale the problem as described in help(optim): not that yours seems
badly scaled, but I would optimize the mean square in larger problems.
Recovering from lousy information is not what optimizers are designed for,
though.
>
> Thanks again,
> --
> Robert Merithew
> LASSP, Clark Hall
> Cornell University, Ithaca NY
>
>
> -----------
>
> t <- c(0.05,0.9,1.4,2.38,3.42,5.4,8.31,12.4)
> amp <- c(1.0,0.85,7.4, 6.1, 4.95, 3.5, 2.3, 1.5)
>
> spike <- function (x, t) {
> b0 <- x[1]
> b1 <- x[2]
> tau <- x[3]
> t0 <- x[4]
>
> temp <- exp((-t+t0)/tau)
> (b0 + (b1 * temp) * (t > t0))
> }
>
> spike.sos <- function (x) {
> sum((amp - spike(x, t))^2)
> }
>
> guess <- c(min(amp), max(amp)-min(amp), (max(t)-min(t))/3, 0)
>
> decay.opt <- optim(guess, spike.sos, control=list(trace=T))
>
> xr <- (0:140)/10
> plot (xr, spike(decay.opt$par, xr), type="l", col="blue")
> points (t, amp)
>
> --------
>
>
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272860 (secr)
Oxford OX1 3TG, UK Fax: +44 1865 272595
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list