以下平均绝对百分比误差 MAPE 的计算是否正确?
我已经包含了一个可行的示例,但真正有问题的行是这些:
result <- (((actual-predicted)/actual)-1)*100
result.mean <- rowMeans(result, na.rm = TRUE)
我知道这是一个简单的问题,但我很想把它做好,任何见解都将不胜感激。
library(forecast)
library(vars)
x <- rnorm(70)
y <- rnorm(70)
dx <- cbind(x,y)
dx <- as.ts(dx)
# Forecast Accuracy
j = 12 # Forecast horizon
k = nrow(dx)-j # length of minimum training set
predicted <- do.call(rbind, lapply(1:j, function(i){
trainingset <- window(dx, end = k+i-1)
fit <- VAR(trainingset, p = 2)
fcast <- forecast(fit, h = j-i+1)
`length<-`(fcast$mean$x, j)
}))
actual <- do.call(rbind, lapply(1:j, function(i){
actual <- window(dx[,1], start = k+i, end = k+j)
`length<-`(actual, j)
}))
result <- (((actual-predicted)/actual)-1)*100
result.mean <- rowMeans(result, na.rm = TRUE)
plot(result.mean, type = "l")
MAPE <- mean(result.mean)
MAPE