как прогнозировать продажи в следующем месяце, используя эти данные - PullRequest
0 голосов
/ 25 октября 2018

это данные csv-файла (ежедневные продажи предикат.csv, которые я использовал ниже)

TOTAL     = c(198230142.89,129497034.78,186477295.56,118126147.20,
              140245618.01,110070803.09,70209156.29,131272373.74,144268706.02,
              21047760.22)
Monthname = c(1,2,3,4,5,6,7,8,9,10)

вот фрагмент кода, который я пробовал до сих пор

library(forecast)
#trying to predict next month sales(november)     

shinyServer(function(input, output, session) {

  mydat<- read.csv("daily sales predict.csv")
  predictmodelling=data_frame(

    Saledate=mydat$monthname,
    total=mydat$TOTAL
  )

  tData <- ts(predictmodelling$total,
              start=c(2018,1),
              frequency=12)

  Mod1 <- auto.arima(tData)
  summary(Mod1)
  print(Mod1)
  # 2 period forecast
  plot(forecast(Mod1, h=60))

})

1 Ответ

0 голосов
/ 25 октября 2018

Вот решение вопроса, вы можете поиграть с другими значениями (p, d, q) для большей точности.

x <- c(198230142.89,129497034.78,186477295.56,118126147.20,140245618.01,110070803.09,70209156.29,131272373.74,144268706.02,21047760.22)
df = data.frame(x)

ts_data = ts(df$x, start = c(2018,1), end = c(2018,10), frequency = 12)

plot(ts_data)

#this gives value for p

acf(ts_data)

#this gives value for q

pacf(ts_data)
# so we have p = 1, d = 1, q = 0

# differentiating the series one time only so d = 1

fit = arima(log(ts_data), c(1,1,0))

#here I am predicting for next 2 months

predicted_val = predict(fit, n.ahead = 1*2)

actual_val = 2.718^predicted_val$pred

print(actual_val)

49577035,33805119
...