prof404
← Retour aux ressources du module
Sommaire (5 sections) · 13 min
Ce que tu travailles iciAnalyser et synthétiserPourquoi ces compétences ?
  • BC02Analyser et synthétiser. Faire parler la donnée : calculer ce qui décrit vraiment une population, repérer une tendance, et dire ce qu'elle veut dire pour l'entreprise.

Ce sont les compétences du titre RNCP 38616, celles sur lesquelles le jury évalue.

Comparer moyenne, médiane et quantiles

Deux catégories peuvent avoir un prix moyen proche tout en contenant des articles répartis très différemment. Publier la moyenne seule masque cette différence.

La distributionLa façon dont les valeurs d'une colonne se répartissent : combien sont petites, combien sont grandes, et où elles s'entassent. La moyenne et la médiane sont deux résumés d'une distribution, elles ne la décrivent pas. décrit comment les valeurs se répartissent : quels prix sont fréquents, dans quelle zone ils se concentrent et jusqu'où ils s'étendent. Cette fiche travaille leur interprétation, une compétence du bloc BC02. Les exemples portent sur le prix d'une ligne d'article, pas sur le panierCe qu'une commande contient et ce qu'elle coûte. Parler du « panier » d'une commande désigne presque toujours son montant total. par commande demandé dans le TP. Les prix sont en BRL, le réal brésilien.

1. Voir la moyenne et la médiane ensemble

Voici le résultat complet du résumé de deux catégories Olist. Une ligne de ce tableau représente une catégorie ; articles compte ses lignes d'articles vendus, y compris plusieurs ventes d'un même produit.

catégorie articles moyenne (BRL) médianeLa valeur qui coupe la population en deux parts égales : la moitié des lignes sont en dessous, l'autre moitié au-dessus. Contrairement à la moyenne, une valeur extrême ne la déplace presque pas. (BRL)
papelaria (papeterie) 2 517 91,75 79,00
utilidades_domesticas (articles ménagers) 6 964 90,79 59,80

Compare les deux colonnes de prix : les catégories restent-elles aussi proches quand tu regardes la médiane ? Note les valeurs qui appuient ta réponse, puis exécute la requête pour retrouver ce tableau.

SQL
SELECT p.product_category_name AS categorie,
       COUNT(*) AS articles,
       ROUND(AVG(i.price), 2) AS moyenne,
       ROUND(PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY i.price)::numeric, 2) AS mediane
FROM order_items i
JOIN products p ON p.product_id = i.product_id
WHERE p.product_category_name IN ('papelaria', 'utilidades_domesticas')
GROUP BY p.product_category_name
ORDER BY p.product_category_name;

Une moyenne additionne les prix puis divise par l'effectif. La médiane est le repère du milieu des prix triés. Avec un nombre pair de lignes, le calcul fait la moyenne des deux prix centraux. Au moins la moitié des prix est inférieure ou égale à la médiane, et au moins la moitié est supérieure ou égale : les valeurs identiques peuvent appartenir aux deux côtés.

Pour vérifier ta lecture : les moyennes sont proches, mais la médiane des articles ménagers est plus basse que celle de la papeterie. Ces résumés ne disent pas combien d'articles ont chaque prix, ni pourquoi les prix diffèrent.

Interprète une ligne avec cette forme : « dans cette catégorie, le prix moyen vaut ..., et au moins la moitié des lignes coûte ... ou moins ». Appuie ta phrase sur les deux cellules correspondantes.

2. Ajouter des quantiles

Un quantileUne valeur en dessous de laquelle se trouve une part donnée de la population. Le quantile 0,9 est le seuil sous lequel se rangent 90 % des lignes. est un repère calculé dans une série triée. Le quantile 0,25 repère la position 25 % et le quantile 0,75 la position 75 %. La fonction PERCENTILE_CONT peut placer ce repère entre deux valeurs voisines : c'est l'interpolation.

Essai facultatif sur quatre mesures, sans SQL. Voici les durées fictives complètes de quatre interventions, en minutes : 10, 2, 2, 2. Trie-les, prédis la médiane, puis compte les durées inférieures ou égales à cette médiane. Est-ce exactement la moitié ? Pour un autre lot fictif de quatre interventions, 10, 2, 10, 2, refais le calcul : la médiane est-elle une durée observée ? Écris tes deux réponses avant d'ouvrir la vérification.

Vérifier les deux médianes

Le premier lot trié donne 2, 2, 2, 10 : les deux valeurs centrales sont 2 et 2, donc la médiane vaut 2 minutes. Trois durées sur quatre sont inférieures ou égales à 2 : 75 %, et non exactement 50 %, à cause des valeurs identiques. La règle « au moins la moitié » reste respectée.

Le second lot trié donne 2, 2, 10, 10 : la médiane vaut (2 + 10) / 2 = 6 minutes. Aucune intervention n'a duré 6 minutes ; ce repère est calculé entre les deux valeurs centrales. Deux durées sur quatre lui sont inférieures ou égales.

Ce cas vérifie la lecture de la médiane, le quantile 0,50 ; il ne donne pas la méthode de calcul de tous les quantiles. Pour q1 et q3 ci-dessous, garde les mêmes précautions : un repère peut être absent des prix observés, et la part à ce repère ou en dessous n'est pas forcément exactement 25 % ou 75 %.

SQL
SELECT ROUND(PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY price)::numeric, 2) AS q1,
       ROUND(PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY price)::numeric, 2) AS mediane,
       ROUND(PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY price)::numeric, 2) AS q3,
       ROUND(AVG(price), 2) AS moyenne
FROM order_items
WHERE price IS NOT NULL;

Avant d'exécuter, place mentalement q1, la médiane et q3 sur une ligne du plus petit au plus grand. Vérifie ensuite leur ordre dans le résultat.

L'intervalle entre q1 et q3 repère approximativement la moitié centrale des lignes. Les valeurs ex aequo aux bornes peuvent faire varier la part incluse. Cet intervalle ne dit pas pourquoi les prix extérieurs sont hauts ou bas.

Lire la distribution sans cacher les extrêmes

Avant d'ouvrir la figure, fais deux prédictions : la moyenne sera-t-elle à gauche ou à droite de la médiane ? Les quatre repères seront-ils faciles à distinguer sur un axe qui va jusqu'au prix maximal ?

Distribution des prix Olist sur toute la plage puis entre 0 et 300 BRL

Ouvrir la figure pour l’agrandir.

Cette figure utilise exactement la même population que la requête précédente : les 112 650 lignes de order_items dont price n'est pas nul. Elle place q1 à 39,90 BRL, la médiane à 74,99 BRL, la moyenne à 120,65 BRL et q3 à 134,90 BRL. Le maximum observé, 6 735 BRL, reste visible dans le panneau du haut. Chaque barre regroupe les prix d’un intervalle ; son axe vertical donne le nombre de lignes dans cet intervalle. Les classes rares proches du maximum ont une barre presque invisible sur cette échelle ; l'annotation à droite donne donc aussi l'effectif de la dernière classe.

Le panneau inférieur agrandit la zone de 0 à 300 BRL. Il ne retire pas les prix supérieurs à 300 : ceux-ci restent représentés dans le panneau du haut. On y voit que la moyenne se trouve à droite de la médiane. C'est l'observation d'une distribution étirée vers les prix élevés, pas une explication de leur origine. Les intervalles sont plus étroits dans le panneau inférieur : une barre y regroupe moins de prix possibles. Les axes verticaux changent aussi d’échelle. Ne compare donc pas directement la hauteur d’une barre entre les deux panneaux. Dans les infobulles, les deux prix indiqués sont le minimum et le maximum observés dans la barre, pas les bornes de son intervalle. La figure situe les quantiles ; elle ne transforme pas les parts strictement inférieures en 25 %, 50 % et 75 % exacts lorsque des prix sont ex aequo.

Lire trois barres sans utiliser les infobulles

Dans le panneau agrandi, les trois premières barres contiennent :

prix observés dans la barre lignes
0,85 à 9,99 BRL 1 188
10,00 à 19,99 BRL 8 080
20,00 à 29,99 BRL 10 825

Ces valeurs permettent aussi de vérifier le sens de l'axe vertical. Elles ne décrivent que trois des trente barres du panneau.

Essai facultatif : changer les intervalles, pas les données

Reprends les quatre durées fictives 10, 2, 2, 2 minutes. Sur papier, compte-les d’abord dans les intervalles [0, 10[ et [10, 20[, de même largeur. La borne de gauche est incluse, celle de droite exclue : où places-tu la durée 10 ? Dessine une barre par intervalle, avec le nombre d’interventions en hauteur, sur une échelle partant de zéro.

Prédis ensuite ce qui changera si tu regroupes ces deux intervalles en un seul, [0, 20[. Dessine sa barre sur la même échelle verticale. Compare la hauteur maximale et la somme des effectifs avant d’ouvrir la vérification.

Vérifier les barres et le total

Les deux premières barres comptent 3 et 1 interventions : la durée 10 appartient à [10, 20[, pas à [0, 10[. La barre regroupée en compte 4. La hauteur maximale passe de 3 à 4, mais le total reste quatre interventions : aucune donnée n’a été ajoutée. Le regroupement masque leur répartition entre les deux anciens intervalles. Pour comparer des hauteurs, vérifie donc aussi les intervalles représentés, pas seulement l’échelle verticale.

3. Compter au-delà d'un seuil

Si la question est « combien d'articles dépassent 300 ? », ni la moyenne ni la médiane ne donnent la réponse. Il faut écrire le seuil dans le calcul.

SQL
SELECT COUNT(*) AS articles,
       COUNT(*) FILTER (WHERE price > 300) AS au_dessus_de_300,
       ROUND(100.0 * COUNT(*) FILTER (WHERE price > 300) / COUNT(*), 2) AS part
FROM order_items
WHERE price IS NOT NULL;

Le résultat contient l'effectif avec le pourcentage. Une part sans effectif peut donner trop d'importance à un petit groupe.

Modifie maintenant le seuil de 300 à 500. Avant d'exécuter, prédis le sens de variation du compte et de la part, puis exécute pour vérifier ta prédiction.

Comparer ta prédiction au résultat

Le compte et la part ne peuvent pas augmenter : toute ligne au-dessus de 500 était déjà au-dessus de 300. Le nombre total de lignes reste le même.

4. Décider avant d'écarter

Une valeur éloignée du reste n'est pas automatiquement une erreur. Elle peut être un article réellement cher, une mauvaise unité ou une saisie incorrecte. La requête repère la ligne ; le contexte décide de son traitement.

SQL
SELECT i.price, i.order_id, i.product_id, p.product_category_name
FROM order_items i
LEFT JOIN products p ON p.product_id = i.product_id
WHERE i.price IS NOT NULL
ORDER BY i.price DESC, i.order_id, i.order_item_id
LIMIT 10;

Avant de supprimer une ligne, écris le critère, inspecte les colonnes utiles et garde la requête qui permet de reproduire la décision. Une analyse avec et sans les lignes écartées montre si ce choix change la conclusion.

Mesurer l'effet du choix

Le seuil de 300 BRL de la section précédente permet une expérience. Il ne dit pas que les prix supérieurs sont faux. Il sépare seulement deux calculs pour mesurer l'effet d'une exclusion.

Avant d'exécuter, prédis lequel des quatre indicateursUne mesure qu'on suit pour piloter une activité, comme le taux de livraisons en retard. Il se choisit à partir de la décision qu'il doit déclencher et du lecteur à qui il s'adresse. changera le plus entre les deux lignes : moyenne, médiane, q1 ou q3.

SQL
SELECT 'toutes les lignes' AS scenario,
       COUNT(*) AS articles,
       ROUND(AVG(price), 2) AS moyenne,
       ROUND(PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY price)::numeric, 2) AS mediane,
       ROUND(PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY price)::numeric, 2) AS q1,
       ROUND(PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY price)::numeric, 2) AS q3
FROM order_items
WHERE price IS NOT NULL
UNION ALL
SELECT 'prix inferieur ou egal a 300',
       COUNT(*),
       ROUND(AVG(price), 2),
       ROUND(PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY price)::numeric, 2),
       ROUND(PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY price)::numeric, 2),
       ROUND(PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY price)::numeric, 2)
FROM order_items
WHERE price IS NOT NULL
  AND price <= 300
ORDER BY scenario DESC;

UNION ALL place les deux résumés l’un sous l’autre dans le même résultat. Le premier résumé porte sur 112 650 lignes. Le second en conserve 105 713. La moyenne passe de 120,65 à 86,91 BRL, tandis que la médiane passe de 74,99 à 69,90 BRL. q1 passe de 39,90 à 38,99 BRL et q3 de 134,90 à 119,90 BRL. L'exclusion déplace donc surtout la moyenne dans cet exemple.

Ce résultat prouve un effet numérique : les prix au-dessus de 300 pèsent sur le résumé. Il ne prouve pas une erreur de donnée. Pour décider de les écarter, il faut une règle métier ou une preuve, par exemple une unité erronée, une valeur impossible ou une vérification dans la source. Sans cette justification, conserve les lignes et accompagne la moyenne d'indicateurs qui montrent la distribution.

5. Transférer à une variable de ton projet

Choisis une variable numérique qui n'est pas le panier du TP. Produis :

  1. son effectif, sa moyenne, sa médiane, q1 et q3 ;
  2. le nombre et la part de lignes au-delà d'un seuil métier choisi avant le calcul ;
  3. sur la figure Olist ci-dessus, l'étendue affichée, l'unité, l'effectif d'une barre et l'effet du panneau agrandi ;
  4. une phrase qui distingue observation, hypothèseUne attente formulée avant le calcul, avec les données et la comparaison qui permettront de l’examiner. Un écart observé décrit ces données ; il ne démontre pas à lui seul une cause ni une règle valable ailleurs. et décision de nettoyage.

Si tu bloques, commence par une variable dont l'unité est claire, comme un prix ou un nombre de photos. Pour vérifier, contrôle que q1 <= médiane <= q3 et que le compte au-delà du seuil ne dépasse pas l'effectif total. Pour la figure Olist ci-dessus, contrôle aussi que le prix maximal du tableau de la section 4 reste dans l'étendue affichée du panneau supérieur. Si une graduation ou une unité manque, note précisément ce que tu ne peux pas lire au lieu d'estimer la valeur sur l'image.

Si tu utilises ChatGPT pour produire la requête, conserve ton choix de variable et de seuil, puis explique le résultat avec tes mots. Sans relire sa réponse, montre ce qu'une ligne représente, quelle population entre dans le calcul et ce que les résultats ne permettent pas d'affirmer. Augmente ensuite ton seuil, prédis l'effet sur le compte et la part, puis exécute pour vérifier ta prédiction. Si le résultat la contredit, compare les populations des deux calculs avant de changer ta conclusion.

À la fin de la leçon

Le quiz de la leçon

Choisis une réponse, puis lis l’explication avant de continuer.

  • 6 questions
  • 3 min par question
  • Une explication après chaque réponse

Le chrono démarre à la première question. Un clic sur une réponse valide ton choix.