scores - Artelia/Mascaret GitHub Wiki
A travers le plugin mascaret, les scores peuvent être calculés de deux manières différentes. La première est globale, c'est à dire que nous calculons les scores de l'ensemble des profils qui ont des observations associées. La seconde est au niveau du profil. S'il y a des observations associées, il est alors possible de calculer les scores entre les observations et les modèles.
Il faut noter que pour permettre le calcul des scores, les résultats du modèle sont rééchantillonnés de façon à correspondre aux temps des observations.
Dans un premier temps, les formules des scores seront décrites. Et dans un second temps, nous présenterons les GUI utilisés pour le calcul des scores.
Dans cette partie, nous allons donc reprendre les descriptions des scores faites dans le document d'utilisation du logiciel Scores, développé au sein de Vigicrue sur lesquelles nous nous sommes basée pour le calcul des scores. Nous débuterons par les scores d'erreurs "simples". Puis nous décrirons les autres erreurs :
- le critère de Nash-Sutcliffe
- l'erreur sur les volumes
- l'erreur sur les pointes
- la persistance
Plusieurs notations seront, d'ailleurs, reprises tous le long des descriptions. Elles sont données indifféremment pour l'une ou l'autre des variables hauteur ou débit :
-
$H_{obs}$ (ou$Q_{obs}$ ) : est la valeur observée -
$H_{mod}$ (ou$Q_{mod}$ ): est la valeur prévue par un modèle donné - n : le nombre de valeurs considérées
-
$\overline{H_{obs}}$ ou$\overline{Q_{obs}}$ : moyenne arithmétique des hauteurs ou débits observés
Les scores d'erreurs que nous appellerons erreurs simples sont les erreurs suivantes :
- L'erreur moyenne et l'erreur absolue moyenne
- L'erreur relative moyenne et l'erreur relative absolue moyenne
- L'écart-type des erreurs
- L'Erreur Quadratique Moyenne (EQM)
- Le biais (en %)
- La précision (en %)
- La distribution des erreurs
L'erreur moyenne et l'erreur absolue moyenne
Calcul de la moyenne des écarts entre la prévision et l'observation à chaque pas de temps :
💡 Usages :
La valeur calculée est directement dans l'unité de la grandeur analysée (m ou m³/s le plus souvent). Pour qualifier l'ampleur des erreurs, l'erreur absolue moyenne est préférable (la valeur absolue empêche les erreurs de se compenser). Sans valeur absolue, on pourra en revanche avoir une idée d'un éventuel biais systématique.
L'erreur relative moyenne et l'erreur relative absolue moyenne
Le calcul est similaire au précédent, mais en valeur relative, c'est à dire que la différence est divisée par la valeur observée.
💡 Usages :
La valeur de score est sans unité. L'utilisation est globalement la même que les scores d'erreurs non relative. Toutefois, le calcul en relatif permet de faciliter les comparaisons (par exemple entre plusieurs stations, et notamment lorsque l'on s'intéresse au débit...). Il est à noter que cette formule peut aboutir à des valeurs aberrantes lorsque les données d'observation sont proches de 0 (ce qui se produit, principalement pour du calcul en hauteur, lorsque le zéro de l'échelle est au-dessus des plus bas niveaux observables – c'est le cas pour certains marégraphes).
L'écart-type des erreurs
Formule classique de l'écart type discrétisé, à savoir la moyenne quadratique des écarts à la moyenne appliquée aux erreurs :
💡 Usages :
Classiquement, l'écart-type permet de qualifier la dispersion des erreurs par rapport à l'erreur moyenne.
L'Erreur Quadratique Moyenne (EQM)
Formulation de l'erreur quadratique moyenne :
💡 Usages :
Par rapport au score d'erreur absolue moyenne, l'erreur quadratique, du fait de son exposant au carré, caractérise davantage les erreurs les plus importantes, que l'on observe classiquement pendant les crues pour les modèles destinés à la prévision des crues. Il reflètera donc a priori mieux le comportement en crue du modèle.
Le biais (en %)
Il s'agit de l'erreur relative moyenne, exprimée en %.
💡 Usages :
Sans unité, le biais est principalement utilisé pour mettre en avant un biais systématique d'un modèle, à la sur-estimation ou à la sous-estimation.
La précision (en %)
Il s'agit de l'erreur relative absolue moyenne, exprimée en %.
💡 Usages :
Sans unité, la précision est un autre score permettant d'apprécier l'importance des erreurs commises.
La distribution des erreurs
L'établissement d'une distribution d'erreurs part des erreurs simples pour chaque pas de temps :
Erreurs non absolues : Erreur(t) = valeur prévue(t) – valeur observée(t)
ou
Erreurs absolues : |Erreur(t) = valeur prévue(t) – valeur observée(t)|
Au lieu d'en calculer une moyenne globale (comme pour obtenir l'erreur moyenne ou l'erreur absolue moyenne), on les ordonne en quantiles au non dépassement sur les erreurs commises (en valeur absolue ou non).
💡 Usages :
La distribution permet d'avoir une idée de la répartition des erreurs (avec notamment les valeurs extrêmes, la médiane...), et d'obtenir par exemple une fourchette d'erreurs avec un intervalle de confiance à 80% (entre les quantiles 10% et 90%).
Il s'agit d'un critère d'efficience adapté à l'hydrologie.
💡 Usages :
-
$Nash = 1$ : correspondance parfaite entre observations et prévisions -
$0 < Nash < 1$ : plus le critère est proche de 1, plus la précision du modèle est bonne -
$Nash = 0$ : le modèle est aussi bon que la « climatologie » (prendre à chaque pas de temps la moyenne des observations comme prévision aurait en moyenne la même pertinence que le modèle) -
$Nash < 0$ : le modèle est moins bon que la « climatologie »
Il s'agit d'un critère d'efficience imaginé spécifiquement pour les modèles de prévision hydrologiques. A la base plutôt destinée à être utilisé pour les débits, il reste applicable en hauteur. Il est sensible aux valeurs extrêmes (et donc aux erreurs commises en crue) et peut varier de
Il est à noter que le critère de Nash-Sutcliffe est généralement jugé peu pertinent pour le domaine maritime ou estuarien étant donné les variations fortes et répétitives que l'on y rencontre du fait de l'influence des marées. Ce critère se prête bien aux calculs par classes, avec rephasage ou en phase de montée.
Il s'agit, en débit uniquement, de comparer les volumes des crues observées et simulées, qui se calculent par l'intégrale des courbes d'observations et de prévisions (c'est à dire l'aire comprise sous ces courbes), soit :
Cela donne après discrétisation :
💡 Usages :
Au dela des critères d'erreur sur une série de données ou sur une pointe de crue, calculer les erreurs en volume sur les débits permet d'apporter un éclairage hydrologique supplémentaire sur le comportement d'un modèle.
Les erreurs sur les pointes comprennent deux erreurs :
- L’écart entre les valeurs des pointes
- Le décalage temporel des pointes.
L'erreur commise sur la pointe
Sur chaque événement, on détermine le maximum des observations et on le compare avec le maximum des prévisions, à l'intérieur d'une fenêtre temporelle définie (pour être sûr de comparer la même crue).
Outre l'écart calculé pour chaque événement, la moyenne et la moyenne absolue de toutes les erreurs sont également disponibles dans la balise « chronique entière ».
💡 Usages :
Le calcul d'une erreur sur le maximum de la crue mettra en évidence les performances du modèle sur ce point particulier, qui fait fréquemment l'objet d'une communication de prévisions chiffrées. La moyenne des erreurs sur la pointe, calculée pour tous les événements, pourra de plus donner un ordre de grandeur de fourchette d'incertitude sur les maxima.
Le décalage temporel sur la pointe
Même principe que le score précédent, mais en s'intéressant au décalage temporel. Le paramètre α (compris entre 0 et 1) est paramétrable dans le fichier de configuration. Lorsque celui-ci vaut 1 (par défaut), on calcule simplement le décalage temporel entre le max observé et le max simulé sur l'événement, recherché à l'intérieur de la fenêtre temporelle.
Lorsque
Outre le décalage calculé pour chaque événement, la moyenne et la moyenne absolue de tous les décalages sont également disponibles dans la balise « chronique entière ».
💡 Usages :
Le calcul d'une erreur sur le maximum de la crue mettra en évidence les performances du modèle sur ce point particulier, qui fait fréquemment l'objet d'une communication de prévisions chiffrées. La moyenne des erreurs sur la pointe, calculée pour tous les événements, pourra de plus donner un ordre de grandeur de fourchette d'incertitude sur les maxima.
Pour un délai de prévision
💡 Usages :
-
$Persistance = 1$ _: correspondance parfaite entre observations et prévisions à t+Δt -
$0 < Persistance < 1$ : plus le critère est proche de 1, plus la performance du modèle est bonne pour le délai de prévision choisi -
$Persistance = 0$ : en moyenne, le modèle étudié est aussi performant que le modèle naïf, donc vraisemblablement non viable -
$Persistance < 0$ : en moyenne, le modèle étudié est moins performant que le modèle naïf, donc vraisemblablement non viable
Le score de persistance se calcule pour un délai de prévision donné. Il revient à comparer le modèle étudié au « modèle naïf », qui proposerait systématiquement comme prévision à
Appliquer le critère de persistance pour des délais de prévision très (trop) courts n'est pas pertinent, le modèle naïf devenant alors très difficile à battre (et le score de persistance étant généralement médiocre).
Dans cette partie, nous revenons plus en détail sur les GUI. Il y a deux variantes : l'une pour le calcul global des scores, la deuxième pour le calcul local des scores.
Le GUI global est composé de quatre onglets:
- L'onglet "Scores Selection" : permet de sélectionner les scénarios pour le calcul des scores
- L'onglet "Scores Parameters" : permet de choisir les scores calculés ainsi qu'ajouter les informations nécessaires
- L'onglet "Scores Results" : permet de visualiser les résultats des scores
- L'onglet "Scores Distribution" : permet de visualiser les résultats pour la distribution des erreurs
L'accès au calcul global des scores peut être fait dans la section Post-treatment -> Scores, comme dans l'image ci-dessous:
Le calcul des scores global est fait sur un scénario où l'ensemble des observations sont pris en comptes.
Par exemple dans le cadre du calcul de l'erreur moyenne, l'ensemble des écarts
Dans cet onglet, la sélection du scénario est faite. Il faut noter qu'un bouton "clean" en haut à droite a été ajouté permettant de désélectionner la totalité des runs et scénarios.
L'onglet "Scores Parameters":
Cet onglet peut être divisé en trois parties :
- La première pour choisir les scores à calculer (cadre bleu sur l'image ci-dessus)
- La seconde permet d'ajouter les paramètres nécessaires pour le calcul des scores (cadre rouge)
- La troisième est le bouton de lancement du calcul (cadre vert)
Notons que sur la partie des paramètres, les options ou les paramètres nécessaires pour le calcul des scores s’activeront en fonction des scores cochés.
Dans le cas de la distribution par exemple il faut indiquer la discrétisation des quantiles (par 10%, ou par 25%, ...).
💡 Astuce :
Pour le calcul des scores d'erreurs simples, il est possible de rencontrer des valeurs d'observation nulles lors du calcul des erreurs relatives. L'option "threshold value" peut être activée pour éviter ce problème. Il faut alors indiquer la valeur seuil en dessous de laquelle les données d'observation seront ignorées. Par exemple si on indique une valeur
Le paramètre "Reference Time" est la date initiale du modèle dans le cas d'un scénario calculé à partir d'un événement.
💡 Astuce :
L'ajout d'une date de référence dans le cas d'un scénario non lié à un événement (scénario n'ayant pas de date initiale) permet le calcul des scores avec des donnée d'observation datées même dans le cas d'un scénario sans événement. La date sera d'ailleurs affichée en rouge tant qu'il n'y a pas eu de modification de celle-ci.
Les paramètre "Start Time" et "Last Time" permet d'indiquer les dates des bornes sur lesquelles le score de persistance ou l'erreur sur les pointes est calculé.
Lors de la modification de la date de référence l'ensemble des dates ("Persistence Start(Last) Time" et "Peaks Start(Last) Time" ) seront mise à jour en fonction de la nouvelle date de référence.
Dans le cas de la persistance, il faut également préciser le pas de temps sur lequel le calcul est fait. Et dans le cas de l'erreur sur les pointes, les coefficients alpha sont demandés pour le cas d'un calcul avec Q ("alpha_Q") et H ("alpha_Q").
💡 Astuce :
Dans la partie paramètres, le bouton default permet de recharger les valeurs initiales des paramètres.
Lors du lancement de calcul, s’il y a un manque de données, ou une non correspondance de date par exemple, un pop-up s'ouvrira indiquant les scénarios et les scores ayant un problème. Enfin, quand le calcul est fini, les onglets "Scores Results" ou "Scores Distribution" seront disponibles.
L'onglet "Scores Results":
Cet onglet permet de visualiser les résultats des scores à l'exception du calcul de la distribution des erreurs. Il y un sous-onglet par type de scores qui ont eux-mêmes des sous onglet de l'erreur calculé. Notez que si des observations pour Q et H existent, le calcul sera fait pour chacune des variables. Les erreurs sont affichées sous forme de tableau avec en début de ligne le run et le scénario avec l'abscisse du profil comme suivant:
-
{run} - {scénario}
{abscisse}
-
{observation} - {variable}
L'onglet "Scores Distribution":
Cet onglet est composé de deux sous onglets, l'un pour les erreurs de distribution et l'autre pour les erreurs absolues de distribution. Les erreurs sont affichées comme précédemment sous forme de tableau avec cette fois-ci la distribution en début de ligne et le cas calculé en entête de colonne :
-
{run} - {scénario}
{abscisse}
{observation} - {variable}
Pour accéder au calcul des scores localement, il faut utiliser le menu le menu hydrogramme (voir §5.3) en sélectionnant le profil étudié. S’il y a une observation liée au profil, la case "Compute Scores" sera disponible (cadre rouge sur l'image ci-dessous). Il suffit alors de la cocher pour changer de mode et pouvoir calculer les scores.
💡 Astuce :
Notez que si la case "Compute Scores" est décoché cela permet de revenir au tableau des résultats. Et en la cochant de nouveau, cela permet de revenir sur les onglets des scores sans que vous perdiez d'information.
Lorsque la case "Compute Scores" est cochée, les onglets permettant le calcul des scores apparaissent (voir image ci-dessous). Les onglets sont :
- L'onglet "Scores Parameters"
- L'onglet "Scores Results"
- L'onglet "Scores Distribution"
Ils sont similaires dans leur utilisation et fonctionnement à ceux pour le calcul global. La différence est que le score est calculé avec seulement les observations sur le profil étudié.
💡 Astuce :
Comme vu précédemment, il est possible dans le cas de calcul sans évènement de lier une observation à un profil et donc en modifiant la "Reference Time" du modèle de calculer des scores. Cependant l'observation sur ce profil n'est pas visualisable car les données du modèle n'ont pas de date de référence.
Enfin notez que le fonctionnement des scores est également valide avec l'utilisation dans le cas du mutli-graph.