auto.arima MAPE即将成为无穷大

时间:2015-05-26 09:19:52

标签: r time-series forecasting

我有大约500家商店的每日销售数据。我试图使用R中的auto.arima函数来拟合ARIMA模型。但是每次运行代码时,我都会得到高达4000+或无穷大的MAPE。请帮我弄清楚我在哪里提交错误。

下面提到的是代码的片段

# SALES DATA

# Import the Raw Data
raw <- read.delim('clipboard', header=T)
raw.copy <- raw

class(raw) # data.frame
names(raw) # imported properly
sapply(raw, class) 

# Separate out the Dates column
dates <<- as.Date(raw$Dates, format="%m/%d/%y")
raw$Date <- NULL

# Put store sales in a list
storeSales <- lapply(raw, function(x) data.frame(Date=dates, Sales=ts(x, start=c(2012, 3), frequency=365)))

# Accessing data in the list
stats::plot.ts(storeSales[[1]]$Sales)

# -------------------------------------------------------------------

# AUTO ARIMA

# Write the function to retrieve autoArima predictions and MAPE values
wmArima <- function(df){ 
modArima <- auto.arima(df$Sales)
p <- predict(modArima, n.ahead=365)
m <- accuracy(modArima)[,'MAPE']
return(list(Predicted=p$pred, MAPE=m))
}

# Call the function and retrieve list of predictions + MAPE scores
ArimaResults <- lapply(storeSales[1:15], wmArima)

1 个答案:

答案 0 :(得分:1)

您是否尝试将结果可视化或查看真实/预测的销售额值?

这个问题可能有两种可能性:

  1. 您的销售价值为或接近于零,这将导致无限的MAPE
  2. 由于您的数据或其他因素,ARIMA正在进行疯狂的预测
  3. 最好首先消除第一种可能性,然后在第二种情况下来SO寻求帮助,一个可重复的小例子将非常有用。