> On 14 Nov 2015, at 16:15, Lorenzo Isella <lorenzo.ise...@gmail.com> wrote: > > 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 >
The initial parameter values for the percentage error variant are not very good. If you print min.perc_error(data,par_ini2) you can see that. Try par_ini2 <- c(1e-4,1e-4,1e-4) and you'll get results that are closer to each other. The rest is up to you. Berend > 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. ______________________________________________ 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.