mpe {yardstick} | R Documentation |
Mean percentage error
Description
Calculate the mean percentage error. This metric is in relative
units. It can be used as a measure of the estimate
's bias.
Note that if any truth
values are 0
, a value of:
-Inf
(estimate > 0
), Inf
(estimate < 0
), or NaN
(estimate == 0
)
is returned for mpe()
.
Usage
mpe(data, ...)
## S3 method for class 'data.frame'
mpe(data, truth, estimate, na_rm = TRUE, case_weights = NULL, ...)
mpe_vec(truth, estimate, na_rm = TRUE, case_weights = NULL, ...)
Arguments
data |
A |
... |
Not currently used. |
truth |
The column identifier for the true results
(that is |
estimate |
The column identifier for the predicted
results (that is also |
na_rm |
A |
case_weights |
The optional column identifier for case weights. This
should be an unquoted column name that evaluates to a numeric column in
|
Value
A tibble
with columns .metric
, .estimator
,
and .estimate
and 1 row of values.
For grouped data frames, the number of rows returned will be the same as the number of groups.
For mpe_vec()
, a single numeric
value (or NA
).
Author(s)
Thomas Bierhance
See Also
Other numeric metrics:
ccc()
,
huber_loss_pseudo()
,
huber_loss()
,
iic()
,
mae()
,
mape()
,
mase()
,
msd()
,
poisson_log_loss()
,
rmse()
,
rpd()
,
rpiq()
,
rsq_trad()
,
rsq()
,
smape()
Other accuracy metrics:
ccc()
,
huber_loss_pseudo()
,
huber_loss()
,
iic()
,
mae()
,
mape()
,
mase()
,
msd()
,
poisson_log_loss()
,
rmse()
,
smape()
Examples
# `solubility_test$solubility` has zero values with corresponding
# `$prediction` values that are negative. By definition, this causes `Inf`
# to be returned from `mpe()`.
solubility_test[solubility_test$solubility == 0, ]
mpe(solubility_test, solubility, prediction)
# We'll remove the zero values for demonstration
solubility_test <- solubility_test[solubility_test$solubility != 0, ]
# Supply truth and predictions as bare column names
mpe(solubility_test, solubility, prediction)
library(dplyr)
set.seed(1234)
size <- 100
times <- 10
# create 10 resamples
solubility_resampled <- bind_rows(
replicate(
n = times,
expr = sample_n(solubility_test, size, replace = TRUE),
simplify = FALSE
),
.id = "resample"
)
# Compute the metric by group
metric_results <- solubility_resampled %>%
group_by(resample) %>%
mpe(solubility, prediction)
metric_results
# Resampled mean estimate
metric_results %>%
summarise(avg_estimate = mean(.estimate))