fcast_mean | actual_values
12,5 | 12,3
1,1 | 0
24,3 | 22,7
29,6 | 30,4
... | ...
我知道如果actual_value为零,MAPE是无限的,这就是我的情况!
我的问题是:在abs(actual_values - fcast$mean)/abs(actual_values)
等于Inf
的行中(在这种情况下是第2行)放0而不是Inf在数学上是错误的吗?
这种变化对MAPE计算有什么影响?
它不再是预测准确性的可靠指标吗?
我对MAPE的R代码部分是:
x <- abs(df$actual_values-df$fcast_mean)/abs(df$actual_values)
x[is.infinite(x)] <- 0
MAPE <- (1/nrow(df$actual_values))*(sum(x))*100
答案 0 :(得分:2)
您不能只将Inf
更改为0并期望结果有意义。无限MAPE是MAPE可能出现的问题之一。出现此问题时,请使用其他准确度量。
MASE是一种替代方法(平均绝对缩放误差),描述为here。
由于您使用的是R,accuracy
包中的forecast
函数可能会有用。