Одной из наиболее распространенных метрик, используемых для измерения точности прогнозирования модели, является 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% , которое мы рассчитали с помощью предыдущего метода.