Как рассчитать 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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *