Croisement de deux variables qualitatives
Introduction
Un fichier de données décrit des individus (des personnes, des pays, des villes…) par plusieurs caractères. Quand deux de ces caractères sont qualitatifs — la voie suivie et le résultat au baccalauréat, le sexe et la catégorie d'emploi —, on les croise : on compte combien d'individus présentent à la fois une modalité de l'un et une modalité de l'autre.
1. Variables qualitatives
Variable qualitative : Une variable (ou caractère) est qualitative quand ses valeurs, appelées modalités, ne sont pas des nombres. Elle est :
nominale si ses modalités n'ont pas d'ordre naturel : profession, espèce, département de résidence ;
ordinale si elles en ont un : niveau d'étude, degré de satisfaction (« pas du tout », « un peu », « très »).
2. Le tableau croisé d'effectifs
Tableau croisé : Un tableau croisé range les individus selon deux variables : une modalité de la première par ligne, une modalité de la seconde par colonne. Chaque case donne l'effectif des individus qui présentent à la fois les deux modalités. La dernière ligne et la dernière colonne, les marges, donnent les totaux.
Le baccalauréat 2024 : Candidats présents au baccalauréat 2024 selon la voie et le résultat, en milliers (arrondis au millier) :
| Voie | Admis | Non admis | Total |
|---|---|---|---|
| Générale | 374 | 16 | 390 |
| Technologique | 140 | 15 | 155 |
| Professionnelle | 173 | 35 | 208 |
| Total | 687 | 66 | 753 |
Source : ministère de l'Éducation nationale, DEPP, Note d'information n° 25.05 (février 2025).
Lecture : environ 35 000 candidats sont à la fois de la voie professionnelle et non admis.
Le double contrôle des marges : Les totaux des lignes et ceux des colonnes redonnent le même effectif total : 390 + 155 + 208 = 753 et 687 + 66 = 753.
3. Fréquences marginales et conditionnelles
Fréquence marginale : On divise un total de ligne ou de colonne par l'effectif total : 208/753 ≈ 0,28. Environ 28 % des candidats sont de la voie professionnelle.
Fréquence conditionnelle : On se place parmi les individus d'un groupe (une ligne ou une colonne), et l'on divise l'effectif d'une case par l'effectif de ce groupe.
35/208 ≈ 0,17 : parmi les candidats de la voie professionnelle, environ 17 % ne sont pas admis.
35/66 ≈ 0,53 : parmi les candidats non admis, environ 53 % viennent de la voie professionnelle.
Calculer une fréquence conditionnelle :
Repérer le groupe qui suit « parmi » : c'est une ligne ou une colonne.
Diviser l'effectif de la case par le total de ce groupe.
Contrôler : les fréquences conditionnelles d'un même groupe ont pour somme 1.
Compléter un tableau à partir de fréquences conditionnelles
Un lycée de 1 000 élèves (données fictives) : Dans un lycée de 1 000 élèves, 40 % sont en Seconde. Parmi les élèves de Seconde, 75 % sont demi-pensionnaires ; parmi les autres élèves, 60 % le sont.
On remplit le tableau case après case, en raisonnant sur les effectifs :
0,4 × 1 000 = 400 élèves de Seconde, donc 600 autres élèves ;
0,75 × 400 = 300 demi-pensionnaires en Seconde, et 0,6 × 600 = 360 parmi les autres.
| Demi-pensionnaire | Externe | Total | |
|---|---|---|---|
| Seconde | 300 | 100 | 400 |
| Autres niveaux | 360 | 240 | 600 |
| Total | 660 | 340 | 1 000 |
Parmi les demi-pensionnaires, la fréquence des élèves de Seconde est 300/660 = 5/11 ≈ 0,45 : elle n'était donnée nulle part, le tableau la fait apparaître.
4. Lire les phrases des médias
« Parmi qui ? » décide du dénominateur : « 53 % des candidats non admis viennent de la voie professionnelle » et « 53 % des candidats de la voie professionnelle ne sont pas admis » ne disent pas du tout la même chose. La première est vraie ; la seconde est fausse, puisque 83 % d'entre eux sont admis.
Dans « x % des A sont B », le groupe de référence est A : c'est l'effectif de A qui va au dénominateur.
5. Filtrer un fichier avec Python
Un fichier de données se lit comme deux listes de même longueur : l'élément de rang i de chaque liste décrit le même individu.
voie = ["G", "P", "T", "G", "P", "G", "T", "P"]
admis = [True, True, False, True, False, True, True, True]
def compte_pro_non_admis(voie, admis):
n = 0
for i in range(len(voie)):
if voie[i] == "P" and not admis[i]:
n = n + 1
return n
ET, OU, NON :
La condition voie[i] == "P" and not admis[i] sélectionne les individus de la voie professionnelle ET NON admis. Sur ce petit fichier fictif de huit candidats, la fonction renvoie 1 (le cinquième).
Avec or (OU), on compterait les individus qui vérifient au moins une des deux conditions ; avec not (NON), ceux qui ne vérifient pas la condition.
En faisant compter chaque couple de modalités, on obtient tout le tableau croisé, case par case.
À retenir
Résumé :
Un tableau croisé compte les individus qui présentent à la fois deux modalités ; ses marges donnent les totaux.
Fréquence marginale : total d'une ligne ou d'une colonne ÷ effectif total.
Fréquence conditionnelle : effectif de la case ÷ effectif du groupe qui suit « parmi ».
« x % des A sont B » et « x % des B sont A » sont deux informations différentes.
Un filtre combine des conditions avec ET, OU, NON.