我正在使用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/

10-11 07:49