Accueil
 

Discrétisation

Entrée 1 Donnée continue
ou
1 Matrice continue
Sortie Donnée discrétisée
ou
Matrice discrétisée

Ecran :

Description :
La donnée en entrée est répartie en classes selon la discrétisation choisie. Le résultat en sortie est le numéro de la classe pour chaque entité de départ.

La fenêtre de paramétrage se décompose en 2 onglets :
   - l'onglet Paramètres, contenant le choix du type de discrétisation, le facteur pour l'écart-type dans le cas des discrétisations standard et standard centrée sur zéro, le nombre de classes voulues, et le tableau des seuils automatiques et observés.
   - l'onglet Graphiques, contenant les histogrammes et la boîte et moustaches.

Le choix de la discrétisation se fait selon le type de donnée en entrée. Les utilisateurs peu habitués à cette opération apprendront très vite à reconnaître la bonne discrétisation en s'aidant notamment de la boîte et moustaches présente dans l'onglet Graphiques. La discrétisation par défaut est celle en quantiles mais attention elle n'est pas toujours la plus juste.

Le nombre de classes peut être un chiffre entre 1 et 512, excepté lors du calcul des moyennes emboîtées, pour lequel le nombre de classes doit être une puissance de 2 (2, 4, 8, 16, 32... 512). ATTENTION : le nombre de classes ne doit en général pas dépasser 12, pour une bonne représentation en couleurs ou symboles qualitatifs.
De plus, il existe deux méthodes permettant de trouver le nombre de classes optimal théorique :
   - selon Brooks et Carruthers :  nombre de classes = partie entière de ( 5*log10(N) + 0.5 )
   - selon Huntsberger :  nombre de classes = partie entière de ( 3.3*log10(N) + 1.5 )
où N = nombre de valeurs de la donnée.

Le facteur pour l'écart-type permet de choisir un facteur multiplicatif qui déterminera la largeur des classes dans le cas des discrétisations standard et standard centrée sur zéro.

Pour la discrétisation par seuils observés, les seuils peuvent être

  • saisis manuellement dans la colonne de droite du tableau. Vous devez valider chacun des seuils que vous saisissez en utilisant les touches "Flèche vers le bas" ou "Tabulation" de votre clavier.
  • positionnés à l'aide de la souris dans l'onglet Graphiques (voir plus bas).

Le bouton représentant une flèche, qui se situe en dessous du tableau des seuils, permet de transférer les valeurs des seuils automatiques dans la colonne des seuils observés.

La zone de texte située en bas de l'onglet Paramètres contient les indices de Jenks et de Tai, les variances inter-groupe et intra-groupe, le nombre d'éléments contenus dans chaque classe, ainsi qu'un résumé statistique de la donnée. Voir le paragraphe consacré aux indices plus loin.

L'onglet Graphiques, dont une copie d'écran se trouve ci-dessus, contient :
   - en bas : la représentation en boîte et moustaches (en vert).
   - au milieu : un diagramme en fréquences, représentation graphique de la donnée (en noir), avec sa courbe de cumuls (en bleu).
   - en haut : un diagramme en densité (en rouge), représentant chaque classe avec une hauteur H calculée comme suit :
                   H = nombre d'éléments dans la classe / largeur de la classe

En déplaçant la souris sur le graphique, la valeur pointée par la souris s'affiche dans la zone Valeur de la donnée située en-dessous du graphique.

Dans le cas d'une discrétisation par seuils observés, des barres grises verticales représentant les seuils apparaissent sur les graphiques. Vous pouvez les déplacer à la souris de façon à positionner manuellement les seuils en vous aidant des graphiques. Leur déplacement n'est autorisé qu'entre les valeurs minimum et maximum de la donnée.
Dès qu'une barre verticale est déplacée, la valeur associée à ce seuil est automatiquement modifiée dans le tableau de l'onglet Paramètres, et inversément.
Pour actualiser le diagramme en densité (graphique du haut, en rouge) en fonction des nouveaux seuils que vous venez de positionner, vous devrez cliquer sur le bouton Appliquer.

Pour vous aidez à choisir la discrétisation la plus adaptée, une échelle allant de 0 à 1 vous indique l'indice de TAI. Plus cet indice tend vers 1, plus votre discrétisation est juste.

En changeant la taille de la fenêtre, les dessins s'adapteront automatiquement à la nouvelle taille.

Graphiques :
Sous chaque graphique, vous trouverez un bouton permettant de créer une nouvelle "fenêtre graphique" à partir du dessin courant. Cette fenêtre vous permettra de comparer plusieurs graphiques, de les exporter ou de les imprimer.

Types de données :
Ce module change son type de sortie en fonction des données en entrée. Par défaut, il va faire un calcul sur des données continues et fournir une donnée discrétisée. Mais si vous lui connectez en entrée une donnée matricielle, alors sa sortie sera une matrice discrétisée.

En revanche, si le module a déjà des connexions en sortie, alors son type d'entrée restera figé. Pour lui connecter une donnée matricielle, il faudra d'abord le déconnecter de ses fils.

Formules utilisées pour les indices :

Indice de Jenks (du nom de son auteur) :

écart d'une classe = valeur absolue de :
         ( largeur / moyenne ) - ( largeur / milieu )

     Indice de Jenks = ( somme des écarts de chaque classe ) / nombre de classes

Indice de Tai (Tabular Accuracy Index également mis au point par Jenks) :

Distance1 = somme des distances entre les valeurs et la moyenne de la classe dans laquelle elles sont
Distance2 = somme des distances entre les valeurs et la moyenne générale

     Indice de Tai = 1 - Distance1 / Distance2

Plus l'indice de Tai est proche de un, plus la discrétisation est bonne.
Plus l'indice de Jenks est proche de zéro, plus la discrétisation est bonne.
Attention, ces indices sont plus ou moins représentatifs selon les configurations de classes, en particulier si les valeurs sont entières, il vaut mieux utiliser le graphique que ces indices pour vérifier la discrétisation.

Variance inter-groupe :

Cet indice indique si les classes obtenues sont similaires ou différentes.

Distance = somme des distances carrées entre la moyenne de chaque classe et la moyenne générale des données
                   multipliées par le nombre de données dans la classe

     Variance inter-groupe =  Distance / (nombre de classes - 1)

Variance intra-groupe :

Cet indice indique si les classes obtenues sont homogènes ou disparates.

Distance = somme des distances carrées entre les valeurs et la moyenne de la classe dans laquelle elles sont

     Variance intra-groupe =  Distance / (nombre de données - nombre de classes)

Lorsque vous comparez différentes discrétisations, les deux variances ci-dessus sont très importantes, vous devez diminuer la variance intra-groupe pour rendre les groupes homogènes, et augmenter la variance inter-groupe pour éloigner les groupes les uns des autres.

Liste des discrétisations :

Standard :
La discrétisation est faite selon une loi de Gauss sur les valeurs de la donnée. Les classes sont centrées sur la moyenne arithmétique. Elles sont de largeur un écart-type par défaut, mais vous pouvez choisir de mettre comme largeur 2 fois l'écart-type, 3 fois l'écart-type... grâce au Facteur pour l'écart-type. Si les classes extrêmes sont trop petites pour contenir toute l'étendue des valeurs de la donnée, elles sont élargies au minimum et au maximum.

Avec un même facteur pour l'écart-type, cette discrétisation donne lieu à seulement deux répartitions :
   - une première si le nombre de classes est pair.
   - une seconde si le nombre de classes est impair.

En effet, par exemple pour 3, 5, 7 ... classes avec un facteur pour l'écart-type de 1, la classe centrale sera toujours centrée sur la moyenne, et de largeur un écart-type.

Cette discrétisation n'est pas adaptée aux données relatives, par exemple, si vous cartographiez un pourcentage, la moyenne des données n'est pas la moyenne des pourcentages.

Standard centrée sur zéro :
Cette discrétisation est identique à la discrétisation standard, mais les classes sont cette fois-ci centrées sur zéro, et non pas sur la moyenne arithmétique. Cela permet une représentation en couleurs chaudes et froides pour les classes négatives ou positives.

Quantiles :
Les classes sont calculées pour qu'elles contiennent le même nombre d'éléments. Les classes pourront avoir un nombre d'éléments très légèrement différent selon la répartition.
Exemple de cas où le nombre d'éléments à répartir par classe n'est pas entier :
  valeurs de la donnée : 1 , 4 , 4 , 4 , 4 , 10
  nombre de classes : 4   => 1.5 élément par classe
  on aura alors :
    classe 1 = [1;4[ contient 2 éléments
    classe 2 = [4;4[ contient 1 élément
    classe 3 = [4;10[ contient 2 éléments
    classe 4 = [10;10] contient 1 élément
Remarque : la classe 1 contient les valeurs 1 et 4, malgré les bornes indiquées.

Egales étendues :
L'intervalle sur lequel se trouvent les valeurs de la donnée est partagé équitablement entre les différentes classes.

Moyennes emboîtées :
Les limites de classes sont positionnées aux moyennes emboîtées des valeurs de la donnée. Par exemple, pour 4 classes :
  - les classes 2 et 3 se touchent à la moyenne de toutes les données.
  - les classes 1 et 2 se touchent à la moyenne des données des classes 1 et 2 réunies.
  - les classes 3 et 4 se touchent à la moyenne des données des classes 3 et 4 réunies.

Cette discrétisation n'est pas adaptée aux données relatives, par exemple, si vous cartographiez un pourcentage, la moyenne des données n'est pas la moyenne des pourcentages.

Jenks :
La discrétisation de jenks repose sur la notion de variance, c'est-à-dire sur la dispersion des valeurs de la donnée autour de la moyenne. Elle vise à minimiser la variance intra-classes (donc à maximiser l'homogénéité des classes), et à maximiser la variance inter-classes (donc à accroître les différences entre classes).

Observés :
Les seuils des classes sont fournis par l'utilisateur dans la colonne prévue à cet effet ou positionnés manuellement à l'aide de la souris sur les graphiques.

Principe commun aux discrétisations (sauf quantiles) :
Si plusieurs classes ont les mêmes bornes, les données concernées seront placées dans la première classe.
Exemple :
  valeurs de la donnée : 12 , 12 , 15 , 15 , 19
  répartition :
    classe 1 = [12;12[
    classe 2 = [12;12[
    classe 3 = [12;19]
  alors :
    la classe 1 contient 2 éléments
    la classe 2 est vide
    la classe 3 contient 3 éléments

Attention :  les seuils sont stockés en simple précision, et par conséquent la discrétisation ne peut distinguer des valeurs dont les 8 premiers chiffres sont identiques.

Script :

2      module untyped_list ""
3        mod_type integer "103"
3        mod_subtype integer "502"
3        mod_name string "Discrétisation"
3        mod_dads integer_list ""
4          ? integer "4"
3        work_on_matrix boolean "F"
3        quant_type integer "802"
3        class_nb integer "4"
3        stddur_fact double "1"
3        user_thresholds double_list ""
4          ? double "0"
4          ? double "0"
4          ? double "0"
4          ? double "0"
4          ? double "0"
3        auto_thresholds double_list ""
4          ? double "17"
4          ? double "45"
4          ? double "65"
4          ? double "78"
4          ? double "95"
3        classes_count integer_list ""
4          ? integer "4"
4          ? integer "4"
4          ? integer "4"
4          ? integer "3"
3        jenks double "0.013676485"
3        tai double "0.63260762"
3        inter_grp double "2054.4944"
3        intra_grp double "75.113636"

Valeurs pour quant_type :
Observés                   801
Quantiles                  802
Egales étendues            803
Moyennes emboîtées         804
Standard                   805
Standard centrée sur zéro  806
Jenks                      807

Dans la liste des seuils automatiques, on peut voir que le minimum et le maximum des valeurs
sont également dans la liste. Ces valeurs sont obligatoires, mais elles sont recalculées
par le module. Il est donc possible de mettre des zéros.


Exemple d'utilisation