Skip to contents

It estimates the SMAPE for a continuous predicted-observed dataset.

Usage

SMAPE(data = NULL, obs, pred, tidy = FALSE, na.rm = TRUE)

Arguments

data

(Optional) argument to call an existing data frame containing the data.

obs

Vector with observed values (numeric).

pred

Vector with predicted values (numeric).

tidy

Logical operator (TRUE/FALSE) to decide the type of return. TRUE returns a data.frame, FALSE returns a list; Default : FALSE.

na.rm

Logic argument to remove rows with missing values (NA). Default is na.rm = TRUE.

Value

an object of class numeric within a list (if tidy = FALSE) or within a data frame (if tidy = TRUE).

Details

The SMAPE (%) is a normalized, dimensionless, and bounded (0% to 200%). It is a modification of the MAPE where the denominator is half of the sum of absolute differences between observations and predictions. This modification solves the problem of MAPE of producing negative or undefined values. For the formula and more details, see online-documentation

References

Makridakis (1993). Accuracy measures: theoretical and practical concerns. Int. J. Forecast. 9, 527-529. doi:10.1016/0169-2070(93)90079-3

Examples

# \donttest{
set.seed(1)
X <- rnorm(n = 100, mean = 0, sd = 10)
Y <- X + rnorm(n=100, mean = 0, sd = 3)
SMAPE(obs = X, pred = Y)
#> $SMAPE
#> [1] 55.4614
#> 
# }