Aller au contenu principal

L'analyse exploratoire des données

Ce que ce chapitre apporte 6 points
  • Décrire un jeu de données par ses dimensions, ses types et ses statistiques de base.
  • Lire une distribution, y reconnaître une asymétrie, une queue lourde ou une troncature, et la comparer entre plusieurs groupes.
  • Repérer une valeur sentinelle, des doublons, des libellés incohérents et des valeurs manquantes.
  • Lire une matrice de corrélation, et savoir ce qu'elle ne montre pas.
  • Comparer une cible entre sous-groupes pour trouver les variables qui portent l'information.
  • Mesurer le déséquilibre d'une cible et en tirer les conséquences.
La coopérative de Vérelles collecte le blé de quelque 180 exploitations adhérentes du plateau, le stocke dans son silo et le vend ; ses techniciens conseillent les adhérents. Avant d'annoncer le tonnage qu'elle collectera, elle rassemble ses relevés : une ligne par parcelle, avec son sol, la pluie du printemps, l'azote apporté et le rendement pesé à la livraison. Le rendement moyen tombe à 58,1 quintaux par hectare, quand ses techniciens en attendaient une soixantaine. Mauvaise année, ou mauvais tableau ? Le premier chapitre a montré qu'un modèle ne vaut que ce que valent ses données ; l'analyse exploratoire, qui précède tout modèle, dit ce qu'elles valent. Elle ne répond à aucune question de métier : elle découvre ce qu'il y a réellement dans le tableau, par opposition à ce que celui qui l'a rempli croit y avoir mis. Une benne jamais pesée inscrite à zéro, un logiciel de saisie qui plafonne l'azote, des lignes recopiées deux fois, un sol écrit de deux façons : rien de tout cela n'apparaît dans une documentation, et tout se voit en un quart d'heure de graphiques.

Le premier regard

Quatre commandes, dans cet ordre.

Les dimensions. Combien de lignes, combien de colonnes. Un chiffre inattendu est déjà une information.
Les types. Ce que la bibliothèque a deviné pour chaque colonne. Une colonne numérique lue comme du texte signale presque toujours une valeur parasite.
Les statistiques. Minimum, maximum, quartiles, moyenne. C'est là qu'un minimum à zéro ou un maximum suspicieusement rond se remarquent.
Quelques lignes. Les regarder vraiment, en entier. Un tableau se comprend mieux sur dix lignes lues que sur mille agrégées.

Vingt lignes des relevés, telles qu'elles arrivent au service de la coopérative. Cliquer sur un en-tête pour trier : c'est ce geste, et pas une moyenne, qui fait remonter les défauts les uns à côté des autres.

n°sol↕pluie (mm)↕azote (kg/ha)↕surface (ha)↕traitement↕rendement (q/ha)↕rouille↕
1calcaire2071084.5un passage0.00
2calcaire2321532.2deux passages0.00
3limon242978.4deux passages59.80
4argile·1088.2un passage61.50
5calcaire24216014.5deux passages57.80
6limon2201173.0aucun60.50
7limon2121091.5deux passages56.50
8limon2801543.3un passage70.41
9Limon2211002.2un passage62.50
10limon2281607.7un passage64.70
11argile·5910.1aucun60.10
12limon·7410.9aucun62.70
13calcaire1271601.9deux passages0.00
14limon2071392.2deux passages67.00
15Limon2331157.3deux passages69.00
16argile1951027.4aucun58.20
17limon1891184.7aucun56.90
18argile2011444.7un passage61.20
19limon2061604.7un passage66.50
20limon2201173.0aucun60.50
valeur manquante3valeur sentinelle3relevé tronqué4libellé incohérent2ligne en double1

20 lignes affichées sur 20, 12 portant au moins un défaut. Cliquer sur un en-tête pour trier : c'est le geste qui fait remonter les anomalies ensemble.

Vingt relevés, avec cinq défauts différents. Trier sur « rendement » regroupe les trois bennes à zéro ; trier sur « azote » fait apparaître le bloc collé à 160, qui est la marque d'une saisie plafonnée et non d'une pratique commune.
Aucun de ces cinq défauts ne se voit sur une moyenne
Le rendement moyen de ces vingt lignes vaut 52,8 q/ha, ce qui passerait pour une année médiocre. Il est faux : trois relevés valent zéro parce que la benne n'a jamais été pesée, et ils tirent la moyenne vers le bas sans que rien ne le signale. Sans eux ni la ligne recopiée, elle remonte à 62,2 q/ha.
L'azote moyen paraît raisonnable lui aussi, alors que quatre valeurs sont exactement à 160 : le logiciel de saisie n'accepte pas davantage, et ces parcelles ont reçu plus que ce que le tableau dit.
Les deux sols écrits « Limon » au lieu de « limon » compteront comme un sol de plus. La ligne en double compte deux fois. Les cellules vides de la pluie, un pluviomètre en panne, seront écartées ou remplacées, selon ce qu'on décide.
Un tableau se regarde, et se trie. C'est le geste le plus rentable de toute la chaîne, et le plus souvent sauté.

Le jeu de données ci-dessous accompagne ce chapitre et le suivant : les relevés de la coopérative, une ligne par parcelle et par récolte, et la rouille, une maladie du blé, notée 1 quand elle a touché la parcelle. Il est fabriqué, mais ses défauts sont ceux qu'on rencontre.

main.py
Sortie
>_ Prêt à exécuter…
Trois anomalies visibles dans ce seul tableau

Le rendement minimal vaut 0. Une parcelle moissonnée et livrée ne rend pas zéro quintal. Ce n'est pas une mesure, c'est un code : la benne n'a pas été pesée, et quelqu'un a écrit zéro plutôt que de laisser vide.

L'azote maximal vaut exactement 160. Un maximum parfaitement rond est presque toujours une troncature : la saisie s'arrête là, et tous les apports plus forts ont été ramenés à cette valeur.

La surface a une moyenne bien supérieure à sa médiane, 7,7 hectares contre 6,1, avec un maximum à 56,6. La distribution est asymétrique à droite : quelques très grandes parcelles tirent la moyenne.

Une valeur sentinelle est plus dangereuse qu'une valeur manquante
Une case vide se voit : les bibliothèques la comptent, les fonctions statistiques l'écartent, et l'on est obligé de décider quoi en faire.
Un zéro déguisé en mesure ne se voit pas. Il entre dans la moyenne, il abaisse les corrélations, il déplace les frontières apprises par un modèle, et rien ne le signale.
Les sentinelles classiques sont 0, -1, -999, 9999, et les dates du 1er janvier 1900 ou 1970. Le réflexe est de regarder les valeurs extrêmes de chaque colonne et de se demander si elles sont physiquement possibles.
Vérification rapideon peut se reprendre

Vingt-neuf parcelles livrées ont un rendement d'exactement 0 q/ha, et aucun sinistre n'a été déclaré. Que faut-il en penser ?

Les distributions

Ce qu'un histogramme dit et qu'une moyenne cache. La forme : symétrique, asymétrique, à plusieurs bosses. Deux bosses signalent presque toujours deux populations mélangées, donc une variable de regroupement qu'on n'a pas encore identifiée.
Les accumulations anormales : un pic isolé sur une valeur ronde, une barre à zéro. Ce sont les sentinelles et les troncatures.
L'étendue réelle des valeurs, et si elle est physiquement plausible.
Deux jeux de données peuvent avoir la même moyenne et le même écart-type sans se ressembler du tout, ce que le quatuor d'Anscombe montre dans le chapitre sur la corrélation et les moindres carrés. La statistique résume, l'histogramme montre.

Une variable ne se juge jamais seule : ce qui compte est de savoir si elle sépare deux populations. La figure ci-dessous superpose les rendements des parcelles de calcaire à ceux des parcelles de limon, bennes à zéro écartées, et laisse déplacer un seuil.

fréquence dans chaque groupe506070rendement (q/ha)seuil 56,4parcelles de calcaireparcelles de limon
parcelles de calcaire au-dessus 6 / 60parcelles de limon au-dessous 2 / 90recouvrement 15,6 %

8 valeurs mal rangées : c'est le minimum atteignable. Le recouvrement de 15,6 % est ce qu'aucun seuil ne peut séparer.

Cent cinquante relevés, ramenés à la même échelle de fréquence pour être comparables malgré des effectifs différents. Les deux distributions se chevauchent sur 16 % de leur masse : c'est la part qu'aucun seuil, où qu'il soit placé, ne pourra séparer.
À manipuler
Faire glisser le seuil à 54 q/ha, puis à 60, et lire sous la figure le nombre de valeurs mal rangées : 23 à 54, où 22 parcelles de calcaire passent au-dessus, et 27 à 60, où 26 parcelles de limon tombent en dessous. Ramener ensuite le seuil vers 56,4 q/ha, où la figure annonce son minimum. Constater qu'aucune position ne fait mieux que 8.

Le recouvrement borne tout ce qui suivra. Le meilleur seuil possible se situe vers 56 q/ha et laisse huit relevés mal rangés sur cent cinquante. Aucun réglage ne fera mieux, parce que huit parcelles des deux sols occupent la même plage de rendements.
Ce chiffre est une propriété des données, pas du modèle. Il est connu avant d'avoir écrit la moindre ligne d'apprentissage, et il dit exactement ce qu'un modèle fondé sur cette seule variable pourra atteindre au mieux.
Déplacer le seuil ne fait ensuite qu'échanger un type d'erreur contre l'autre, ce que le chapitre 9 reprendra en détail. La leçon est la même à l'exploration qu'à l'évaluation.

main.py
Sortie
>_ Prêt à exécuter…

Un pic sur une valeur ronde n'est jamais un hasard. Quinze pour cent des parcelles ont reçu exactement 160 kg/ha d'azote. Aucune pratique agricole ne produit cela : c'est la saisie qui s'arrête là.
Les conséquences sont réelles. Toute moyenne d'azote est sous-estimée. Toute relation entre l'azote et le rendement est aplatie au-delà du seuil. Et un modèle apprendra qu'un apport plus fort ne change rien, alors qu'il n'a simplement rien vu.
Ce qu'il faut en faire relève du chapitre 3. Ce qu'il faut faire ici, c'est le savoir.

Voici la forme dont il faut savoir qu'elle appelle un traitement particulier : une distribution à queue lourde, où quelques valeurs très grandes écrasent toutes les autres.

19411111314,626,337,949,561,172,884,496valeurfréquence
Une distribution à queue lourde, celle des surfaces d'un groupe de parcelles, en hectares. La médiane et la moyenne s'écartent nettement, la boîte à moustaches déborde à droite, et la plupart des algorithmes qui supposent une distribution symétrique s'y comporteront mal. Le chapitre 3 montre la transformation qui la redresse. Moyenne 18,43.
Vérification rapideon peut se reprendre

Quinze pour cent des valeurs d'une variable continue tombent exactement sur son maximum. Pourquoi ?

Superposer deux histogrammes se lit encore ; au-delà, les barres se cachent les unes les autres. Pour comparer une variable entre trois groupes ou plus, on place une figure par groupe sur un axe commun : des boîtes à moustaches, ou des violons, qui montrent en plus la forme de chaque groupe. Le chapitre de statistiques explique comment les lire et ce que chacun cache.

main.py
Sortie
>_ Prêt à exécuter…

Les deux figures s'accordent sur l'essentiel : le calcaire rend une dizaine de quintaux de moins que les deux autres sols, qui se ressemblent. Elles divergent sur deux points, et ce sont eux qui comptent à l'exploration.

Ce que chaque figure cache ici. Les relevés à 0 q/ha sont des sentinelles, pas des mesures. La boîte les isole par des cercles, loin sous la moustache : impossible de les manquer. Le violon les relie au reste par un fil continu, et laisse croire à une longue traîne de parcelles sinistrées. Pour repérer une valeur isolée, la boîte est la meilleure des deux.
Les effectifs diffèrent du simple au double, et les violons n'en montrent rien : ils ont tous la même aire. D'où la ligne d'effectifs imprimée sous la figure, qui n'est pas un luxe.

Les relations entre variables

Matrice de corrélation

Pour chaque paire de variables quantitatives, le coefficient de corrélation linéaire mesure à quel point leurs valeurs varient ensemble de façon proportionnelle. Il vaut entre −1-1 et 11.

Une carte de chaleur affiche toute la matrice d'un coup, ce qui permet de repérer en un regard les paires liées.

Trois choses qu'une corrélation ne dit pas
Elle ne voit que le linéaire. Une relation en cloche parfaite donne une corrélation nulle. Le module Sciences fondamentales, chapitre 4, le montre sur le quatuor d'Anscombe.
Elle ne dit rien des causes. Le chapitre précédent l'a montré avec un parc de machines où la marque n'était que le témoin de la température.
Elle ignore les variables qualitatives. Le sol est ici la variable qui en dit le plus, et il n'apparaît dans aucune matrice de corrélation, parce que ce n'est pas un nombre. Comparer les moyennes par groupe est le geste qui le révèle.
main.py
Sortie
>_ Prêt à exécuter…

Ce que ces trois sorties apprennent.

La carte de chaleur est décevante, et c'est une information. Aucune corrélation forte : la plus nette, entre l'azote et le rendement, vaut 0,15. Les bennes à zéro y sont pour beaucoup : sans elles, elle passe à 0,28, et celle de la pluie de 0,04 à 0,19. Une sentinelle abaisse les corrélations sans se signaler.
Les moyennes par groupe sont éloquentes. Le calcaire rend dix quintaux de moins que les autres sols, et l'argile est touchée par la rouille plus de trois fois plus souvent que le limon, 22,6 % contre 6,3 %. Une parcelle sans traitement l'est près de trois fois plus qu'une parcelle traitée deux fois. Les variables qui en disent le plus sont qualitatives, donc invisibles dans la matrice.
Un quatrième libellé apparaît. Un sol nommé « Limon » compte quatorze lignes. Ce n'est pas un quatrième sol, c'est le limon écrit avec une majuscule, et aucun traitement ne les regroupera tant qu'on ne l'aura pas corrigé.
La cible est déséquilibrée. Avec 12,4 % de parcelles touchées, un modèle qui répondrait toujours « saine » aurait 87,6 % de bonnes réponses tout en étant parfaitement inutile. Le chapitre 9 en tire toutes les conséquences.

Les libellés incohérents ne se voient que si on les cherche
« A » et « a », « Limon » et « limon », « oui » et « Oui », un espace de trop en fin de chaîne : pour une machine, ce sont des valeurs différentes.
Le réflexe est de compter les valeurs distinctes de chaque colonne qualitative et de les lire. Une colonne qui devrait avoir trois modalités et en affiche quatre pose un problème visible en une seconde, et invisible dans n'importe quelle statistique agrégée.
Vérification rapideon peut se reprendre

1.La matrice de corrélation d'un jeu ne montre aucune valeur forte. Que conclure ?

2.Une colonne « sol » attendue avec trois modalités en affiche quatre. Que s'est-il passé ?

Ce qu'il faut avoir vérifié avant de sortir de l'exploration

La liste, dans l'ordre où l'on peut la dérouler
  1. Dimensions et types : le tableau a-t-il la taille attendue, chaque colonne le type attendu.
  2. Doublons : combien de lignes strictement identiques, et pourquoi.
  3. Manquants : combien par colonne, et est-ce concentré sur certaines lignes.
  4. Valeurs impossibles : minimums et maximums physiquement plausibles.
  5. Sentinelles : pics sur 0, -1, -999, ou toute valeur ronde.
  6. Troncatures : accumulation à une borne.
  7. Modalités : valeurs distinctes de chaque colonne qualitative, lues une par une.
  8. Distributions : forme de chaque variable numérique.
  9. Relations : corrélations entre numériques, moyennes par groupe pour les qualitatives.
  10. Cible : son équilibre, et ce qu'un modèle trivial obtiendrait.
Le doublon a deux causes, et elles n'appellent pas le même traitement
Une erreur technique : un fichier importé deux fois, une jointure mal faite. La ligne est à supprimer, sans hésiter.
Une coïncidence légitime : deux parcelles voisines, de même sol et conduites de la même façon, peuvent avoir des relevés identiques à l'unité près. Les supprimer serait perdre de l'information.
Les distinguer demande un identifiant. S'il n'y en a pas dans le jeu, c'est la première chose à réclamer, avant tout traitement. Les quinze lignes en double des relevés de ce chapitre sont du premier genre : elles ont été recopiées.
Vérification rapideon peut se reprendre

Une cible binaire vaut 1 dans 12 % des cas. Qu'obtient un modèle qui répond toujours 0 ?

Mettre en pratique

Explorer, c'est d'abord compter. Les chiffres qui suivent se posent avant toute figure et avant toute hypothèse.

Les premiers chiffres d'un jeu inconnu

  • 1.

    Une série de sept valeurs ordonnées vaut 4, 7, 7, 9, 13, 15, 45. Quelle est sa médiane ?

  • 2.

    Quelle est sa moyenne, au dixième ?

  • 3.

    De combien la moyenne dépasse-t-elle la médiane, au dixième ?

  • 4.

    Une colonne contient 4 800 valeurs renseignées sur 5 000 lignes. Quel est le taux de valeurs manquantes, en pour cent ?

La coopérative doit annoncer le rendement de son secteur nord. Quel rendement moyen peut-elle retenir sur l'extrait ci-dessous, et de combien la moyenne brute le sous-estime-t-elle ?

Le secteur nord a livré huit bennes. Les parcelles sont repérées par leur numéro ; aucun sinistre n'a été déclaré.

LigneParcelleRendement (q/ha)
1N164
2N20
3N361
4N466
5N50
6N659
7N361
8N765

Par où commencer ? Parcourir les deux colonnes à la recherche de ce qui ne peut pas être une mesure ou ne doit pas compter deux fois, avant de faire la moindre somme.

Vérification rapideon peut se reprendre

Pourquoi écarter les deux rendements nuls au lieu de les garder dans la moyenne ?

Le corrigé
  1. Écarter les valeurs impossibles. Les lignes 2 et 5 valent 0 alors que les bennes ont été livrées et qu'aucun sinistre n'est déclaré : ce sont des sentinelles, des pesées manquantes, et non des rendements.
  2. Écarter les doublons. La parcelle N3 apparaît deux fois avec le même rendement. Le numéro de parcelle sert d'identifiant : la ligne 7 est une copie, et elle ne doit compter qu'une fois.
  3. Calculer sur ce qui reste. Cinq parcelles mesurées, N1, N3, N4, N6 et N7 : (64 + 61 + 66 + 59 + 65) / 5 = 315 / 5 = 63 q/ha.
  4. Mesurer l'erreur évitée. La moyenne brute des huit lignes vaut 376 / 8 = 47 q/ha : elle sous-estime le rendement de 16 q/ha.
  5. Vérifier ce qui pèse le plus. Sans les seuls zéros, la moyenne passe à 376 / 6 ≈ 62,7 q/ha ; sans le seul doublon, à 315 / 7 = 45 q/ha. Les sentinelles font presque tout l'écart : ce sont elles qu'on cherche en premier.
L'histogramme des rendements d'une récolte montre deux bosses nettement séparées. Qu'en conclure, et que faire ensuite ?

Par où commencer ? Lister les colonnes qualitatives du tableau : chacune est une candidate pour séparer les deux bosses.

Le corrigé
  1. Nommer ce que signalent deux bosses. Le jeu de données mélange probablement deux populations, qu'une variable non encore identifiée sépare.
  2. Lister les candidates. Le sol, la variété, le précédent cultural, la conduite en agriculture biologique : toute colonne qualitative peut couper le jeu en deux.
  3. Tracer par modalité. Pour chaque candidate, tracer l'histogramme séparément pour chacune de ses modalités. Celle qui produit des distributions bien séparées est la variable cherchée : sur les relevés de ce chapitre, le calcaire rend une dizaine de quintaux de moins que les deux autres sols.
  4. Vérifier. Si aucune colonne existante ne sépare les bosses, c'est qu'il manque une colonne, et le chapitre 1 a dit ce qu'il en coûte : aucun algorithme ne retrouvera ce qui n'est pas dans le tableau.
Dans un fichier de paie, une colonne « salaire » a un minimum de 0 et un maximum de 999999. Que vérifier avant de calculer quoi que ce soit ?

Par où commencer ? Comparer chacune des deux bornes à ce qu'un salaire peut réellement valoir sur la période.

Le corrigé
  1. Juger le minimum. Un salaire de 0 est très probablement une sentinelle : salaire inconnu, non renseigné, ou salarié non payé sur la période.
  2. Juger le maximum. 999999 est la plus grande valeur qui tienne dans six chiffres : une valeur plafond, soit une troncature du système source, soit une autre sentinelle.
  3. Compter les occurrences exactes. Pour chaque borne, compter les lignes qui la portent : quelques-unes, c'est un cas particulier ; deux cents, c'est un code.
  4. Vérifier. Une valeur qui revient des dizaines de fois à l'identique dans une variable continue n'est pas une mesure. Les lignes qui la portent sont à traiter comme manquantes, jamais à moyenner telles quelles.

Chapitre révisé en novembre 2026 · Une erreur dans ce chapitre ?

Dans la bibliothèque d'exercices