Hoe mape in r te berekenen
Een van de meest gebruikte maatstaven om de voorspellingsnauwkeurigheid van een model te meten is MAPE , wat staat voor Mean Absolute Percentage Error .
De formule om MAPE te berekenen is als volgt:
MAPE = (1/n) * Σ(|actueel – voorspelling| / |actueel|) * 100
Goud:
- Σ – een mooi symbool dat ‘som’ betekent
- n – steekproefomvang
- real – de werkelijke waarde van de gegevens
- voorspelling – de verwachte waarde van de gegevens
MAPE wordt vaak gebruikt omdat het gemakkelijk te interpreteren en uit te leggen is. Een MAPE-waarde van 6% betekent bijvoorbeeld dat het gemiddelde verschil tussen de voorspelde waarde en de werkelijke waarde 6% is.
Deze tutorial biedt twee verschillende methoden die u kunt gebruiken om MAPE in R te berekenen.
Methode 1: Schrijf uw eigen functie
Stel dat we een dataset hebben met een kolom met daarin de werkelijke datawaarden en een kolom met de voorspelde datawaarden:
#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
Om de MAPE te berekenen, kunnen we de volgende functie gebruiken:
#calculate MAPE
mean(abs((data$actual-data$forecast)/data$actual)) * 100
[1] 6.467108
De MAPE voor dit model blijkt 6,467% te zijn. Dat wil zeggen dat het gemiddelde absolute verschil tussen de voorspelde waarde en de werkelijke waarde 6,467% bedraagt.
Methode 2: Gebruik een pakket
We kunnen MAPE ook berekenen voor dezelfde gegevensset met behulp van de MAPE()- functie uit het MLmetrics- pakket, dat de volgende syntaxis gebruikt:
MAPE(y_pred, y_true)
Goud:
- y_pred: voorspelde waarden
- y_true: echte waarden
Dit is de syntaxis die we in ons voorbeeld zouden gebruiken:
#load MLmetrics package library (MLmetrics) #calculate MAPE MAPE(data$forecast, data$actual) [1] 0.06467108
Dit levert dezelfde MAPE-waarde van 6,467% op die we met de vorige methode hebben berekend.