On Fri, Jun 25, 2010 at 1:54 PM, Paul Hiemstra <p.hiems...@geo.uu.nl> wrote:
> On 06/25/2010 10:02 AM, phani kishan wrote: > >> Hey, >> I have a data frame x which consists of say 10 vectors. I essentially want >> to find out the best fit exponential smoothing for each of the vectors. >> >> The problem while I'm getting results when i say >> >> >>> lapply(x,ets) >>> >>> >> I am getting an error when I say >> >> >>> myprint >>>> >>>> >>> function(x) >> { >> for(i in 1:length(x)) >> { >> ets(x[i],model="AZZ",opt.crit=c("amse")) >> >> > Hi, > > Please provide a reproducible example, as stated in the posting guide. My > guess is that replacing x[i] by x[[i]] would solve the problem. Double > brackets return a vector in stead of a data.frame that has just column i. > Hey Paul, As requested. My example data frame sdata: SKU1 SKU2 SKU3 SKU4 1 583.8 574.6 1106.9 648.1 2 441.7 552.8 1021.3 353.6 3 454.2 555.7 998.3 306.4 4 569.7 507.6 811.1 360.7 5 512.3 620.0 1046.3 713.9 6 580.8 668.2 732.0 490.9 7 648.5 766.9 653.4 422.1 8 617.4 657.1 602.1 190.8 9 826.8 767.3 640.5 324.1 10 1163.0 657.6 429.6 181.1 11 643.5 788.9 569.1 331.9 12 846.9 568.6 425.1 224.6 13 580.7 582.9 434.2 226.9 now when I apply lapply(sdata,ets) I get a result as: $SKU1 ETS(A,N,N) Call: ets(y = x, model = "AZZ") Smoothing parameters: alpha = 0.3845 Initial states: l = 533.3698 sigma: 181.7615 AIC AICc BIC 172.6144 173.8144 173.7443 $SKU2 ETS(A,N,N) Call: ets(y = x, model = "AZZ") Smoothing parameters: alpha = 0.5026 Initial states: l = 567.821 sigma: 86.7074 AIC AICc BIC 153.3704 154.5704 154.5003 $SKU3 ETS(A,A,N) Call: ets(y = x, model = "AZZ") Smoothing parameters: alpha = 1e-04 beta = 1e-04 Initial states: l = 1189.2221 b = -64.3776 sigma: 85.4153 AIC AICc BIC 156.9800 161.9800 159.2398 $SKU4 ETS(A,A,N) Call: ets(y = x, model = "AZZ") Smoothing parameters: alpha = 1e-04 beta = 1e-04 Initial states: l = 566.9001 b = -27.8818 sigma: 127.2654 AIC AICc BIC 167.3475 172.3475 169.6073 Now when I run the same using: myfun<-function(x) { for(i in 1:length(x)) { ets(x[i]) > > } } I got the error as mentioned before. Now on modifying it to myfun<-function(x) { for(i in 1:length(x)) { return(ets(x[[i]]) } } I only got the output as ETS(A,N,N) Call: ets(y = x[[i]], model = "AZZ", opt.crit = c("amse")) Smoothing parameters: alpha = 0.3983 Initial states: l = 516.188 sigma: 181.8688 AIC AICc BIC 172.6298 173.8298 173.7597 I think its considering whole dataframe as a series. As said my objective it to essentially come up with a best exponential model for each of the SKU's in the dataframe. However I want to be able to extract information like mse, mape etc later. So kindly suggest. Thanks in advance, Phani > cheers, > Paul > > } >> } >> >> The error message is that* "Error in ets(x[i], model = "AZZ", opt.crit = >> c("amse")) : >> y should be a univariate time series"* >> >> Could someone please explain why this is happening? I also want to be able >> to extract data like coef's, errors (MAPE,MSE etc.) >> >> Thanks and regards, >> Phani >> >> > > > -- > Drs. Paul Hiemstra > Department of Physical Geography > Faculty of Geosciences > University of Utrecht > Heidelberglaan 2 > P.O. Box 80.115 > 3508 TC Utrecht > Phone: +3130 253 5773 > http://intamap.geo.uu.nl/~paul <http://intamap.geo.uu.nl/%7Epaul> > http://nl.linkedin.com/pub/paul-hiemstra/20/30b/770 > > -- A. Phani Kishan 3rd Year B.Tech Dept. of Computer Science & Engineering IIT MADRAS Ph: +919962363545 [[alternative HTML version deleted]] ______________________________________________ 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.