L’évaluation de la performance prédictive constitue la clé de voûte de toute démarche de modélisation quantitative contemporaine. Qu’il s’agisse d’anticiper la trajectoire de variables macroéconomiques, de calibrer des flux logistiques industriels ou d’estimer des réponses psychologiques et comportementales complexes, la communauté scientifique et les praticiens de la science des données sont confrontés à un défi commun : quantifier avec rigueur, objectivité et robustesse l’écart séparant les observations empiriques des projections théoriques. Si les métriques traditionnelles reposant sur l’erreur quadratique ou absolue dominent historiquement la littérature, leur incapacité à fournir une lecture relative et indépendante de l’échelle des mesures a conduit à l’essor d’indicateurs standardisés en pourcentage.
Parmi ces alternatives, l’erreur absolue moyenne en pourcentage symétrique, communément désignée sous l’acronyme anglophone SMAPE (Symmetric Mean Absolute Percentage Error), s’est imposée comme une réponse méthodologique majeure aux pathologies de l’asymétrie statistique. Conçue pour surmonter les distorsions inhérentes au MAPE classique, cette métrique symétrique propose un cadre d’analyse normé, borné et particulièrement adapté aux contextes où la variabilité des données impose une comparaison relative équilibrée. Dans le vaste écosystème du langage R, plateforme privilégiée de l’analyse statistique de pointe, la manipulation et le calcul du SMAPE requièrent toutefois une compréhension fine de ses variantes algorithmiques, de ses propriétés formelles et de ses pièges de mise en œuvre.
Le présent article propose un traité méthodologique et pratique complet consacré au calcul, à l’interprétation et à l’optimisation du SMAPE au sein de l’environnement de programmation R. En articulant fondements mathématiques rigoureux, déclinaisons logicielles via des bibliothèques spécialisées comme Metrics, écritures d’algorithmes personnalisés, gestion systématique des singularités numériques et applications empiriques sur des séries comportementales, ce guide vise à doter les chercheurs et les analystes quantitatifs des outils nécessaires pour une intégration reproductible, performante et scientifiquement irréprochable de cette métrique au cœur de leurs flux d’inférence statistique.
1. Introduction théorique et définition du SMAPE dans l’analyse prédictive
1.1 Origine conceptuelle et utilité de l’erreur absolue moyenne en pourcentage symétrique
Le développement des métriques d’erreur relative au cours de la seconde moitié du vingtième siècle a répondu à un impératif fondamental : s’affranchir de la dépendance aux unités de mesure pour comparer l’efficacité de modèles appliqués à des séries temporelles hétérogènes. Dans ce contexte, l’erreur absolue moyenne en pourcentage, ou MAPE (Mean Absolute Percentage Error), s’est initialement imposée comme la référence universelle grâce à sa simplicité d’interprétation intuitive. Cependant, les travaux fondateurs de chercheurs en prévision, notamment ceux de Spyros Makridakis et de J. Scott Armstrong, ont mis en lumière une vulnérabilité mathématique rédhibitoire du MAPE : son asymétrie structurelle.
En effet, le MAPE divise l’erreur absolue par la seule valeur observée réelle. Cette construction engendre une pénalisation disproportionnée des erreurs de surestimation par rapport aux erreurs de sous-estimation. Lorsque l’observation réelle est proche de zéro, le dénominateur s’effondre, provoquant une explosion asymptotique de la métrique vers l’infini. Inversement, une sous-estimation systématique plafonne mécaniquement l’erreur à 100 %, créant un biais incitatif pervers lors de l’entraînement des algorithmes prédictifs. Ce déséquilibre compromet gravement la validité interne des comparaisons méthodologiques.
C’est pour remédier à cette anomalie fondamentale que le concept d’erreur absolue moyenne en pourcentage symétrique a été formalisé lors des célèbres compétitions de prévision de Makridakis (les M-Competitions). L’apport fondamental de la symétrisation réside dans l’incorporation conjointe de la valeur observée et de la valeur prédite au niveau du dénominateur d’échelle. Cette approche stabilise considérablement l’évaluation des modèles de régression en traitant avec une équité mathématique accrue les déviations positives et négatives, tout en évitant les singularités extrêmes associées aux petites valeurs empiriques.
1.2 Formulation mathématique rigoureuse du SMAPE
La formulation analytique du SMAPE repose sur une décomposition formelle qui pondère chaque écart individuel par une moyenne des amplitudes observées et projetées. Soit un échantillon apparié de taille n, où y_t représente la valeur empirique réelle observée au temps ou à l’indice t, et y_hat_t désigne la prévision correspondante générée par le modèle statistique. La formulation canonique de Makridakis s’établit selon l’expression suivante :
SMAPE = (1 / n) * somme_{t=1}^{n} [ 2 * |y_t – y_hat_t| / (|y_t| + |y_hat_t|) ] * 100
Une analyse approfondie de cette structure mathématique révèle la présence déterminante du facteur multiplicateur 2 au numérateur, ou de manière équivalente, d’une division par 2 appliquée au dénominateur : (|y_t| + |y_hat_t|) / 2. Ce dénominateur moyen représente la moyenne arithmétique des valeurs absolues de l’observation et de la prédiction. Cette transformation géométrique garantit que l’échelle de normalisation ne dépend pas exclusivement de la cible empirique, mais de la masse globale mobilisée par le phénomène observé et son approximation théorique.
Le facteur d’échelle multiplicatif final par 100 a pour objet exclusif de convertir le rapport scalaire sans dimension en un pourcentage standardisé, immédiatement assimilable par les analystes et les décideurs. Grâce à cette normalisation conjointe, chaque terme sommé exprime la déviation relative par rapport au point médian du couple observation-prévision, conférant à la métrique une compacité mathématique et une interprétabilité directe dans les cadres inférentiels modernes.
1.3 Pertinence du SMAPE dans la modélisation quantitative et psychologique
Dans le champ des sciences comportementales, de la psychométrie quantitative et des neurosciences cognitives, les données longitudinales présentent fréquemment une variabilité interindividuelle marquée, caractérisée par des dynamiques non linéaires et des échelles de réponse arbitraires issues de questionnaires psychométriques (échelles de Likert cumulées, temps de réaction, indices d’activation cognitive). L’application d’indicateurs absolus comme la racine de l’erreur quadratique moyenne (RMSE) se heurte à l’impossibilité de confronter des cohortes aux baselines hétérogènes.
Le SMAPE déploie ici une pertinence méthodologique singulière. En neutralisant l’effet de magnitude des échelles individuelles, il autorise l’agrégation de performances prédictives sur des populations diversifiées sans que les individus présentant des réponses physiologiques ou comportementales de forte amplitude ne monopolisent le diagnostic d’adéquation du modèle. Cette neutralité face à l’échelle s’avère indispensable pour quantifier la validité prédictive des modèles de décision bayésienne ou des réseaux de neurones appliqués aux dynamiques temporelles de l’humeur, du stress ou de l’attention.
Dans la littérature scientifique internationale, l’évaluation de la qualité d’ajustement via le SMAPE suit généralement des seuils empiriques consolidés. Une valeur de SMAPE inférieure à 10 % signale une capacité prédictive exceptionnelle, caractérisant un modèle captant fidèlement le signal sous-jacent. Un résultat compris entre 10 % et 20 % correspond à un ajustement robuste et exploitable dans les publications scientifiques. Entre 20 % et 50 %, le modèle conserve une valeur indicative mais requiert une analyse critique des résidus, tandis qu’un SMAPE excédant 50 % traduit une déficience structurelle du système d’estimation, exigeant une révision des hypothèses théoriques.
2. Fondements mathématiques et propriétés formelles de la formule du SMAPE
2.1 Bornes théoriques et comportement asymptotique
L’un des atouts théoriques majeurs de la formulation standardisée du SMAPE réside dans l’existence de bornes universelles rigoureusement définies. Contrairement au MAPE, qui peut théoriquement tendre vers l’infini positif sous l’effet d’une observation arbitrairement proche de zéro, le SMAPE conventionnel intégrant le multiplicateur 2 est borné sur l’intervalle semi-fermé [0 %, 200 %]. Dans la variante alternative où le coefficient 2 est omis du numérateur (utilisée par certains auteurs pour ramener le résultat sur une échelle centésimale), les bornes théoriques deviennent strictement [0 %, 100 %].
La borne inférieure de 0 % est atteinte si et seulement si l’adéquation est parfaite pour l’intégralité des observations, c’est-à-dire lorsque y_t = y_hat_t pour tout t appartenant à l’échantillon, avec une condition de non-nullité conjointe. À l’opposé, la borne supérieure maximale (200 % ou 100 % selon la normalisation) est atteinte dans des situations d’erreur polaire absolue : par exemple, lorsqu’une prédiction strictement positive est associée à une observation nulle, ou lorsqu’une sous-estimation prédit une valeur nulle pour une observation réelle non nulle. Si la prévision approche une grandeur infinie alors que l’observation demeure finie, le ratio tend asymptotiquement vers sa borne supérieure sans jamais la dépasser.
Sur le plan de l’optimisation mathématique et des algorithmes d’apprentissage automatique résolus par descente de gradient, la fonction de perte associée au SMAPE présente une convexité locale mais souffre d’une non-convexité globale et de singularités de dérivabilité. Plus précisément, la présence de valeurs absolues au numérateur et au dénominateur engendre des points de non-différentiabilité lorsque y_t = y_hat_t ou lorsque les deux termes s’annulent. Ces propriétés de surface imposent des précautions particulières : le SMAPE est rarement employé comme fonction de perte directe lors de l’entraînement des réseaux profonds, mais plutôt comme métrique d’évaluation terminale et de sélection de modèles.
2.2 Comparaison structurelle entre SMAPE, MAPE et MASE
Pour appréhender la singularité mathématique du SMAPE, il est impératif de confronter analytiquement sa formulation à celle de l’erreur absolue moyenne en pourcentage (MAPE) et de l’erreur moyenne absolue mise à l’échelle (MASE, formulée par Rob J. Hyndman). L’examen de la dérivée partielle de l’erreur par rapport à la prévision y_hat_t révèle la source de la stabilité du SMAPE :
Tandis que pour le MAPE, la dérivée par rapport à une sous-estimation est constante (1 / y_t) mais croît indéfiniment lorsque y_t décroît vers zéro, le SMAPE régule dynamiquement sa pente grâce à la présence conjointe de |y_hat_t| au dénominateur. Ainsi, une surestimation massive accroît simultanément le numérateur et le dénominateur, ce qui stabilise le rapport marginal d’erreur et interdit toute divergence artificielle de la métrique globale. Il en découle une pénalisation remarquablement équilibrée des écarts directionnels, immunisant l’analyse contre les distorsions extrêmes causées par quelques valeurs atypiques à faible amplitude.
En revanche, face à des séries chronologiques non stationnaires ou intégrant des tendances stochastiques lourdes, la comparaison avec le MASE s’avère particulièrement éclairante. Le MASE compare l’erreur absolue du modèle étudié à celle d’une prévision naïve de référence calculée sur l’échantillon historique. Si le MASE résout impeccablement la problématique des passages par zéro sans distorsion symétrique, il demeure dépendant de la structure d’auto-corrélation temporelle des données. Le SMAPE conserve l’avantage d’une lisibilité immédiate sous forme de taux d’erreur relatif universel, facilitant les arbitrages méthodologiques entre des domaines scientifiques totalement disjoints.
3. Préparation de l’environnement R pour l’analyse prédictive
3.1 Configuration des bibliothèques nécessaires
L’exécution fluide et rigoureuse de calculs prédictifs dans R nécessite la configuration préalable d’un environnement computationnel structuré. Pour mener à bien l’ensemble des manipulations relatives au SMAPE, de son extraction standardisée à son benchmarking haute performance, un panel de bibliothèques spécialisées doit être déployé. Le package Metrics représente le point d’ancrage fondamental pour le calcul immédiat d’indicateurs de performance statistique. Parallèlement, l’écosystème tidyverse, incarné principalement par dplyr pour la manipulation analytique et ggplot2 pour la sémiologie graphique, constitue le standard méthodologique contemporain.
Pour assurer la vérification des hypothèses de performance computationnelle et la validation d’algorithmes vectorisés à grande échelle, le package microbenchmark est indispensable, permettant une évaluation chronométrique de haute précision au nanoseconde près. Enfin, l’utilisation éventuelle de Rcpp ouvre la voie à l’incorporation de fragments de code compiled C++ hautement optimisés. L’initialisation de cet environnement implique la vérification formelle de la version de l’interpréteur R sous-jacent (une version supérieure ou égale à 4.1.0 étant vivement recommandée pour bénéficier du nouvel opérateur de pipeline natif et des améliorations de l’allocation mémoire).
L’installation et l’initialisation de ces composants s’effectuent via les instructions standards de l’écosystème du Comprehensive R Archive Network (CRAN). Une bonne pratique de programmation consiste à encapsuler le chargement des modules dans une routine conditionnelle vérifiant la disponibilité locale de chaque bibliothèque afin d’assurer la parfaite reproductibilité de l’analyse sur des infrastructures distantes ou des serveurs de calcul partagés.
3.2 Structuration et typage des vecteurs de données
La validité des calculs matriciels et vectoriels sous R dépend de manière critique de l’intégrité structurelle des vecteurs numériques manipulés. Lors de l’évaluation prédictive, deux séries synchrones doivent être alignées : le vecteur des observations réelles, conventionnellement noté actual, et le vecteur des valeurs ajustées ou projetées, noté forecast ou predicted. La concordance dimensionnelle stricte est un prérequis mathématique absolu : tout différentiel de longueur entre ces deux entités déclenche des comportements indésirables, notamment le recyclage implicite de vecteurs par R, source d’erreurs silencieuses particulièrement pernicieuses dans les publications scientifiques.
Sur le plan du typage informatique, les données doivent être formellement contraintes au type double précision (numérique standard dans R). La présence accidentelle d’éléments factoriels, de chaînes de caractères masquées ou de valeurs logiques altère l’opération de division vectorisée en déclenchant des coercitions de type imprévues ou des erreurs d’exécution fatales. Il est par conséquent impératif de contrôler préventivement la nature des vecteurs à l’aide des fonctions de diagnostic primitives de R telles que is.numeric() et length().
Dans un cadre méthodologique optimal, l’organisation de ces vecteurs au sein d’une structure rectangulaire native, telle qu’un data frame standard ou un tibble moderne, garantit l’alignement strict des observations et prévisions ligne à ligne. Cette structuration appariée empêche les désynchronisations accidentelles d’indices lors des opérations de filtrage, de tri ou d’imputation, et prépare idéalement l’application transparente des pipelines d’analyse fonctionnelle.
4. Méthode 1 : Calculer le SMAPE avec le package Metrics dans R
4.1 Installation et syntaxe de base de la fonction smape()
L’approche la plus directe et standardisée pour évaluer l’erreur symétrique dans l’écosystème R repose sur l’exploitation du package Metrics, développé pour agréger les métriques d’erreur les plus reconnues en apprentissage supervisé et en analyse de séries temporelles. Pour mettre en œuvre cette méthode, la bibliothèque doit être installée depuis le CRAN via l’instruction install.packages(« Metrics »), puis rendue accessible dans la session de travail active au moyen de la commande library(Metrics).
La fonction cardinale de cette bibliothèque dédiée à notre objet d’étude est smape(). Sa signature syntaxique s’avère d’une concision exemplaire : elle sollicite principalement deux arguments obligatoires, nommés respectivement actual et predicted. Ces arguments acceptent des vecteurs numériques continus de dimensions identiques représentant les cibles mesurées et les estimations du modèle. Par défaut, la fonction gère la vectorisation interne sans nécessiter de boucles itératives externes, garantissant un traitement rapide sur les jeux de données standards.
L’exécution de la fonction sur un échantillon minimal composé, par exemple, d’observations réelles valant c(120, 145, 160, 180) et de prévisions théoriques fixées à c(115, 150, 155, 195), s’effectue par l’appel direct smape(actual, predicted). Le package procède automatiquement aux conversions arithmétiques internes et délivre une réponse scalaire unique, synthétisant l’erreur relative globale de l’ajustement testé.
4.2 Interprétation statistique du résultat renvoyé par Metrics
Une vigilance méthodologique majeure s’impose quant à l’interprétation numérique de la sortie produite par Metrics::smape(). Contrairement à certaines conventions littéraires qui intègrent d’emblée la multiplication par 100 pour exprimer directement un taux de pourcentage, la fonction smape() du package Metrics délivre un résultat formulé sous forme décimale, borné sur l’intervalle [0, 2] (ou plus exactement [0, 1] selon la normalisation interne adoptée par son auteur qui utilise la variante sans multiplication terminale et avec moyenne simple).
Ainsi, l’obtention d’une valeur scalaire égale à 0.0485 ne doit en aucun cas être interprétée comme une dérive marginale de 0.0485 %, mais bien comme une erreur relative symétrique de 4.85 % après application du coefficient multiplicateur de conversion. Cette nuance d’échelle, fréquemment négligée dans les analyses préliminaires, est susceptible d’induire des erreurs d’appréciation d’un facteur 100 dans les rapports diagnostiques ou les communications académiques si la standardisation n’est pas rigoureusement documentée.
Dans les contextes empiriques, un résultat renvoyé par Metrics se situant autour de 0.05 atteste d’un ajustement de très haute fidélité, couramment observé dans les processus physiques ou industriels déterministes. Dans les sciences sociales et l’analyse comportementale, où le bruit stochastique et la variance non expliquée sont structurellement prépondérants, des valeurs délivrées par la fonction oscillant entre 0.15 et 0.25 (soit 15 % à 25 %) sont généralement considérées comme d’excellents indicateurs de performance, témoignant d’une capture satisfaisante de la dynamique sous-jacente sans surajustement.
4.3 Intégration de Metrics::smape() dans un pipeline dplyr
L’un des avantages fondamentaux de l’écosystème R moderne réside dans l’interopérabilité des fonctions d’évaluation au sein de flux de travail déclaratifs régis par dplyr. Dans les projets de recherche avancés, l’analyste n’évalue que très rarement un modèle global unique ; il est confronté à des stratifications complexes, impliquant des cohortes expérimentales multiples, des catégories démographiques distinctes ou des horizons temporels segmentés.
L’intégration de la fonction Metrics::smape() au sein d’une chaîne structurée autour des verbes group_by() et summarise() permet d’automatiser sans effort le calcul du SMAPE par strate. En encapsulant les données dans un tibble regroupant les identifiants de groupes, les mesures réelles et les estimations obtenues, il devient aisé de formuler une requête qui génère une table récapitulative présentant le SMAPE spécifique à chaque sous-ensemble de l’échantillon. L’utilisation conjointe de la fonction across() facilite également l’évaluation simultanée de plusieurs architectures prédictives concurrentes (par exemple, des sorties issues d’une régression linéaire, d’une forêt aléatoire et d’un modèle de gradient boosting logées dans des colonnes adjacentes).
Ce paradigme computationnel évite l’écriture fastidieuse et source d’erreurs de boucles d’itération explicites, garantit une vitesse de traitement élevée grâce aux optimisations sous-jacentes du C++ mobilisées par dplyr, et produit des structures de données parfaitement normalisées, immédiatement prêtes pour la synthèse tabulaire ou la visualisation comparative haute résolution.
5. Méthode 2 : Implémentation manuelle et personnalisée d’une fonction SMAPE dans R
5.1 Écriture algorithmique de la fonction de base
Bien que l’usage de bibliothèques tierces présente des commodités indéniables, la maîtrise de l’implémentation algorithmique personnalisée demeure un prérequis scientifique incontournable. Écrire sa propre fonction SMAPE dans R permet de lever toute ambiguïté sur la formulation mathématique exacte mise en œuvre, d’assurer une parfaite traçabilité du code source, et de s’affranchir de dépendances logicielles superflues susceptibles d’évoluer de manière non rétrocompatible au fil des versions du CRAN.
Grâce à la nature vectorielle intrinsèque du langage R, l’écriture d’une fonction SMAPE robuste ne nécessite aucune boucle explicite. Une formulation vectorisée tire parti des primitives optimisées en C sous le capot de l’interpréteur R. La fonction de base peut être formalisée comme suit : elle reçoit deux vecteurs numériques a (observations) et f (prévisions), calcule la valeur absolue de leur différence élément par élément, divise ce terme par la demi-somme des valeurs absolues respectives, puis calcule la moyenne arithmétique de ce vecteur résultant avant de multiplier le tout par 100.
Sur le plan de l’architecture logicielle, la fonction doit intégrer une documentation formelle via des commentaires détaillant ses hypothèses, spécifier des arguments formels clairs et déclarer des vérifications préventives pour s’assurer que les entrées sont bien des vecteurs de même dimension. La mise en œuvre vectorisée offre une clarté conceptuelle absolue : le calcul 2 * abs(f – a) / (abs(a) + abs(f)) produit instantanément un nouveau vecteur d’erreurs individuelles pondérées, dont la moyenne mean() résume la performance sur l’ensemble de l’échantillon de manière immédiate et transparente.
5.2 Vérification et validation croisée des résultats
Toute implémentation artisanale d’un algorithme statistique doit obligatoirement subir une procédure de validation croisée rigoureuse avant son déploiement à grande échelle. Cette vérification consiste à s’assurer de l’équivalence numérique stricte entre les sorties délivrées par la fonction personnalisée et celles produites par les fonctions de référence auditées issues de packages établis comme Metrics.
Dans l’environnement R, le test d’équivalence ne doit pas reposer sur l’opérateur d’égalité stricte == ou sur la fonction identical(), car ces outils sont extrêmement sensibles aux erreurs d’arrondi infinitésimales inhérentes à l’arithmétique en virgule flottante standard (norme IEEE 754). Il convient plutôt de mobiliser la fonction primitive all.equal(), laquelle intègre un seuil de tolérance numérique paramétrable (généralement fixé à la racine carrée de la précision machine, de l’ordre de 1.5e-8). Cet outil confirme si deux résultats sont algorithmiquement congruents nonobstant les micro-variations de calcul binaire.
Lors de cette étape de validation croisée, l’analyste doit impérativement veiller à aligner les échelles de comparaison. Si la fonction personnalisée implémente la formule de Makridakis avec multiplication par 100, tandis que Metrics::smape() renvoie une fraction décimale non multipliée, une multiplication ou division d’harmonisation par 100 doit être opérée avant d’exécuter all.equal(). L’obtention de la valeur logique TRUE atteste formellement de la fiabilité de l’implémentation algorithmique.
5.3 Extension de la fonction pour la gestion des pondérations
Dans de nombreuses configurations expérimentales, épidémiologiques ou psychologiques, toutes les observations ne possèdent pas un statut épistémique équivalent. Les plans d’échantillonnage stratifiés, les cohortes cliniques déséquilibrées ou les séries temporelles comportant des phases d’instabilité connue exigent une pondération différentielle des unités statistiques. Un SMAPE standard non pondéré traite chaque résidu avec une neutralité arithmétique uniforme qui peut masquer la dégradation des performances sur des sous-populations critiques.
Il devient dès lors nécessaire d’étendre la fonction de base pour concevoir un SMAPE pondéré, ou WSMAPE (Weighted Symmetric Mean Absolute Percentage Error). Cette extension algorithmique introduit un troisième argument formel : un vecteur numérique de poids, noté w, dont la dimension doit être strictement identique à celle des vecteurs réels et prédits. Chaque poids unitaire reflète l’importance relative assignée à l’observation correspondante au sein du calcul global.
Sur le plan mathématique, l’algorithme procède d’abord à la normalisation interne de la masse des pondérations en divisant chaque poids par la somme totale du vecteur w, garantissant que la somme des poids normalisés soit strictement égale à 1. Ensuite, au lieu d’une moyenne simple non pondérée, la fonction exécute une moyenne pondérée via l’opérateur sum(w_norm * erreur_relative_individuelle). Cette généralisation matricielle confère une adaptabilité exceptionnelle à la fonction, lui permettant de s’ajuster avec une précision chirurgicale aux contraintes méthodologiques des protocoles empiriques les plus sophistiqués.
6. Gestion des cas limites et anomalies de données dans R
6.1 Traitement de l’indétermination liée aux valeurs nulles simultanées
L’un des défis fondamentaux posés par la formulation algébrique du SMAPE concerne l’émergence d’indéterminations mathématiques du type zéro divisé par zéro (0 / 0). Ce cas de figure se produit inévitablement lorsqu’une observation réelle est strictement égale à zéro et que l’algorithme prédictif projette lui aussi exactement la valeur zéro. Dans cette situation, le numérateur |0 – 0| s’annule, mais le dénominateur (|0| + |0|) s’annule également, conduisant les systèmes computationnels à retourner la valeur non numérique NaN (Not a Number).
Pour prévenir la propagation délétère de ces valeurs NaN qui viendraient contaminer l’ensemble de la sommation et rendre le score global incalculable, la fonction doit intégrer une logique conditionnelle dédiée. D’un point de vue théorique et conceptuel, si la prédiction est parfaitement égale à l’observation (toutes deux valant zéro), l’erreur relative commise par le modèle est rigoureusement nulle. L’algorithme doit donc intercepter ces occurrences et leur assigner arbitrairement mais logiquement la valeur 0.
Deux solutions algorithmiques s’offrent au programmeur sous R. La première repose sur l’utilisation d’une instruction vectorisée ifelse() ou sur l’indexation logique directe pour remplacer les éléments indéterminés par zéro après l’évaluation du dénominateur. La seconde stratégie, largement prisée en ingénierie numérique, consiste à ajouter une constante infinitésimale (communément désignée sous le terme d’epsilon machine, par exemple 1e-10) au niveau du dénominateur. Cette seconde technique élimine toute possibilité de division par zéro sans altérer de manière significative la précision des résultats numériques.
6.2 Comportement du SMAPE face aux valeurs négatives
Bien que le SMAPE intègre des valeurs absolues tant au numérateur qu’au dénominateur, son application à des jeux de données comportant des grandeurs réelles ou prédites négatives soulève d’importantes distorsions conceptuelles et numériques. Par construction originelle, les métriques d’erreur relative en pourcentage ont été théorisées pour des grandeurs physiques, économiques ou démographiques strictement positives (volumes de ventes, températures en Kelvin, temps de réponse chronométriques).
Une anomalie particulièrement grave survient lorsque l’observation et la prédiction sont de signes opposés et d’amplitudes proches. Prenons le cas d’une observation réelle égale à +10 et d’une prédiction théorique établie à -10. L’écart absolu au numérateur vaut |10 – (-10)| = 20. Au dénominateur, la somme des valeurs absolues vaut |10| + |-10| = 20. Le ratio vaut 1 (ou 2 selon la présence du facteur 2), ce qui demeure borné. Cependant, si une implémentation omet les valeurs absolues individuelles au dénominateur et calcule |actual + forecast|, le dénominateur devient |10 + (-10)| = 0, provoquant une explosion numérique absolue.
Même lorsque la formulation canonique utilisant la somme des valeurs absolues est scrupuleusement respectée, la signification d’un pourcentage d’erreur sur des variables pouvant transiter par zéro ou des valeurs négatives (comme des taux de croissance, des scores d’affects négatifs normalisés ou des potentiels électrophysiologiques) perd sa cohérence sémantique. Dans de telles circonstances, les recommandations méthodologiques préconisent d’opérer une translation linéaire préalable des données pour garantir leur positivité stricte, ou de privilégier des indicateurs d’adéquation non relatifs tels que la MAE ou le RMSE.
6.3 Gestion robuste des valeurs manquantes (NA et NaN)
La collecte de données réelles, en particulier dans les dispositifs longitudinaux ou les protocoles comportementaux automatisés, est presque systématiquement confrontée au phénomène d’attrition et de données manquantes. Dans R, ces anomalies sont encapsulées sous le statut générique NA (Not Available). Par défaut, la philosophie arithmétique de R impose une propagation stricte de l’incertitude : toute opération computationnelle impliquant ne serait-ce qu’un seul élément NA retourne immédiatement NA pour l’ensemble du calcul.
Pour conférer à une fonction personnalisée un niveau de robustesse opérationnelle équivalent aux fonctions de production, il est impératif d’intégrer un argument formel booléen, traditionnellement nommé na.rm, initialisé par défaut à FALSE. Lorsque ce paramètre est basculé sur TRUE par l’utilisateur, l’algorithme doit procéder à une extraction sélective des paires complètes avant d’enclencher les calculs matriciels. Cette exclusion ne doit jamais s’opérer de manière isolée sur un seul vecteur, sous peine de rompre immédiatement l’appariement synchrone entre les observations et leurs prévisions associées.
La méthode la plus rigoureuse consiste à identifier les indices de positions valides au moyen de la fonction primitive complete.cases(actual, forecast). Cette fonction génère un masque logique booléen qui ne conserve que les observations pour lesquelles la mesure réelle et l’estimation théorique sont conjointement renseignées. Dès lors, le SMAPE peut être calculé sur le sous-échantillon intègre sans risque de biais de désalignement. Dans un cadre analytique plus exhaustif, l’exclusion aveugle des valeurs manquantes peut toutefois induire un biais de sélection si les données ne sont pas manquantes de manière complètement aléatoire (MCAR), nécessitant alors le déploiement préalable d’algorithmes d’imputation multiple appropriés aux séries temporelles.
7. Variantes de formulation du SMAPE dans l’écosystème R
7.1 La variante standard de Makridakis vs la variante d’Armstrong
La littérature scientifique relative aux sciences de la prévision est traversée par une divergence historique majeure quant à la formulation du SMAPE, ce qui génère une ambiguïté substantielle dans l’écosystème des packages R. Cette divergence oppose la formulation standard développée par Spyros Makridakis lors des compétitions M3 et M4 à la variante modifiée soutenue par J. Scott Armstrong.
La différence mathématique pivot réside exclusivement dans la présence ou l’absence du facteur 2 au numérateur, modifiant radicalement la constante de normalisation au dénominateur :
- Formulation standard de Makridakis : intègre le coefficient 2, ce qui revient à diviser l’erreur absolue par la moyenne des deux grandeurs ((|y_t| + |y_hat_t|) / 2). Cette échelle d’erreur oscille théoriquement entre 0 % et 200 %.
- Formulation d’Armstrong : omet délibérément le coefficient multiplicateur 2. Le dénominateur correspond alors à la somme brute des grandeurs (|y_t| + |y_hat_t|). En conséquence, le résultat est mécaniquement divisé par deux, contraignant la métrique sur un intervalle strictement borné entre 0 % et 100 %.
Cette dualité de normalisation engendre une vulnérabilité critique lors de la réalisation de revues systématiques de littérature ou de méta-analyses. Deux études modélisant le même phénomène et affichant un SMAPE de 15 % peuvent en réalité refléter une performance prédictive divergente du simple au double selon que les auteurs ont mobilisé la convention de Makridakis ou celle d’Armstrong. Il incombe ainsi à chaque chercheur de stipuler explicitement la formule mobilisée et de documenter scrupuleusement la structure interne de la fonction R sollicitée.
7.2 Comparatif des fonctions équivalentes à travers les packages R
Au-delà de la bibliothèque Metrics, plusieurs autres extensions majeures du CRAN intègrent des routines de calcul pour le SMAPE, chacune adoptant des partis pris architecturaux et mathématiques qu’il convient de cartographier avec rigueur. Le package smooth, dédié à la modélisation avancée par lissage exponentiel et espaces d’états, propose ainsi sa propre routine smape(). Cette dernière s’aligne rigoureusement sur la formulation originale de Makridakis, intégrant le coefficient 2 et renvoyant par défaut une échelle exprimée en pourcentage plein.
Dans l’écosystème moderne du prévisionnel structuré autour du framework tidyverts, les extensions fable et fabletools constituent les successeurs méthodologiques du célèbre package forecast de Rob Hyndman. La fonction d’évaluation accuracy() proposée par fabletools intègre nativement le calcul du SMAPE lors de la comparaison de modèles temporels. Conformément aux préconisations didactiques de Hyndman, l’implémentation de fabletools recourt à la convention standardisée [0 %, 200 %], facilitant la lecture directe des performances sur des collections massives de séries chronologiques.
Le tableau comparatif suivant synthétise les propriétés opérationnelles des principales implémentations disponibles sous R :
- Metrics::smape : Formulation avec somme brute sans facteur 2 par défaut ; sortie décimale comprise entre 0 et 1 (multipliée par 100 pour obtenir une échelle 0-100 %).
- smooth::smape : Formulation canonique de Makridakis avec facteur 2 au numérateur ; sortie directement calibrée en pourcentage sur l’intervalle 0-200 %.
- fabletools::accuracy : Intégration dans un tableau diagnostique standardisé multi-métriques ; convention Makridakis sur l’intervalle 0-200 %.
- Implémentation personnalisée rigoureuse : Contrôle total des paramètres d’échelle, de l’élimination des valeurs manquantes et du traitement des zéros par l’analyste.
8. Comparaison empirique du SMAPE avec d’autres métriques d’erreur dans R
8.1 SMAPE vs MAPE : sensibilité aux asymétries
L’un des fondements de la supériorité méthodologique du SMAPE sur le MAPE réside dans sa neutralité face au sens de l’erreur prédictive. Pour expliciter empiriquement cette distorsion structurelle du MAPE dans R, il suffit de concevoir une simulation contrôlée comparant deux scénarios d’erreur opposés : une sous-estimation systématique et une surestimation systématique de même magnitude absolue.
Considérons une observation empirique réelle égale à 100 unités. Dans un premier scénario, le modèle sous-estime l’observation en prédisant une valeur de 50 (écart de -50 unités). Dans un second scénario, le modèle surestime l’observation en prédisant une valeur de 150 (écart de +50 unités). Lorsque l’on applique le MAPE classique :
- Cas de sous-estimation : (|100 – 50| / 100) * 100 = 50.0 % d’erreur.
- Cas de surestimation : (|100 – 150| / 100) * 100 = 50.0 % d’erreur.
Cette égalité apparente dissimule une pathologie dès que les erreurs s’amplifient. Si le modèle prédit 10 pour une valeur de 100 (erreur de 90 unités), le MAPE atteint 90 %. Mais s’il prédit 190 pour une valeur de 100 (erreur de 90 unités), le MAPE est de 90 %. Cependant, si la prédiction devient 300 pour une valeur de 100, le MAPE bondit à 200 %, et si la prédiction est de 1000, le MAPE atteint 900 %. En revanche, dans le cas d’une sous-estimation, même si la prédiction s’effondre à 0, le MAPE ne dépassera jamais 100 % ! Cette asymétrie impose une contrainte mathématique déloyale qui biaise l’entraînement des modèles, favorisant artificiellement les prédictions basses.
Sous la formulation symétrique du SMAPE de Makridakis, le calcul pour la prédiction de 300 face à 100 donne : 2 * |100 – 300| / (100 + 300) * 100 = 2 * 200 / 400 * 100 = 100.0 %. Pour une prédiction s’approchant de l’infini, la métrique se stabilise rigoureusement à sa borne de 200 %. Le SMAPE offre ainsi une surface de réponse harmonieuse qui protège le diagnostic statistique contre les envolées erratiques consécutives aux phénomènes de dépassement prédictif.
8.2 SMAPE vs RMSE et MAE : erreurs relatives contre erreurs absolues
La comparaison entre le SMAPE et les métriques d’erreur absolue telles que la MAE (Mean Absolute Error) ou quadratique comme le RMSE (Root Mean Squared Error) met en exergue des compromis épistémologiques fondamentaux. La MAE et le RMSE s’expriment rigoureusement dans l’unité physique de la variable modélisée (par exemple des millisecondes, des concentrations sanguines de cortisol ou des scores d’anxiété brute). Cette propriété leur confère une clarté d’interprétation contextuelle directe.
Cependant, cette dépendance à l’unité de mesure interdit toute comparaison d’adéquation entre des phénomènes opérant sur des ordres de grandeur distincts. Le tableau ci-dessous explicite les contrastes opérationnels séparant ces différentes métriques d’évaluation au sein de R :
- RMSE (Root Mean Squared Error) : Très forte sensibilité aux valeurs aberrantes (outliers) en raison de l’élévation des écarts au carré ; non invariant d’échelle ; unité physique d’origine.
- MAE (Mean Absolute Error) : Sensibilité linéaire modérée aux écarts résiduels extrêmes ; non invariant d’échelle ; unité physique d’origine.
- MAPE (Mean Absolute Percentage Error) : Invariant d’échelle ; asymétrie pénalisant sévèrement les surestimations ; instabilité absolue en présence de valeurs réelles approchant de zéro.
- SMAPE (Symmetric MAPE) : Invariant d’échelle ; robuste face aux asymétries de prédiction ; borné ; préservation d’une interprétabilité relative sur l’ensemble du spectre d’amplitude des séries.
Dans le cadre d’un protocole d’analyse diagnostique rigoureux, il est formellement déconseillé de fonder son jugement sur un indicateur isolé. L’articulation conjointe du SMAPE pour apprécier l’adéquation relative multi-séries, du RMSE pour débusquer les dérives résiduelles massives et de la MAE pour quantifier l’erreur moyenne concrète dans l’espace opérationnel représente la norme d’excellence préconisée par la recherche statistique contemporaine.
9. Application pratique : Évaluation de modèles de prédiction comportementale
9.1 Construction d’un jeu de données simulant des réponses comportementales
Afin d’illustrer concrètement la mise en œuvre computationnelle du calcul du SMAPE sous R, nous développons un protocole expérimental simulé caractérisant une série temporelle comportementale. Soit l’évaluation longitudinale du niveau d’attention soutenue ou de réactivité motrice mesurée quotidiennement chez une cohorte de sujets sur une période continue de 365 jours. Cette série temporelle intègre une composante déterministe de tendance, une saisonnalité hebdomadaire marquée (liée aux variations de charge cognitive au cours des jours de la semaine) ainsi qu’un bruit stochastique gaussien simulant les fluctuations biologiques aléatoires.
Pour assurer une stricte reproductibilité scientifique des données générées, la graine du générateur de nombres pseudo-aléatoires de R est expressément fixée au moyen de la commande set.seed(12345). La série temporelle est structurée autour d’une équation génératrice :
y_t = 50 + 0.05 * t + 10 * sin(2 * pi * t / 7) + epsilon_t
où t varie de 1 à 365 et epsilon_t est distribué selon une loi normale standard de moyenne nulle et d’écart-type égal à 3. Le jeu de données ainsi généré est partitionné conformément aux canons de la science des données : une phase d’entraînement (les 300 premiers jours) est réservée à l’apprentissage des modèles concurrents, tandis qu’un ensemble de test indépendant (les 65 derniers jours) est strictement conservé pour évaluer les performances prédictives sans risque de contamination d’information (data leakage).
9.2 Ajustement de modèles prédictifs concurrents sous R
Sur cet ensemble d’entraînement comportemental, deux méthodologies prédictives de nature distincte sont déployées via les packages classiques d’analyse temporelle : un modèle autorégressif intégré à moyenne mobile (ARIMA) et un modèle de lissage exponentiel basé sur des espaces d’états (ETS, Error-Trend-Seasonal). Ces modèles incarnent deux visions statistiques concurrentes pour la décomposition des signaux temporels.
Le calibrage du modèle ARIMA est exécuté via l’algorithme d’optimisation automatique auto.arima() issu de la bibliothèque forecast, lequel sélectionne le meilleur triplet de paramètres (p, d, q) par minimisation rigoureuse du critère d’information d’Akaike corrigé (AICc). Parallèlement, le modèle ETS est ajusté au moyen de la fonction ets(), qui optimise la formulation des erreurs, de la trajectoire tendancielle et des coefficients d’amortissement saisonnier.
Une fois les deux architectures paramétrées sur les 300 observations historiques, des projections ponctuelles sont générées sur un horizon futur correspondant exactement aux 65 jours constituant le segment de validation out-of-sample. Les vecteurs prédictifs extraits de ces projections représentent les estimations concurrentes qui vont être soumises au verdict comparatif du SMAPE face aux observations réelles non manipulées lors de la phase d’apprentissage.
9.3 Sélection du modèle optimal basée sur le score SMAPE
La phase d’arbitrage méthodologique réside dans l’estimation computationnelle de l’erreur symétrique relative pour chaque famille algorithmique sur la fenêtre temporelle de test. À l’aide de notre fonction vectorisée rigoureusement validée, le SMAPE est calculé séparément pour le modèle ARIMA et pour le modèle ETS face aux observations empiriques du segment d’évaluation.
Supposons que le modèle ARIMA produise un score SMAPE de 7.42 %, tandis que le modèle ETS affiche un score de 11.18 %. L’interprétation statistique de cet écart met en lumière la capacité supérieure du modèle ARIMA à épouser les oscillations cycliques rapides induites par la composante sinusoïdale hebdomadaire. Ce score permet d’affirmer avec certitude que sur le plan de l’adéquation relative symétrique, le cadre autorégressif délivre une précision accrue d’environ 3.76 points de pourcentage par rapport à son concurrent direct.
Il importe toutefois de souligner qu’en milieu académique, l’arbitrage prédictif ne saurait reposer sur une décision monocritère aveugle. Bien que le score SMAPE offre un baromètre décisif de l’erreur moyenne out-of-sample, il doit être systématiquement complété par l’analyse des fonctions d’auto-corrélation des résidus (via le test de Ljung-Box) et par la confrontation aux critères d’information intrinsèques (AIC, BIC) afin de certifier que la supériorité observée ne découle pas d’un surapprentissage marginalement avantageux sur le sous-ensemble de test sélectionné.
10. Optimisation des performances computationnelles pour grands volumes de données
10.1 Benchmarking des différentes méthodes sous R
Dans les contextes applicatifs modernes caractérisés par le traitement de flux massifs de données (big data) — tels que les logs comportementaux d’applications mobiles, les trajectoires de capteurs biométriques à haute fréquence ou les portefeuilles financiers composés de millions d’actifs synchronisés — la vitesse d’exécution algorithmique devient un enjeu opérationnel critique. L’évaluation du coût computationnel des différentes variantes d’implémentation du SMAPE dans R permet de guider l’ingénieur vers la solution optimale en termes de latence processeur et d’empreinte mémoire.
À l’aide de la bibliothèque microbenchmark, il est possible de soumettre à une confrontation chronométrique rigoureuse quatre implémentations concurrentes appliquées à un échantillon vectoriel synthétique de 1 000 000 d’observations appariées :
- Approche par boucle itérative native (for loop) : L’itération impérative classique en R pur, généralement lente en raison du coût d’interprétation dynamique ligne par ligne.
- Approche vectorisée de base R : L’exploitation directe des primitives matricielles internes C du langage via la syntaxe mean(2 * abs(f – a) / (abs(a) + abs(f))).
- Fonction standard Metrics::smape() : La routine encapsulée de la bibliothèque CRAN.
- Approche optimisée data.table : L’utilisation du moteur haute performance de l’extension data.table exploitant le multi-threading et l’accès mémoire contigu.
Les résultats empiriques démontrent invariablement la supériorité écrasante des approches vectorisées par rapport aux boucles itératives scalaires. Alors qu’une boucle itérative en R peut requérir plusieurs secondes pour traiter un million d’éléments en raison des allocations d’adresses répétées, la formulation vectorisée de base réalise cette opération en une fraction de seconde (généralement entre 15 et 30 millisecondes selon l’architecture matérielle hôte). La fonction Metrics::smape() affiche des performances comparables à l’écriture vectorisée personnalisée, confirmant qu’elle repose elle-même sur des opérations vectorielles optimisées en C.
10.2 Accélération du calcul du SMAPE avec Rcpp
Pour les scénarios computationnels extrêmes, tels que les protocoles de rééchantillonnage par bootstrap intensif impliquant des centaines de milliers de réplications sur des cohortes volumineuses, ou les procédures d’optimisation d’hyperparamètres par recherche sur grille (grid search), même la vectorisation de R peut révéler ses limites en termes de gestion fine de la mémoire cache et d’accès bas niveau aux registres du processeur. Le recours à l’extension Rcpp permet alors de franchir un cap d’efficacité en rédigeant l’algorithme directement en C++.
Une implémentation compiled C++ via Rcpp s’affranchit totalement du ramasse-miettes (garbage collector) de R durant l’exécution de la boucle d’accumulation. Le code parcourt les vecteurs réels et prédits à l’aide d’un pointeur contigu unique, accumulant la somme des erreurs symétriques dans un registre scalaire local sans jamais allouer de vecteurs intermédiaires dans la mémoire vive globale. Cette absence complète d’allocation intermédiaire pour les vecteurs de différences et de sommes absolues allège dramatiquement la pression sur la mémoire vive.
L’intégration de ce fragment C++ compilé s’opère de manière parfaitement transparente dans un script R standard grâce à l’instruction cppFunction() ou au sourçage d’un fichier source externe via sourceCpp(). Les gains chronométriques mesurés attestent d’une réduction drastique des temps d’exécution, autorisant des analyses computationnellement intensives qui seraient prohibitives sous d’autres environnements interprétés.
11. Visualisation diagnostique des erreurs SMAPE avec ggplot2
11.1 Graphique de dispersion des valeurs réelles vs prédites
La compréhension approfondie du comportement d’un modèle prédictif ne saurait se limiter à la restitution d’un scalaire synthétique global. Une métrique agrégée comme le SMAPE peut masquer des régimes de sous-performance localisés ou des disparités systématiques en fonction du niveau d’amplitude de la variable cible. La visualisation diagnostique haute fidélité au moyen de ggplot2 représente l’instrument d’investigation privilégié pour contextualiser l’origine spatiale de l’erreur.
Un premier graphique indispensable repose sur la construction d’un nuage de dispersion confrontant les valeurs observées réelles (portées sur l’axe des abscisses) aux valeurs prédites par l’algorithme (portées sur l’axe des ordonnées). Sur ce plan cartésien, la bissectrice parfaite (droite d’équation y = x) matérialise l’idéal théorique d’une concordance absolue exempte de tout biais d’estimation. Les points d’échantillonnage situés au-dessus de cette ligne témoignent d’une surestimation du modèle, tandis que les points sous-jacents indiquent une sous-estimation.
Pour enrichir cette représentation d’une dimension analytique immédiate, chaque point peut être coloré selon un dégradé continu reflétant sa contribution unitaire au score SMAPE, calculée via la composante locale 2 * |y – y_hat| / (|y| + |y_hat|). L’application des standards sémiologiques rigoureux conformes aux recommandations de l’American Psychological Association (APA) — caractérisés par un fond épuré sans quadrillage invasif (theme_classic() ou theme_bw()), une typographie proportionnelle lisible et une palette de couleurs scientifiquement étalonnée (telle que viridis) — permet d’identifier visuellement en un instant si les erreurs relatives les plus sévères se concentrent dans les zones de basse magnitude ou au sommet de la distribution empirique.
11.2 Distribution et décomposition temporelle des erreurs relatives
Au-delà du plan de dispersion statique, l’analyse structurelle des résidus requiert l’examen approfondi de la distribution de densité des erreurs relatives unitaires ainsi que leur trajectoire au cours du temps. Un modèle robuste ne doit présenter aucune dérive temporelle de son erreur moyenne, sous peine de trahir une inadéquation face aux changements de régime ou aux dynamiques stochastiques non stationnaires.
La première figure complémentaire associe un histogramme à une courbe d’estimation de densité par noyau (kernel density estimation) des erreurs relatives individuelles. Ce tracé permet d’évaluer la symétrie de la distribution des résidus relatifs : une asymétrie à droite marquée indique que si la majeure partie des prédictions affiche une excellente conformité, une fraction minoritaire d’observations subit des déviations pénalisantes majeures. Cette lecture est fondamentale pour juger de la stabilité opérationnelle du système prédictif.
La seconde figure diagnostique trace l’évolution chronologique du SMAPE glissant (calculé par exemple sur une fenêtre mobile de 14 ou 30 jours le long de la série temporelle). La visualisation longitudinale de ce SMAPE glissant met en relief les périodes spécifiques de sous-performance du modèle : ruptures de tendance, crises événementielles ou phases de volatilité accrue. Cette décomposition dynamique transforme une simple mesure d’erreur scalaire en un véritable instrument de diagnostic préventif pour le monitoring continu des algorithmes prédictifs en production.
12. Bonnes pratiques, pièges courants et recommandations académiques
12.1 Pièges d’interprétation fréquemment rencontrés
L’exploitation du SMAPE dans les publications scientifiques et les rapports techniques est régulièrement entachée d’erreurs méthodologiques récurrentes qui en compromettent la portée analytique. Le premier piège, mentionné précédemment mais dont l’occurrence demeure remarquablement élevée, réside dans la confusion pernicieuse entre l’échelle conventionnelle de Makridakis bornée à 200 % et l’échelle réduite d’Armstrong bornée à 100 %. Présenter un SMAPE de 30 % sans expliciter si le plafond d’erreur absolue théorique se situe à 100 % ou 200 % crée une équivoque majeure sur la précision réelle du modèle rapporté.
Un second piège d’interprétation concerne la surévaluation des performances prédictives sur des séries stationnaires triviales. Dans une série temporelle dotée d’une très faible variance et oscillant étroitement autour d’une valeur moyenne constante élevée, un prédicteur naïf trivial consistant à projeter perpétuellement cette moyenne produit un SMAPE artificiellement exceptionnel (par exemple inférieur à 3 %). L’analyste imprudent pourrait en déduire une maîtrise remarquable du phénomène alors que le modèle est totalement incapable d’anticiper les variations marginales du système. Il est impératif de confronter systématiquement le score SMAPE à celui d’un benchmark trivial de référence (comme la prévision naïve ou la marche aléatoire).
Enfin, sur le plan de la théorie statistique de la décision, il est crucial de comprendre que l’optimisation directe d’un modèle sous une fonction de perte basée sur des écarts absolus symétriques conduit mathématiquement l’algorithme à converger vers la médiane conditionnelle de la distribution plutôt que vers sa moyenne conditionnelle. Si l’objectif du modélisateur est de préserver la masse totale cumulée d’un phénomène (par exemple le total cumulé d’une consommation de ressources ou d’une réponse clinique), la prévision par la médiane induira un biais d’accumulation systématique dans le temps, un travers que le seul examen du score SMAPE est incapable de révéler.
12.2 Standards de publication et transparence méthodologique
Pour satisfaire aux exigences contemporaines de la science ouverte et garantir la reproductibilité intégrale des conclusions expérimentales dans les revues internationales à comité de lecture, la description des procédures d’évaluation de l’erreur doit obéir à des standards formels d’une extrême rigueur. La simple mention « les modèles ont été évalués par le SMAPE » est aujourd’hui jugée scientifiquement insuffisante.
Dans la section Méthodologie du manuscrit scientifique, les auteurs doivent impérativement expliciter l’équation mathématique formelle retenue pour le calcul du SMAPE, en déclarant sans ambiguïté les bornes théoriques de la métrique, le mode de traitement appliqué aux valeurs nulles (présence d’un paramètre epsilon ou condition logique explicite), et la stratégie d’exclusion ou d’imputation des valeurs manquantes. La formule retenue doit être explicitée dans le corps du texte avec sa notation indexée complète.
De surcroît, conformément aux directives de l’Open Science Framework (OSF), les scripts R complets ayant servi au prétraitement des données, au calibrage des modèles et à l’extraction des indicateurs de performance doivent être versés dans un référentiel public pérenne sous licence libre, accompagnés des données anonymisées nécessaires à l’exécution synchrone du code. La formulation des résultats dans les tableaux de synthèse doit systématiquement associer aux scores ponctuels de SMAPE des intervalles de confiance estimés par rééchantillonnage non paramétrique (bootstrap), fournissant ainsi une mesure transparente de l’incertitude entourant l’évaluation prédictive.
12.3 Création d’un workflow reproductible avec R Markdown ou Quarto
L’intégration opérationnelle du calcul du SMAPE au sein d’une chaîne de recherche moderne gagne à être encapsulée dans des documents computationnels dynamiques via R Markdown ou la plateforme de nouvelle génération Quarto. Ces environnements associent intimement le texte narratif scientifique, les blocs de code exécutables en R et les rendus graphiques haute résolution au sein d’un document source unique, garantissant que tout changement ultérieur dans le jeu de données mettra à jour instantanément les métriques statistiques calculées.
Pour assurer une reproductibilité computationnelle absolue à travers le temps et l’espace, ce flux de travail dynamique doit être assujetti à la gestion rigoureuse de l’environnement des dépendances logicielles au moyen du package renv. Cette bibliothèque enregistre de manière déterministe dans un fichier de verrouillage (lockfile) les versions exactes de chaque package mobilisé (incluant Metrics, dplyr, smooth et leurs dépendances C sous-jacentes), immunisant le projet contre les altérations de comportement algorithmique consécutives aux mises à jour logicielles tierces futures.
Enfin, la restitution des résultats prédictifs au sein du document dynamique doit privilégier des générateurs de tableaux académiques de haute tenue typographique tels que knitr::kable(), combiné aux extensions kableExtra ou gt. Ces outils convertissent directement les structures tabulaires de R en tableaux élégants formatés selon les standards stricts de l’APA ou des revues médicales, finalisant ainsi un pipeline d’analyse statistique prédictive alliant rigueur théorique, performance computationnelle et perfection esthétique formelle.
Références
- Armstrong, J. S. (1985). Long-Range Forecasting: From Crystal Ball to Computer (2nd ed.). John Wiley & Sons. https://global.oup.com/
- Chen, Z., Yang, Y., & Zhou, Z. (2017). An empirical evaluation of percentage error metrics in predictive regression modeling. International Journal of Forecasting, 33(4), 895–907. https://doi.org/10.1016/j.ijforecast.2017.04.004
- Eddelbuettel, D., & François, R. (2011). Rcpp: Seamless R and C++ integration. Journal of Statistical Software, 40(8), 1–18. https://doi.org/10.18637/jss.v040.i08
- Hamner, B., & Frasco, M. (2018). Metrics: Evaluation Metrics for Machine Learning (R package version 0.1.4). CRAN. https://cran.r-project.org/package=Metrics
- Hyndman, R. J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice (3rd ed.). OTexts. https://otexts.com/fpp3/
- Hyndman, R. J., & Koehler, A. B. (2006). Another look at measures of forecast accuracy. International Journal of Forecasting, 22(4), 679–688. https://doi.org/10.1016/j.ijforecast.2006.03.001
- Makridakis, S. (1993). Accuracy measures: Theoretical and practical concerns. International Journal of Forecasting, 9(4), 527–529. https://doi.org/10.1016/0169-2070(93)90079-3
- Makridakis, S., & Hibon, M. (2000). The M3-Competition: Results, conclusions and implications. International Journal of Forecasting, 16(4), 451–476. https://doi.org/10.1016/S0169-2070(00)00057-1
- Makridakis, S., Spiliotis, E., & Assimakopoulos, V. (2020). The M4 Competition: 100,000 time series and 61 forecasting methods. International Journal of Forecasting, 36(1), 54–74. https://doi.org/10.1016/j.ijforecast.2019.04.014
- Svetunkov, I. (2023). Forecasting and Analytics with the Augmented Dynamic Adaptive Model (ADAM). Chapman & Hall/CRC. https://openforecast.org/adam/
- Wickham, H., Averick, M., Bryan, J., Chang, W., McGowan, L. D., François, R., Grolemund, G., Hayes, A., Henry, L., Hester, J., Kuhn, M., Pedersen, T. L., Miller, E., Bache, S. M., Müller, K., Ooms, J., Robinson, D., Seidel, D. P., Spinu, V., … Yutani, H. (2019). Welcome to the Tidyverse. Journal of Open Source Software, 4(43), Article 1686. https://doi.org/10.21105/joss.01686