Come calcolare mape in r


Uno dei parametri più comunemente utilizzati per misurare l’accuratezza delle previsioni di un modello è MAPE , che sta per errore percentuale assoluto medio .

La formula per calcolare il MAPE è la seguente:

MAPE = (1/n) * Σ(|effettivo – previsto| / |effettivo|) * 100

Oro:

  • Σ – un simbolo di fantasia che significa “somma”
  • n – dimensione del campione
  • reale : il valore effettivo dei dati
  • previsione – il valore atteso dei dati

MAPE è comunemente usato perché è facile da interpretare e spiegare. Ad esempio, un valore MAPE del 6% significa che la differenza media tra il valore previsto e il valore effettivo è del 6%.

Questo tutorial fornisce due diversi metodi che puoi utilizzare per calcolare MAPE in R.

Metodo 1: scrivi la tua funzione

Supponiamo di avere un set di dati con una colonna contenente i valori dei dati effettivi e una colonna contenente i valori dei dati previsti:

 #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

Per calcolare il MAPE possiamo utilizzare la seguente funzione:

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

[1] 6.467108

Il MAPE per questo modello risulta essere 6,467% . Cioè, la differenza media assoluta tra il valore previsto e il valore effettivo è del 6,467%.

Metodo 2: utilizzare un pacchetto

Potremmo anche calcolare MAPE per lo stesso set di dati utilizzando la funzione MAPE() del pacchetto MLmetrics , che utilizza la seguente sintassi:

MAPE(y_pred, y_true)

Oro:

  • y_pred: valori previsti
  • y_true: valori reali

Ecco la sintassi che utilizzeremmo nel nostro esempio:

 #load MLmetrics package
library (MLmetrics)

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

[1] 0.06467108

Ciò produce lo stesso valore MAPE del 6,467% che abbiamo calcolato utilizzando il metodo precedente.

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *