Calculating the Mean Absolute Percentage Error (MAPE) is a standard practice in various fields like finance, economics, and data science, for evaluating the accuracy of a forecasting or prediction model. R, being a powerful statistical programming language, offers a plethora of ways to calculate MAPE. This guide will comprehensively cover different approaches to calculate MAPE in R, including base R methods, usage of specialized libraries, and custom functions. We will also delve into what MAPE is, why it is used, and its limitations.

## Table of Contents

- What is MAPE?
- Why Use MAPE?
- Limitations of MAPE
- Calculating MAPE in R
- Using Base R
- Using the
`forecast`

package - Using the
`Metrics`

package - Custom Function Approach

- Interpretation of MAPE
- Conclusion

## 1. What is MAPE?

Mean Absolute Percentage Error (MAPE) is a measure used to evaluate the accuracy of a forecasting model. MAPE quantifies the difference between the predicted and the observed values in percentage terms. The formula for MAPE is:

where At is the actual value and Ft is the forecasted value at time t, and n is the total number of observations.

## 2. Why Use MAPE?

**Interpretability**: MAPE’s output is a percentage, which is easier to understand compared to other metrics like RMSE (Root Mean Square Error).**Uniform Scale**: Since it is a percentage, it allows for comparisons across different scales and units.

## 3. Limitations of MAPE

**Undefined for Zero Values**: If the actual value is zero, the MAPE formula becomes undefined.**Biased Toward Underprediction**: MAPE is often more sensitive to underpredictions than overpredictions.

## 4. Calculating MAPE in R

### 4.1 Using Base R

Calculating MAPE using base R involves straightforward manipulation of vectors. Here’s a simple example:

```
# Define actual and forecasted values
actual <- c(100, 200, 300, 400, 500)
forecast <- c(110, 195, 290, 405, 480)
# Calculate MAPE
mape <- mean(abs((actual - forecast) / actual)) * 100
print(paste("MAPE: ", round(mape, 2), "%"))
```

### 4.2 Using the forecast package

The `forecast`

package provides a suite of tools for time series analysis, including a `accuracy()`

function which computes MAPE among other metrics.

First, install and load the `forecast`

package:

```
install.packages("forecast")
library(forecast)
```

Then, calculate MAPE:

```
library(forecast)
# Define actual and forecasted values
actual <- c(100, 200, 300, 400, 500)
forecast <- c(110, 195, 290, 405, 480)
# Convert to time series objects
actual_ts <- ts(actual)
forecast_ts <- ts(forecast)
# Compute accuracy measures
accuracy_measures <- accuracy(forecast_ts, actual_ts)
# Fetch MAPE
mape_value <- accuracy_measures[1, "MAPE"]
# Print MAPE
print(paste("MAPE: ", round(mape_value, 2), "%"))
```

### 4.3 Using the Metrics package

The `Metrics`

package specializes in performance metrics, including MAPE. First, install and load the package:

```
install.packages("Metrics")
library(Metrics)
```

Then calculate MAPE:

```
mape_metrics <- mape(actual, forecast)
print(paste("MAPE: ", round(mape_metrics, 2), "%"))
```

### 4.4 Custom Function Approach

If you require a more flexible approach, you can write a custom function to calculate MAPE.

```
custom_mape <- function(actual, forecast) {
return (mean(abs((actual - forecast) / actual), na.rm = TRUE) * 100)
}
mape_custom <- custom_mape(actual, forecast)
print(paste("MAPE: ", round(mape_custom, 2), "%"))
```

## 5. Interpretation of MAPE

A lower MAPE value indicates a better fit of the model to the actual data. However, keep in mind the limitations mentioned earlier when interpreting the results.

## 6. Conclusion

MAPE is a widely-used and interpretable metric for evaluating the accuracy of forecasting models. R offers various methods for calculating MAPE, each with its advantages and limitations. By understanding the nuances of these methods, you can pick the one that best suits your specific needs.