В этой статье мы увидим, как рассчитать MAPE на языке программирования R.
MAPE
Это аббревиатура от средней абсолютной ошибки в процентах. MAPE используется для измерения точности системы прогнозирования. Точность измеряется в процентах. MAPE можно рассчитать по следующей формуле:
MAPE = (1 / n) * Σ(|At – Ft| / |At|) * 100Здесь,
n: представляет количество установленных точек
A t : представляет фактическое значение,
F t : представляет значение прогноза.
Σ: символ, используемый для обозначения суммирования
MAPE довольно распространен и используется для прогнозирования ошибок. Он работает наиболее эффективно, когда в данных нет их экстремумов.
Способ 1: Использование пакета MLmetrics
В R пакет MLmetrics предоставляет нам функцию MAPE(), с помощью которой мы можем вычислить MAPE в R. Эта функция имеет следующий синтаксис:
Синтаксис: MAPE(Ft, At)
Параметры:
Здесь,
F t: представляет прогнозируемые значения.
A t: представляет фактические значения
Пример:
р
# Create a dataframe
dataframe <-
data.frame
(At=
c
(15, 40, 41, 32,
48, 28, 21, 47, 36,
37, 11, 14),
Ft=
c
(32, 41, 43, 54, 66, 51,
46, 45, 37, 33, 25, 26))
# Print the dataframe
dataframe
Выход:
Теперь, чтобы узнать MAPE вышеуказанного фрейма данных, мы можем использовать функцию MAPE():
р
# Import library
library
(
"MLmetrics"
)
# Create a dataframe
dataframe <-
data.frame
(At=
c
(15, 40, 41, 32,
48, 28, 21, 47,
36, 37, 11, 14),
Ft=
c
(32, 41, 43, 54, 66,
51, 46, 45, 37, 33,
25, 26))
# Compute MAPE
MAPE
(dataframe$Ft, dataframe$At)
Выход:
Отсюда значение MAPE оказывается равным 54,915 %.
Способ 2: создание пользовательской функции
Мы можем создать собственную функцию для определения MAPE.
Пример:
Давайте сначала создадим фрейм данных, который содержит два столбца. Один столбец содержит фактические значения, а другой столбец содержит прогнозируемые значения.
р
# Create a dataframe
dataframe <-
data.frame
(At=
c
(15, 40, 41, 32, 48,
28, 21, 47, 36, 37,
11, 14),
Ft=
c
(32, 41, 43, 54, 66, 51,
46, 45, 37, 33, 25, 26))
# Print the dataframe
dataframe
Выход:
Теперь нам нужно создать функцию, которая вычисляет MAPE для созданного выше фрейма данных:
Обратите внимание, что (1 / n) * Σ(|At – Ft| / |At|) эквивалентно среднему значению :
abs(( dataframe$At-dataframe$Ft) / dataframe$At)
Таким образом, мы можем использовать функцию mean() в R. Эта функция имеет следующий синтаксис:
Синтаксис: mean(vect, na.rm)
Параметры:
- vect: It represents the numeric vector
- na.rm: Boolean value to ignore NA value
Теперь мы можем умножить это значение на 100 и вернуть окончательное значение из функции.
р
# Custom function that computes
# MAPE of the passed dataframe
calculateMAPE <-
function
(dataframe) {
result =
mean
(
abs
((dataframe$At-dataframe$Ft)
/dataframe$At)) * 100
return
(result)
}
# Create a dataframe
dataframe <-
data.frame
(At=
c
(15, 40, 41, 32,
48, 28, 21, 47,
36, 37, 11, 14),
Ft=
c
(32, 41, 43, 54, 66,
51, 46, 45, 37, 33,
25, 26))
# calculate MAPE
result =
calculateMAPE
(dataframe)
# Print the result
(result)
Выход:
Отсюда значение MAPE оказывается равным 54,915 %.