Table of Contents
The Mean Absolute Percentage Error (MAPE) is a measure of accuracy for forecasting models, commonly used in economics and finance. In R, the MAPE can be calculated by taking the absolute difference between the actual and forecasted values, dividing it by the actual value, and then multiplying by 100 to get a percentage. This process is repeated for each data point, and the resulting values are then averaged to get the final MAPE. This statistical method is useful for evaluating the performance of forecasting models and determining the level of error in the predictions.
Calculate MAPE in R
One of the most common metrics used to measure the forecasting accuracy of a model is MAPE, which stands for mean absolute percentage error.
The formula to calculate MAPE is as follows:
MAPE = (1/n) * Σ(|actual – forecast| / |actual|) * 100
where:
- Σ – a fancy symbol that means “sum”
- n – sample size
- actual – the actual data value
- forecast – the forecasted data value
MAPE is commonly used because it’s easy to interpret and explain. For example, a MAPE value of 6% means that the average difference between the forecasted value and the actual value is 6%.
This tutorial provides two different methods you can use to calculate MAPE in R.
Method 1: Write Your Own Function
Suppose we have a dataset with one column that contains the actual data values and one column that contains the forecasted data values:
#create dataset data <- data.frame(actual=c(34, 37, 44, 47, 48, 48, 46, 43, 32, 27, 26, 24), forecast=c(37, 40, 46, 44, 46, 50, 45, 44, 34, 30, 22, 23)) #view dataset data actual forecast 1 34 37 2 37 40 3 44 46 4 47 44 5 48 46 6 48 50 7 46 45 8 43 44 9 32 34 10 27 30 11 26 22 12 24 23
To compute the MAPE, we can use the following function:
#calculate MAPE
mean(abs((data$actual-data$forecast)/data$actual)) * 100
[1] 6.467108
The MAPE for this model turns out to be 6.467%. That is, the average absolute difference between the forecasted value and the actual value is 6.467%.
Method 2: Use a Package
We could also calculate MAPE for the same dataset using the MAPE() function from the MLmetrics package, which uses the following syntax:
MAPE(y_pred, y_true)
where:
- y_pred: predicted values
- y_true: actual values
Here is the syntax we would use in our example:
#load MLmetrics packagelibrary(MLmetrics) #calculate MAPE MAPE(data$forecast, data$actual) [1] 0.06467108
This produces the same MAPE value of 6.467% that we calculated using the previous method.