预测模型(如 ARIMA 或 SARIMA)训练完成后,需要量化 (quantization)其表现。仅凭查看图表通常不足以进行客观比较或报告。评估指标提供了一种标准方法,用来衡量模型预测值与测试数据集中实际观测值之间的接近程度。这些指标关注预测误差,即在每个时间点 i i i 处实际值 (A c t u a l i Actual_i A c t u a l i ) 与预测值 (F o r e c a s t i Forecast_i F orec a s t i ) 之间的差异。
接下来,我们分析时间序列预测中常用的四种指标。
平均绝对误差 (MAE)
平均绝对误差,即 M A E MAE M A E ,表示预测值与实际值之间平均绝对差值。它告诉您,您的预测与实际结果平均偏离了多少,不考虑误差的方向(无论是预测过高还是过低)。
公式为:
M A E = 1 n ∑ i = 1 n ∣ 实际 值 i − 预测 值 i ∣ MAE = \frac{1}{n} \sum_{i=1}^{n} |实际值_i - 预测值_i| M A E = n 1 ∑ i = 1 n ∣ 实际 值 i − 预测 值 i ∣
其中 n n n 是评估期(例如测试集)中的时间点数量。
解释: M A E MAE M A E 的单位与原始时间序列数据的单位相同。例如,如果您预测的是每日美元销售额,M A E MAE M A E 为 50 意味着您的预测平均误差为 50 美元。
优点:
它容易理解和解释。
其单位在原始数据背景下是可解释的。
与对误差进行平方的指标相比,它对较大的单个误差(异常值)不那么敏感。
缺点:
它线性处理所有误差,这意味着误差为 10 被认为比误差为 5 差两倍。这可能无法反映在较大误差导致成本不成比例高昂的情况下对业务的影响。
均方误差 (MSE)
均方误差,即 M S E MSE MSE ,计算预测值与实际值之间平方差的平均值。通过对误差进行平方,它对较大误差赋予明显更多的权重 (weight),而不是较小误差。
公式为:
M S E = 1 n ∑ i = 1 n ( 实际 值 i − 预测 值 i ) 2 MSE = \frac{1}{n} \sum_{i=1}^{n} (实际值_i - 预测值_i)^2 MSE = n 1 ∑ i = 1 n ( 实际 值 i − 预测 值 i ) 2
解释: M S E MSE MSE 以原始数据单位的平方 来衡量(例如,如果预测销售额,则为美元的平方)。这使得其直接解释性不如 M A E MAE M A E 直观。较低的 M S E MSE MSE 表示拟合效果更好,但其数值本身更难直接与数据尺度联系起来。
优点:
它强烈惩罚大误差,如果大错误特别成问题,这会比较理想。
平方操作使其在数学上对某些优化算法来说比较方便(尽管这在模型训练期间比评估时更相关)。
缺点:
其单位(原始数据的平方单位)使其难以直接解释。
它对异常值高度敏感。少数大误差就能主导 M S E MSE MSE 值。
均方根误差 (RMSE)
均方根误差,即 R M S E RMSE RMSE ,就是 M S E MSE MSE 的平方根。通过取平方根,它将误差指标恢复到原始数据单位,从而解决了 M S E MSE MSE 的主要解释问题。
公式为:
R M S E = M S E = 1 n ∑ i = 1 n ( 实际 值 i − 预测 值 i ) 2 RMSE = \sqrt{MSE} = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (实际值_i - 预测值_i)^2} RMSE = MSE = n 1 ∑ i = 1 n ( 实际 值 i − 预测 值 i ) 2
解释: 与 M A E MAE M A E 一样,R M S E RMSE RMSE 的单位与原始时间序列数据的单位相同。对每日销售额预测而言,55 的 R M S E RMSE RMSE 意味着误差的典型大小约为 55 美元。由于它源自平方误差,R M S E RMSE RMSE 将始终大于或等于 M A E MAE M A E 。R M S E RMSE RMSE 和 M A E MAE M A E 之间的差异可以表示单个误差的方差;差异越大表明存在一些对 R M S E RMSE RMSE 影响不成比例的较大误差。
优点:
它具有可解释的单位(与原始数据相同)。
它仍然比惩罚较小误差更严厉地惩罚较大误差,与 M S E MSE MSE 相似。
缺点:
它仍然对异常值敏感,尽管与 M S E MSE MSE 相比,平方根运算略微缓解了这一点。
平均绝对百分比误差 (MAPE)
平均绝对百分比误差,即 M A P E MAPE M A PE ,计算平均绝对误差占实际值的百分比。这使其成为一个相对衡量指标,独立于数据尺度。
公式为:
M A P E = 1 n ∑ i = 1 n ∣ 实际 值 i − 预测 值 i 实际 值 i ∣ × 100 % MAPE = \frac{1}{n} \sum_{i=1}^{n} \left| \frac{实际值_i - 预测值_i}{实际值_i} \right| \times 100\% M A PE = n 1 ∑ i = 1 n 实际 值 i 实际 值 i − 预测 值 i × 100%
解释: M A P E MAPE M A PE 以百分比形式表示平均误差。10% 的 M A P E MAPE M A PE 意味着,预测平均偏离实际值的 10%。这对于比较不同尺度时间序列的预测准确性(例如,预测高销量产品与低销量产品的销售额)非常有用。
优点:
它与尺度无关,允许在不同数据集或项目之间进行比较。
它以百分比形式表示,这对于业务相关人员来说通常很直观。
缺点:
如果任何实际值为零(A c t u a l i = 0 Actual_i = 0 A c t u a l i = 0 ),它会产生无限大或未定义的值。
当实际值非常接近零时,它可能不可靠或出现严重偏差。
它对高于实际值的预测所施加的惩罚,比对低于实际值但绝对误差相同的预测更重。例如,如果实际值=100,预测值=150,误差为 ∣ ( 100 − 150 ) / 100 ∣ |(100-150)/100| ∣ ( 100 − 150 ) /100∣ = 50%。如果实际值=100,预测值=50,误差为 ∣ ( 100 − 50 ) / 100 ∣ |(100-50)/100| ∣ ( 100 − 50 ) /100∣ = 50%。但如果实际值=10,预测值=15,误差为 ∣ ( 10 − 15 ) / 10 ∣ |(10-15)/10| ∣ ( 10 − 15 ) /10∣ = 50%;而如果实际值=10,预测值=5,误差为 ∣ ( 10 − 5 ) / 10 ∣ |(10-5)/10| ∣ ( 10 − 5 ) /10∣ = 50%。这里的对称性似乎没问题,让我们重新考虑。问题在于当考虑百分比 误差时存在不对称性。如果实际值=100,预测值=150(误差=50),MAPE项是 50%。如果实际值=100,预测值=50(误差=-50),MAPE项是 50%。如果实际值=10,预测值=20(误差=10),MAPE项是 ∣ ( 10 − 20 ) / 10 ∣ |(10-20)/10| ∣ ( 10 − 20 ) /10∣ =100%。如果实际值=10,预测值=0(误差=-10),MAPE项是 ∣ ( 10 − 0 ) / 10 ∣ |(10-0)/10| ∣ ( 10 − 0 ) /10∣ =100%。如果实际值=200,预测值=100(误差=-100),MAPE项是 ∣ ( 200 − 100 ) / 200 ∣ |(200-100)/200| ∣ ( 200 − 100 ) /200∣ =50%。如果实际值=100,预测值=0(误差=-100),MAPE项是 ∣ ( 100 − 0 ) / 100 ∣ |(100-0)/100| ∣ ( 100 − 0 ) /100∣ =100%。它倾向于偏爱低估预测的模型,而非高估预测的模型,因为误差除以了实际值。
误差可视化
指标提供单一数值概括,但将预测值与实际值进行可视化有助于了解模型表现不佳的地方 。
一个简单图表,比较了测试期内的实际值与模型预测值。每一点上线条之间的垂直距离表示指标所概括的误差。
选择合适的指标
没有单一的“最佳”指标适用于所有情况。选择取决于您的具体目标和数据特点:
如果您需要一个在原始单位下易于解释的指标,并且大误差并非不成比例地比小误差更糟糕,请使用 MAE 。
如果您需要一个在原始单位下可解释的指标,但需要更严厉地惩罚大误差,请使用 RMSE 。它是回归和预测任务中非常常用的指标。
主要是在其数学特性有利时(例如在优化场景中)使用 MSE ,但请注意其解释性问题和对异常值的敏感性。
如果您需要一个尺度无关的衡量指标来跨不同序列进行比较,或者百分比误差与相关方最相关,请使用 MAPE 。但是,如果您的数据包含零或接近零的值,请谨慎使用它。
通常,报告多个指标(例如 MAE 和 RMSE)有助于提供关于预测准确性和误差特点的更全面情况。在同一测试集上比较不同模型时,持续使用所选指标可以客观评估哪个模型根据该特定标准表现更好。