Chapitre 11 | Seconde générale et technologique | Mathématiques
Dernière mise à jour : 21 octobre 2026
Une variable est qualitative lorsque ses valeurs sont des catégories (des mots, pas des nombres à additionner). On distingue :
Ce chapitre est un premier contact avec les bases de données : chaque individu est une ligne, chaque variable une colonne. Prérequis : effectifs et fréquences \(f = \dfrac{n}{N}\), passage fréquence ↔ pourcentage \(p = 100\,f\).
On étudie deux variables qualitatives sur une même population de \(N\) individus. Par exemple, sur des personnes accidentées de la route : la variable « type d'usager » (piéton / cycliste / automobiliste) et la variable « gravité » (indemne / blessé / tué). Croiser ces deux variables, c'est compter combien d'individus tombent dans chaque combinaison de catégories.
Un tableau croisé (ou tableau de contingence) présente en lignes les catégories d'une première variable, en colonnes les catégories d'une seconde variable. À l'intersection d'une ligne et d'une colonne se trouve l'effectif des individus qui possèdent à la fois la catégorie de la ligne et celle de la colonne.
On interroge \(200\) personnes sur leur moyen de transport principal (voiture / transports en commun) et sur le fait qu'elles habitent en ville ou à la campagne.
| Voiture | Transports en commun | Total | |
|---|---|---|---|
| Ville | \(40\) | \(80\) | \(120\) |
| Campagne | \(70\) | \(10\) | \(80\) |
| Total | \(110\) | \(90\) | \(200\) |
La case (Ville ; Voiture) \(= 40\) signifie : \(40\) personnes habitent en ville et utilisent la voiture.
Case (Campagne ; Transports en commun) \(= 10\) personnes. Total : \(N = 200\) personnes (case en bas à droite).
Les cases situées en marge du tableau (dernière ligne et dernière colonne, les « Total ») ignorent la seconde variable : elles décrivent chaque variable séparément.
Les effectifs marginaux sont les totaux des lignes et des colonnes du tableau croisé. La case en bas à droite est l'effectif total \(N\).
La fréquence marginale d'une catégorie est le quotient de son effectif marginal par l'effectif total :
\[f_{\text{marginale}} = \frac{\text{effectif marginal de la catégorie}}{N}.\]Effectifs marginaux : \(120\) citadins, \(80\) ruraux ; \(110\) utilisateurs de la voiture, \(90\) des transports en commun ; total \(N = 200\).
Ruraux : \(\dfrac{80}{200} = 0{,}40 = 40\%\). Utilisateurs des transports en commun : \(\dfrac{90}{200} = 0{,}45 = 45\%\).
Une fréquence conditionnelle restreint l'étude à une sous-population : on ne s'intéresse qu'aux individus vérifiant une certaine condition, et on calcule une proportion à l'intérieur de ce groupe.
La fréquence de \(A\) sachant \(B\) est la proportion d'individus possédant la catégorie \(A\) parmi ceux qui possèdent la catégorie \(B\) :
\[\boxed{f(A \text{ sachant } B) = \frac{\text{effectif}(A \text{ et } B)}{\text{effectif}(B)}.}\]Le dénominateur est l'effectif de la condition \(B\) (un effectif marginal, ou plus généralement l'effectif du groupe de référence choisi), et non l'effectif total.
Parmi les citadins, quelle est la proportion d'utilisateurs de la voiture ?
\[f(\text{Voiture sachant Ville}) = \frac{\text{effectif(Ville et Voiture)}}{\text{effectif(Ville)}} = \frac{40}{120} = \frac{1}{3} \approx 0{,}33 = 33\%.\]Parmi les ruraux, quelle est la proportion d'utilisateurs de la voiture ?
\[f(\text{Voiture sachant Campagne}) = \frac{70}{80} = 0{,}875 = 87{,}5\%.\]La voiture est nettement plus utilisée à la campagne qu'en ville : croiser les deux variables révèle un lien que les fréquences marginales seules ne montraient pas.
Barres ramenées à \(100\%\) : dans chaque sous-population (Ville, Campagne), la part de chaque mode de transport. Ce sont les fréquences conditionnelles ; le contraste rend le lien visible.
C'est le point le plus délicat du chapitre : les deux fréquences conditionnelles se calculent avec le même numérateur mais des dénominateurs différents, donc elles sont en général différentes.
En général,
\[f(A \text{ sachant } B) \neq f(B \text{ sachant } A),\]car
\[f(A \text{ sachant } B) = \frac{\text{effectif}(A \text{ et } B)}{\text{effectif}(B)} \qquad \text{et} \qquad f(B \text{ sachant } A) = \frac{\text{effectif}(A \text{ et } B)}{\text{effectif}(A)}.\]Comparons deux phrases qui se ressemblent mais disent des choses très différentes.
Même case au numérateur (\(40\)), mais l'une se rapporte aux \(120\) citadins, l'autre aux \(110\) automobilistes.
« \(87{,}5\%\) des ruraux utilisent la voiture » et « \(87{,}5\%\) des utilisateurs de la voiture sont ruraux » n'ont pas le même sens. Toujours identifier la population de référence (le « parmi qui ? »), c'est-à-dire le mot qui suit « sachant » ou « parmi ». Ce chapitre prépare directement les probabilités conditionnelles du chapitre suivant.
\(f(\text{Campagne sachant Voiture}) = \dfrac{70}{110} \approx 0{,}636 = 63{,}6\%\) (parmi les \(110\) automobilistes).
\(f(\text{Voiture sachant Campagne}) = \dfrac{70}{80} = 0{,}875 = 87{,}5\%\) (parmi les \(80\) ruraux).
Non : même numérateur (\(70\)), mais dénominateurs différents (\(110\) et \(80\)).
Souvent, un tableau croisé n'est donné qu'en partie : on doit retrouver les cases manquantes.
Chaque total de ligne (resp. de colonne) est la somme des cases de cette ligne (resp. colonne) ; l'effectif total est la somme des totaux de lignes, égale à la somme des totaux de colonnes. Ces relations d'addition/soustraction permettent souvent de tout reconstituer.
Une phrase du type « parmi les \(B\), \(p\%\) sont des \(A\) » fournit directement un effectif :
\[\text{effectif}(A \text{ et } B) = \frac{p}{100}\times \text{effectif}(B).\]Un sondage porte sur \(500\) personnes, réparties en \(300\) hommes et \(200\) femmes. On sait que \(60\%\) des hommes et \(75\%\) des femmes déclarent pratiquer un sport. Complétons le tableau (Sport oui / non).
| Sport | Pas de sport | Total | |
|---|---|---|---|
| Hommes | \(180\) | \(120\) | \(300\) |
| Femmes | \(150\) | \(50\) | \(200\) |
| Total | \(330\) | \(170\) | \(500\) |
On peut alors répondre à toute question de fréquence : par exemple, parmi les sportifs, la proportion de femmes est \(f(\text{Femme sachant Sport}) = \dfrac{150}{330} \approx 45{,}5\%\).
Hommes : \(400 - 240 = 160\).
Femmes avec vélo : \(0{,}70\times 240 = 168\). Hommes avec vélo : \(0{,}40\times 160 = 64\).
Exemple. Dans le tableau des sportifs (\(N = 500\)) : fréquence marginale des sportifs \(= \dfrac{330}{500} = 0{,}66 = 66\%\).
On représente les individus par des listes parallèles : une liste par variable, l'individu numéro \(i\) correspondant à l'élément d'indice \(i\) de chaque liste.
# Deux variables qualitatives pour 8 individus
zone = ["ville", "ville", "campagne", "ville", "campagne", "campagne", "ville", "campagne"]
transport = ["voiture", "TC", "voiture", "TC", "voiture", "voiture", "TC", "voiture"]
On sélectionne les individus vérifiant un critère à l'aide de and (ET), or (OU) et not (NON).
# Individus habitant en ville ET utilisant la voiture (ET -> and)
indices_ville_voiture = []
for i in range(len(zone)):
if zone[i] == "ville" and transport[i] == "voiture":
indices_ville_voiture.append(i)
print(len(indices_ville_voiture)) # effectif(Ville et Voiture)
# Individus en campagne OU utilisant les transports en commun (OU -> or)
nb_campagne_ou_TC = 0
for i in range(len(zone)):
if zone[i] == "campagne" or transport[i] == "TC":
nb_campagne_ou_TC += 1
# Individus n'habitant PAS en ville (NON -> not)
nb_pas_ville = 0
for i in range(len(zone)):
if not (zone[i] == "ville"):
nb_pas_ville += 1
def effectif_et(liste1, valeur1, liste2, valeur2):
"""Compte les individus tels que liste1 == valeur1 ET liste2 == valeur2."""
n = 0
for i in range(len(liste1)):
if liste1[i] == valeur1 and liste2[i] == valeur2:
n += 1
return n
def effectif(liste, valeur):
"""Compte les individus tels que liste == valeur (effectif marginal)."""
return liste.count(valeur)
N = len(zone)
# Frequence marginale : proportion de citadins
f_ville = effectif(zone, "ville") / N
# Frequence conditionnelle : voiture SACHANT ville
n_ville_voiture = effectif_et(zone, "ville", transport, "voiture")
f_voiture_sachant_ville = n_ville_voiture / effectif(zone, "ville")
effectif(zone, "ville")), pas par N. Pour une fréquence marginale, on divise par N.
espece = ["chat","chien","chat","oiseau","chien","chat"] et vaccine = ["oui","non","oui","oui","oui","non"]. Écrire le test Python sélectionnant les chats vaccinés, puis donner \(f(\text{vacciné sachant chat})\).
Test : if espece[i] == "chat" and vaccine[i] == "oui":
Chats aux indices \(0, 2, 5\) ; vaccinés parmi eux : \(0\) et \(2\), soit \(2\) chats vaccinés sur \(3\) chats. Donc \(f(\text{vacciné sachant chat}) = \dfrac{2}{3} \approx 66{,}7\%\).
❌ Confondre « \(A\) sachant \(B\) » et « \(B\) sachant \(A\) ».
✅ Même numérateur, dénominateurs différents : repérer la population de référence (« parmi qui ? »).
❌ Diviser par \(N\) au lieu de l'effectif de la condition.
✅ Une fréquence conditionnelle se calcule dans la sous-population, pas dans la population totale.
❌ Confondre fréquence marginale et fréquence conditionnelle.
✅ La marginale ignore la seconde variable ; la conditionnelle restreint à un groupe.
❌ Additionner des fréquences conditionnelles de conditions différentes.
✅ \(f(\text{Voiture sachant Ville})\) et \(f(\text{Voiture sachant Campagne})\) ne s'additionnent pas.
❌ Traiter une variable qualitative comme un nombre.
✅ Ni moyenne ni médiane de catégories : seuls effectifs et fréquences ont un sens.
❌ Oublier de vérifier les marges après avoir complété un tableau.
✅ Sommes des lignes et des colonnes doivent redonner \(N\). En Python : == et non = dans un test.
and / or / not, comptage des effectifs.