Zebouni, Stephane (Exchange)
2006-Mar-14 14:41 UTC
[R] problem with optim: (list) object cannot be coerced to 'double'
Hi, I am trying to use optim to solve a heavy calibration problem. I supply the parameters in vector form. But before entering my target The call is simply: optim(par = parameters, fn = SumLSQ, method = "Nelder-Mead") the function SumLSQ is simply: SumLSQ<-function(parameters, data = timeseries){ print("sumLSQ") nbseries = dim(timeseries)[2]/3 SumLSQ = 0 for (i in (1:nbseries)){ SumLSQ = SumLSQ + LSQ(parameters,timeseries[,((i-1)*3+1):(i*3)]) } } I actually never enter the objective function SumLSQ. I always receive the error: (list) object cannot be coerced to 'double' And I really don't know where it comes from. II thought it was the format of "par" argument but I think it is correct to supply a numerical vector ... Thnaks a lot for any help! Stephane -------------- next part -------------- *********************************************************************** Bear Stearns is not responsible for any recommendation, solicitation, offer or agreement or any information about any transaction, customer account or account activity contained in this communication. ***********************************************************************
Uwe Ligges
2006-Mar-14 15:17 UTC
[R] problem with optim: (list) object cannot be coerced to 'double'
Zebouni, Stephane (Exchange) wrote:> Hi, > > > > I am trying to use optim to solve a heavy calibration problem. I supply > the parameters in vector form. But before entering my target > > > > The call is simply: > > > > optim(par = parameters, fn = SumLSQ, method = "Nelder-Mead") > > > > the function SumLSQ is simply: > > > > SumLSQ<-function(parameters, data = timeseries){ > > > > print("sumLSQ") > > > > > > nbseries = dim(timeseries)[2]/3 > > > > SumLSQ = 0 > > > > for (i in (1:nbseries)){ > > SumLSQ = SumLSQ + > LSQ(parameters,timeseries[,((i-1)*3+1):(i*3)]) > > } > > > > } > > > > I actually never enter the objective function SumLSQ. I always receive > the error: > > > > (list) object cannot be coerced to 'double' > > > > And I really don't know where it comes from. II thought it was the > format of "par" argument but I think it is correct to supply a numerical > vector ...Yes, it is. Please type str(parameters) an tell us the result. Uwe Ligges> > > > Thnaks a lot for any help! > > > > Stephane > > > > > > > > ------------------------------------------------------------------------ > > > > *********************************************************************** > Bear Stearns is not responsible for any recommendation, solicitation, > offer or agreement or any information about any transaction, customer > account or account activity contained in this communication. > *********************************************************************** > > > > ------------------------------------------------------------------------ > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Zebouni, Stephane (Exchange)
2006-Mar-14 15:53 UTC
[R] problem with optim: (list) object cannot be coerced to 'double'
Here is what I get using str(parameters): num [1:120] 0.2000 -0.0166 0.0934 -0.0300 -0.3219 ... again, it doesn't even get into the objective function - I checked that Many thanks Stephane -----Original Message----- From: Uwe Ligges [mailto:ligges at statistik.uni-dortmund.de] Sent: 14 March 2006 15:18 To: Zebouni, Stephane (Exchange) Cc: r-help at stat.math.ethz.ch Subject: Re: [R] problem with optim: (list) object cannot be coerced to 'double' Zebouni, Stephane (Exchange) wrote:> Hi,>>>> I am trying to use optim to solve a heavy calibration problem. Isupply> the parameters in vector form. But before entering my target>>>> The call is simply:>>>> optim(par = parameters, fn = SumLSQ, method = "Nelder-Mead")>>>> the function SumLSQ is simply:>>>> SumLSQ<-function(parameters, data = timeseries){>>>> print("sumLSQ")>>>>>> nbseries = dim(timeseries)[2]/3>>>> SumLSQ = 0>>>> for (i in (1:nbseries)){>> SumLSQ = SumLSQ +> LSQ(parameters,timeseries[,((i-1)*3+1):(i*3)])>> }>>>> }>>>> I actually never enter the objective function SumLSQ. I always receive> the error:>>>> (list) object cannot be coerced to 'double'>>>> And I really don't know where it comes from. II thought it was the> format of "par" argument but I think it is correct to supply anumerical> vector ...Yes, it is. Please type str(parameters) an tell us the result. Uwe Ligges>>>> Thnaks a lot for any help!>>>> Stephane>>>>>>>>------------------------------------------------------------------------>>>>***********************************************************************> Bear Stearns is not responsible for any recommendation, solicitation,> offer or agreement or any information about any transaction, customer> account or account activity contained in this communication.>***********************************************************************>>>>------------------------------------------------------------------------>> ______________________________________________> R-help at stat.math.ethz.ch mailing list> https://stat.ethz.ch/mailman/listinfo/r-help> PLEASE do read the posting guide!http://www.R-project.org/posting-guide.html -------------- next part -------------- *********************************************************************** Bear Stearns is not responsible for any recommendation, solicitation, offer or agreement or any information about any transaction, customer account or account activity contained in this communication. ***********************************************************************