Dear All,
I am using optim() for a relatively simple task: a linear model where
instead of minimizing the sum of the squared errors, I minimize the sum
of the squared relative errors.
However, I notice that the default algorithm is very sensitive to the
choice of the initial fit parameters, whereas I get much more stable
(and therefore better?) results with the BFGS algorithm.
I would like to have some feedback on this (perhaps I made a mistake
somewhere).
I provide a small self-contained example.
You can download a tiny data set from the link

https://www.dropbox.com/s/tmbj3os4ev3d4y8/data-instability.csv?dl=0

whereas I paste the script I am using at the end of the email.
Any feedback is really appreciated.
Many thanks

Lorenzo

################################################################

min.perc_error <- function(data, par) {
             with(data, sum(((par[1]*x1 + par[2]*x2+par[3]*x3 -
             y)/y)^2))
                           }

par_ini1 <- c(.3,.1, 1e-3)

par_ini2 <- c(1,1, 1)


data <- read.csv("data-instability.csv")

mm_def1 <-optim(par = par_ini1
                   , min.perc_error, data = data)

mm_bfgs1 <-optim(par = par_ini1
                   , min.perc_error, data = data, method="BFGS")

print("fit parameters with the default algorithms and the first seed
")
print(mm_def1$par)

print("fit parameters with the BFGS algorithms and the first seed  ")
print(mm_bfgs1$par)



mm_def2 <-optim(par = par_ini2
                   , min.perc_error, data = data)

mm_bfgs2 <-optim(par = par_ini2
                   , min.perc_error, data = data, method="BFGS")




print("fit parameters with the default algorithms and the second seed
")
print(mm_def2$par)

print("fit parameters with the BFGS algorithms and the second seed  ")
print(mm_bfgs2$par)

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to