Jak obliczyć mape w r


Jedną z najczęściej używanych metryk do pomiaru dokładności prognozy modelu jest MAPE , co oznacza średni bezwzględny błąd procentowy .

Wzór do obliczenia MAPE jest następujący:

MAPE = (1/n) * Σ(|rzeczywista – prognoza| / |rzeczywista|) * 100

Złoto:

  • Σ – fantazyjny symbol oznaczający „sumę”
  • n – wielkość próby
  • real – rzeczywista wartość danych
  • prognoza – oczekiwana wartość danych

MAPE jest powszechnie stosowany, ponieważ jest łatwy do interpretacji i wyjaśnienia. Na przykład wartość MAPE wynosząca 6% oznacza, że średnia różnica między wartością przewidywaną a wartością rzeczywistą wynosi 6%.

W tym samouczku przedstawiono dwie różne metody, których można użyć do obliczenia MAPE w języku R.

Metoda 1: Napisz własną funkcję

Załóżmy, że mamy zbiór danych zawierający kolumnę zawierającą rzeczywiste wartości danych i kolumnę zawierającą przewidywane wartości danych:

 #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

Aby obliczyć MAPE, możemy skorzystać z następującej funkcji:

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

[1] 6.467108

MAPE dla tego modelu okazuje się wynosić 6,467% . Oznacza to, że średnia bezwzględna różnica między wartością przewidywaną a wartością rzeczywistą wynosi 6,467%.

Metoda 2: Użyj pakietu

Moglibyśmy również obliczyć MAPE dla tego samego zbioru danych, używając funkcji MAPE() z pakietu MLmetrics , która wykorzystuje następującą składnię:

MAPE(y_pred, y_true)

Złoto:

  • y_pred: przewidywane wartości
  • y_true: wartości rzeczywiste

Oto składnia, której użylibyśmy w naszym przykładzie:

 #load MLmetrics package
library (MLmetrics)

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

[1] 0.06467108

Daje to tę samą wartość MAPE wynoszącą 6,467% , którą obliczyliśmy przy użyciu poprzedniej metody.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *