如何使用这些数据预测下个月的销售额
how to predict next month sales using this data
这是 csv 文件数据(我在下面使用的每日销售额 predict.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))
})
这是问题的解决方案,您可以使用 (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
这是 csv 文件数据(我在下面使用的每日销售额 predict.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))
})
这是问题的解决方案,您可以使用 (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