I would like to parse the MAE (Mean Absolute Error) to a percentage value. I know there is the MAPE (Mean Absolute Percentage Error), however it has some drawbacks as going to infinity if one of my values is zero. I had the idea of dividing the MAE by the average of my values, but I could not find any reference on that.

The formula I intended to use is the following, having $y$ as the real value and $\bar y$ as the prediction:

$\frac{MAE}{AVG(y)} = \frac{\frac{\lvert y_1 -\bar y_1\rvert + \lvert y_2 -\bar y_2\rvert}{n}}{\frac{\lvert y_1 + y_2\rvert}{n}} = \frac{\lvert y_1 -\bar y_1\rvert + \lvert y_2 -\bar y_2\rvert}{\lvert y_1 + y_2\rvert} = \sum{\frac{\lvert y -\bar y\rvert}{\sum{\lvert y\rvert}}}$

Using this, the percentage Error could only get to infinity if all y values are 0 which will never happen in my dataset. Please note that I cannot have negative Values for $y$ and $\bar y$ in my dataset, so the difference will always be the true difference.

In the end I want to say for example: "the average error in my prediction is 10%"

Does anyone have any sources that this was done before? Is there some serious drawbacks to it or do I overlook anything?


Shameless piece of self-promotion: Kolassa & Schütz (2007, Foresight) call this quantity the "MAD/Mean" or "weighted MAPE" (because it is) and discuss it.

As to drawbacks, the wMAPE, as a scaled MAD, will reward biased forecasts if your future distribution is asymmetrical, just like the "plain" MAD (Kolassa, 2019, IJF).

(Yes, I do have a thing for forecast accuracy measures.)

Feel free to ping me for the papers on ResearchGate.

  • 1
    $\begingroup$ Hi Stephan, thank you so much for leading me in the right direction. I messaged you on ResearchGate. $\endgroup$ – Michael Villani Sep 4 '19 at 15:31
  • $\begingroup$ Upvoted for the excellent utility of the answer. $\endgroup$ – James Phillips Sep 4 '19 at 16:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.