# How to Calculate SMAPE in R

Explanation
Calculate the symmetric mean absolute percentage error. This measure is in relative groups.

Management

smape(data, …)

## S3 approach for class ‘data.frame’
smape(data, truth, estimate, na_rm = TRUE, …)

smape_vec(truth, estimate, na_rm = TRUE, …)

Disputes

data
A data.frame including the truth and estimate columns.

Not currently utilized.

truth
The file identifier for the true outcomes (which is numeric). This should be an unquoted file name despite this dispute is passed by explanation and upholds quasiquotation (you may unquote file names). For _vec() actions, a numeric heading.

estimate
The file identifier for the approximated results (which is also numerical). As with truth this may be stated different ways however the primary approach is to utilize an unquoted variable label. For _vec() actions, a numeric vector.

na_rm
A legitimate value indicating if NA values must be deprived before the computation continues.

Details

This application of smape() is the “normal definition” as the denominator is split by two.

Amount

A tibble with lines .metric, .estimator, and .estimate and 1 row of amounts.

For unified data grids, the number of rows exchanged will be the exact as the amount of groups.

For smape_vec(), a lone numeric amount (or NA).

Examples

# Give truth and predict as bare column labels
smape(solubility_test, solubility, prediction)

library(dplyr)

set.seed(1234)
size : 100
times : 10

# develop 10 resamples
solubility_resampled : bind_rows(
replicate(
n = times,
expr = sample_n(solubility_test, size, replace = TRUE),
simplify = FALSE
),
.id = “resample”
)

# Calculate the metric by class
metric_results : solubility_resampled %>%
group_by(resample) %>%
smape(solubility, prediction)

metric_results

# Resampled mean measurement
metric_results %>%
summarise(avg_estimate = mean(.estimate))

How to Compute SMAPE in R?, SMAPE identifies the symmetric mean absolute percentage error.SMAPE is mainly utilized to measure the predictive certainty of models.

Analytical formula is
SMAPE = (1/n) * Σ(|forecast – certain / ((|certain| + |forecast|)/2) * 100

where:

Σ shows “sum”

n – shows sample size

actual – shows the certain grid value

forecast – shows the forecasted grid value

How to execute ANCOVA in R » Quick Guide »

When referring to inference identical to other cases, the lower the value for SMAPE the greater the predictive certainty of a provided model.**

The following explains two different approaches in R.

### How to Compute SMAPE in R

Approach 1: Utilize Metrics Package

Making use of Metrics library and smape() action in R for SMAPE computation.

Compare data grids in R-Quick Guide »

library(Metrics)
define certain amounts

certain : c(15, 16, 14, 15, 18, 22, 20)
define forecasted amounts

forecast : c(15, 14, 14, 14, 17, 16, 18)
compute SMAPE

smape(certain, estimate)
 0.09721348

It identifies that the symmetric mean absolute percentage error for this plan is 9.72%.

Timeseries analysis in R » Decomposition, & Forecasting »

Approach 2: Action

The before-mentioned approach is one of the simplest ways to compute SMAPE, though, we can explain our own action for SMAPE computation.

smape : action(a, f) { return (1/length(a) * sum(2*abs(f-a) / (abs(a)+abs(f))*100))}

The above action will be useful for SMAPE computation between a vector of specific values and predicted values:

explain certain amounts

actual : c(15, 16, 14, 15, 18, 22, 20)

define forecasted amounts

estimate : c(15, 14, 14, 14, 17, 16, 18)

compute SMAPE

smape(certain, estimate)
 9.721348

As earlier the SMAPE value is 9.72%.

### How to Compute SMAPE in R

The symmetric mean absolute percentage error (SMAPE) is utilized to measure the anticipated accuracy of models. It is computed as:

SMAPE = (1/n) * Σ(|measure – certain| / ((|certain| + |measure|)/2) * 100

where:

Σ – a symbol which means “sum”
n – sample size
actual – the specific data value
forecast – the anticipated data amount
The lower the value for SMAPE, the greater the predictive certainty of a provided model.

The following explains two different approaches you can utilize to compute SMAPE in R.

Approach 1: Utilize smape() from the Metrics Package
One way to compute SMAPE in R is to utilize the smape() action from the Metrics package:

library(Metrics)

#define actual amounts
actual : c(12, 13, 14, 15, 15, 22, 27)

#define forecasted amounts
forecast : c(11, 13, 14, 14, 15, 16, 18)

#compute SMAPE
smape(actual, estimate)

 0.1245302

As seen the symmetric mean absolute percentage error for this plan is 12.45%.

Approach 2: Write Your Own Action
Another way to compute SMAPE is to design our own action as follows:

find_smape : action(a, f) {
return (1/length(a) * sum(2*abs(f-a) / (abs(a)+abs(f))*100))
}

Now use this action to compute the SMAPE between a vector of specific values and anticipated values:

#define actual amounts
actual : c(12, 13, 14, 15, 15,22, 27)

#define forecasted amounts
forecast : c(11, 13, 14, 14, 15, 16, 18)

#compute SMAPE
find_smape(specific, forecast)

 12.45302

Once more the SMAPE comes out to be 12.45%, that equals the results from the earlier example.

Scroll to top