mape | R Documentation |

This function computes the mean absolute percent error (MAPE).

```
mape(predicted, observed, na.rm = FALSE)
```

`predicted` |
numeric vector that contains the predicted data points (1st parameter) |

`observed` |
numeric vector that contains the observed data points (2nd parameter) |

`na.rm` |
logical vector that determines whether the missing values should be removed or not. |

MAPE is expressed as

`\frac{1}{n} \sum \limits_{i=1}^n{ 100 \frac{\left| X_i - Y_i \right|} {X_i}}`

*n*the number of observations

*X*the observations

*Y*the predictions

Below are some points to remember about MAPE from the Ji reference:

MAPE is "a measure to validate forecast models",

MAPE is "a standardized value and is independent of the unit of the measurement",

MAPE is "meaningful only if all

`X_i`

values are positive",MAPE is "unstable when

`X_i`

values are near zero", and"If X and Y are interchanged, the MAPE will result in a different value."

mean absolute percent error (MAPE) as a numeric vector. The default
choice is that any NA values will be kept (`na.rm = FALSE`

). This can be
changed by specifying `na.rm = TRUE`

, such as `mape(pre, obs, na.rm = TRUE)`

.

Lei Ji and Kevin Gallo, "An Agreement Coefficient for Image Comparison", *Photogrammetric Engineering & Remote Sensing*, Vol. 72, No. 7, July 2006, p. 823-8335, https://www.ingentaconnect.com/content/asprs/pers/2006/00000072/00000007/art00006.

`mae`

for mean-absolute error (MAE), `madstat`

for
mean-absolute deviation (MAD), `dr`

for "index of agreement (dr)", `vnse`

for Nash-Sutcliffe model efficiency (NSE), and `rmse`

for
root mean square error (RMSE).

```
library("ie2misc")
obs <- 1:10 # observed
pre <- 2:11 # predicted
mape(pre, obs)
library("rando")
set_n(100) # makes the example reproducible
obs1 <- r_norm(.seed = 109) # observed
pre1 <- r_norm(.seed = 124) # predicted
# using the vectors pre1 and obs1
mape(pre1, obs1)
# using a matrix of the numeric vectors pre1 and obs1
mat1 <- matrix(data = c(obs1, pre1), nrow = length(pre1), ncol = 2,
byrow = FALSE, dimnames = list(c(rep("", length(pre1))),
c("Predicted", "Observed")))
mape(mat1[, 2], mat1[, 1])
# mat1[, 1] # observed values from column 1 of mat1
# mat1[, 2] # predicted values from column 2 of mat1
# using a data.frame of the numeric vectors pre1 and obs1
df1 <- data.frame(obs1, pre1)
mape(df1[, 2], df1[, 1])
# df1[, 1] # observed values from column 1 of df1
# df1[, 2] # predicted values from column 2 of df1
library("data.table")
# using a data.table of the numeric vectors pre1 and obs1
df2 <- data.table(obs1, pre1)
mape(df2[, 2, with = FALSE][[1]], df2[, 1, with = FALSE][[1]])
# df2[, 1, with = FALSE][[1]] # observed values from column 1 of df2
# df2[, 2, with = FALSE][[1]] # predicted values from column 2 of df2
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.