Як розрахувати mape в r


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

Формула для розрахунку MAPE така:

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

золото:

  • Σ – химерний символ, що означає «сума»
  • n – розмір вибірки
  • real – фактичне значення даних
  • прогноз – очікуване значення даних

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_перед, y_true)

золото:

  • y_pred: прогнозовані значення
  • y_true: справжні значення

Ось синтаксис, який ми будемо використовувати в нашому прикладі:

 #load MLmetrics package
library (MLmetrics)

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

[1] 0.06467108

Це дає те саме значення MAPE 6,467% , яке ми розрахували за допомогою попереднього методу.

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *