[R] Issue with batch forecasting of Time series data

Manish Mukherjee m@ni@hmukherjee @ending from hotm@il@com
Fri Jun 1 19:20:50 CEST 2018


Hi,


i have a weekly data for servers for 62 weeks. want to predict the cpu% for next 5 weeks.I am trying to forecast for many servers at once but with the code i am getting only one week of future forecast for all the servers. Also the week date for the predicted week is showing as the last week of the original data . Need help in two things How can i change the date for the predicted  week, and  how can i predict for more than one week.


R code.

input_data <- read.csv("input.csv", header= TRUE)
head(input_data)
str(input_data)
library("forecast")
library("DBI")
library("RPostgreSQL")
library("lubridate")
Products = unique(input_data["Server.Name"][,])
output = matrix(0,nrow=(length(Products)*(1)),ncol=7)
colnames(output) =

  c(
    "Product",
    "DATE",
    "Forecast",
    "Lo_80",
    "Hi_80 ",
    "Lo_95",
    "Hi_95"
  )

for (i in Products) {

 train = head(input_data["PERCENT_USED"][input_data["Server.Name"]==i] , 90)

  train     = ts(train[1:(length(train))])

  fc1 = auto.arima(train)
  pred1 = forecast( fc1)
  fit1_acry   = accuracy(pred1)
  fc2 = ets(train)
  pred2 = forecast( fc2 )
  fit2_acry = accuracy(pred2 )

  MAPE = data.frame ( fit1_MAPE = fit1_acry[,'MAPE'],
                       fit2_MAPE = fit2_acry[,'MAPE']
  )

  best =  which.min(MAPE)

  BestModel = get(paste('fc',best,sep=""))

  forecastoutput = rbind(data.frame(forecast(BestModel, h=1)) )
  forecast_date = rbind(tail(input_data["DATE"][input_data["Server.Name"]==i],(1)))
  row_index = which(Products==i)

  output[row_index,1]   = i
  output[row_index,2]   = forecast_date
  output[row_index,3]   = (round(forecastoutput$Point.Forecast,2))
  output[row_index,4]   = as.numeric(round(forecastoutput$Lo.80,2))
  output[row_index,5]   = as.numeric(round(forecastoutput$Hi.80,2))
  output[row_index,6]   = as.numeric(round(forecastoutput$Lo.95,2))
  output[row_index,7] = as.numeric(round(forecastoutput$Hi.95,2))
  output_onestep = data.frame(output)

}
output_onestep



	[[alternative HTML version deleted]]



More information about the R-help mailing list