Как рассчитать MAPE в R


Одной из наиболее распространенных метрик, используемых для измерения точности прогнозирования модели, является MAPE , что означает среднюю абсолютную ошибку в процентах .

Формула для расчета MAPE выглядит следующим образом:

MAPE = (1/n) * Σ(|факт – прогноз| / |факт|) * 100

куда:

  • Σ — причудливый символ, означающий «сумма».
  • n – размер выборки
  • фактический – фактическое значение данных
  • прогноз – прогнозируемое значение данных

MAPE широко используется, потому что его легко интерпретировать и объяснить. Например, значение MAPE, равное 6%, означает, что средняя разница между прогнозируемым значением и фактическим значением составляет 6%.

В этом руководстве представлены два разных метода, которые можно использовать для расчета MAPE в R.

Метод 1: напишите свою собственную функцию

Предположим, у нас есть набор данных с одним столбцом, содержащим фактические значения данных, и одним столбцом, содержащим прогнозируемые значения данных:

#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

Чтобы вычислить MAPE, мы можем использовать следующую функцию:

#calculate MAPE
mean(abs((data$actual-data$forecast)/data$actual)) \* 100

[1] 6.467108

MAPE для этой модели оказывается равным 6,467%.То есть средняя абсолютная разница между прогнозируемым значением и фактическим значением составляет 6,467%.

Способ 2: использовать пакет

Мы также можем рассчитать MAPE для того же набора данных, используя функцию MAPE() из пакета MLmetrics , которая использует следующий синтаксис:

MAPE(y_pred, y_true)

куда:

  • y_pred: прогнозируемые значения
  • y_true: фактические значения

Вот синтаксис, который мы будем использовать в нашем примере:

#load MLmetrics package
library(MLmetrics)

#calculate MAPE
MAPE(data$forecast, data$actual)

[1] 0.06467108

Это дает то же значение MAPE 6,467% , которое мы рассчитали с помощью предыдущего метода.