Comment calculer WMAPE dans R (avec exemple)



L’une des mesures les plus couramment utilisées pour mesurer la précision des prévisions d’un modèle est WMAPE , qui signifie pourcentage d’erreur absolu moyen pondéré .

La formule pour calculer WMAPE est la suivante :

WMAPE = ( Σ|y i – ŷ i |*w i ) / ( Σy i *w i ) * 100

où:

  • Σ – un symbole qui signifie « somme »
  • y i – La valeur réelle de la ième observation
  • ŷ i – La valeur prédite de la i ème observation
  • w i – Le poids de la i ème observation

Nous pouvons définir la fonction suivante pour calculer WMAPE dans R :

find_WMAPE <- function(y, yhat, w){
  return(sum(abs(y-yhat)*w)/sum(y*w)*100)
}

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : calcul de WMAPE dans R

Supposons que nous disposions du bloc de données suivant dans R qui contient des informations sur les ventes réelles et prévues pour un magasin de détail :

#create dataset
data <- data.frame(actual=c(23, 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

   actual forecast
1      23       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

Pour calculer le WMAPE pour la différence entre les ventes réelles et prévues, nous pouvons définir un vecteur de pondérations à utiliser, puis utiliser la fonction WMAPE que nous avons définie précédemment :

#define function to calculate WMAPE
find_WMAPE <- function(y, yhat, w){
  return(sum(abs(y-yhat)*w)/sum(y*w)*100)
}

#define weights for each month
weights <- c(20, 20, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6)

#calculate WMAPE
find_WMAPE(df$actual, df$predicted, weights)

[1] 13.27635

Le WMAPE pour ce modèle s’avère être de 13,27635% .

Autrement dit, l’erreur absolue moyenne pondérée en pourcentage entre les valeurs de ventes prévues et les valeurs de ventes réelles est de 13,27635 %.

Notez que nous avons attribué des pondérations beaucoup plus importantes aux valeurs de janvier et février dans cet exemple.

En fonction de votre problème particulier, vous pouvez attribuer des poids plus ou moins importants à différentes observations en fonction de l’importance de chaque erreur dans votre modèle.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment calculer MAPE dans R
Comment calculer SMAPE dans R
Comment calculer le RMSE dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *