我正在使用accuracy
包中的forecast
函数来计算准确性度量。我正在使用它来计算拟合的时间序列模型的度量,例如ARIMA或指数平滑。
当我在不同维度和聚合级别上测试不同的模型类型时,我使用的是Hyndman等人(2006年,“另一种看待预测准确性的方法”)引入的MASE(平均绝对比例误差),以比较不同的模型在不同的水平上。
现在,我还将比较模型和预测历史记录。由于我只有预测值,而没有模型,因此我尝试使用accuracy
函数。在功能说明中提到,还可以提供两个向量参数(一个带有预测值,一个带有实际值)来计算度量(而不是拟合模型):
但是令我感到惊讶的是,所有措施均已归还,请期待MASE。所以我想知道是否有人知道原因是什么?在accuracy
函数中使用两个向量作为参数时,为什么不返回MASE?
最佳答案
MASE需要历史数据来计算比例因子。它不是根据@FBE的答案从将来的数据中计算出来的。因此,如果您不将历史数据传递给accuracy()
,则无法计算MASE。例如,
> library(forecast)
> fcast <- snaive(window(USAccDeaths,end=1977.99))
> accuracy(fcast$mean,USAccDeaths)
ME RMSE MAE MPE MAPE ACF1
225.1666667 341.1639391 259.5000000 2.4692164 2.8505546 0.3086626
Theil's U
0.4474491
但是,如果传递整个
fcast
对象(包括历史数据),则会得到> accuracy(fcast,USAccDeaths)
ME RMSE MAE MPE MAPE MASE
225.1666667 341.1639391 259.5000000 2.4692164 2.8505546 0.5387310
ACF1 Theil's U
0.3086626 0.4474491
关于r - 预测准确性: no MASE with two vectors as arguments,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11092536/