mape: Mean absolute percentage error (MAPE)

View source: R/mape.R

mapeR Documentation

Mean absolute percentage error (MAPE)

Description

The function mape computes the mean absolute percentage error when \textbf{\textit{y}} materialises and \textbf{\textit{x}} is the prediction.

Mean absolute percentage error is a realised score corresponding to the absolute percentage error scoring function aperr_sf.

Usage

mape(x, y)

Arguments

x

Prediction. It can be a vector of length n (must have the same length as \textbf{\textit{y}}).

y

Realisation (true value) of process. It can be a vector of length n (must have the same length as \textbf{\textit{x}}).

Details

The mean absolute pecentage error is defined by:

S(\textbf{\textit{x}}, \textbf{\textit{y}}) := (1/n) \sum_{i = 1}^{n} L(x_i, y_i)

where

\textbf{\textit{x}} = (x_1, ..., x_n)^\mathsf{T}

\textbf{\textit{y}} = (y_1, ..., y_n)^\mathsf{T}

and

L(x, y) := |(x - y)/y|

Domain of function:

\textbf{\textit{x}} > \textbf{0}

\textbf{\textit{y}} > \textbf{0}

where

\textbf{0} = (0, ..., 0)^\mathsf{T}

is the zero vector of length n and the symbol > indicates pairwise inequality.

Range of function:

S(\textbf{\textit{x}}, \textbf{\textit{y}}) \geq 0, \forall \textbf{\textit{x}}, \textbf{\textit{y}} > \textbf{0}

Value

Value of the mean absolute percentage error.

Note

For details on the absolute percentage error scoring function, see aperr_sf.

The concept of realised (average) scores is defined by Gneiting (2011) and Fissler and Ziegel (2019).

The mean absolute percentage error is the realised (average) score corresponding to the absolute percentage error scoring function.

References

Fissler T, Ziegel JF (2019) Order-sensitivity and equivariance of scoring functions. Electronic Journal of Statistics 13(1):1166–1211. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1214/19-EJS1552")}.

Gneiting T (2011) Making and evaluating point forecasts. Journal of the American Statistical Association 106(494):746–762. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1198/jasa.2011.r10138")}.

Examples

# Compute the mean absolute percentage error.

set.seed(12345)

x <- 0.5

y <- rlnorm(n = 100, mean = 0, sdlog = 1)

print(mape(x = x, y = y))

print(mape(x = rep(x = x, times = 100), y = y))

scoringfunctions documentation built on April 4, 2025, 12:28 a.m.