Classe de Seconde — Mathématiques
Croisement de deux
variables qualitatives
Tableau croisé · Fréquences marginales · Fréquences conditionnelles
Variables qualitatives

Plan du chapitre

1Variables qualitatives et tableau croisé d'effectifs
2Fréquences marginales
3Fréquences conditionnelles
4Compléter un tableau croisé
5Application Python — filtrage ET/OU/NON, construction automatique
§1 — Variables qualitatives

Variable qualitative

Définition

Une variable qualitative est une caractéristique qui prend des valeurs non numériques, appelées modalités.

  • Nominale : les modalités n'ont pas d'ordre naturel.
    Exemples : sexe (homme/femme), département de résidence, espèce animale, profession.
  • Ordinale : les modalités sont naturellement ordonnées.
    Exemples : niveau d'étude (bac/bac+2/bac+3/…), degré de satisfaction (insatisfait/neutre/satisfait).
§1 — Variables qualitatives

Tableau croisé d'effectifs

Définition

Lorsqu'on étudie deux variables qualitatives simultanément sur un même groupe d'individus, on organise les données dans un tableau croisé d'effectifs (aussi appelé table de contingence).

  • Les lignes correspondent aux modalités d'une variable.
  • Les colonnes correspondent aux modalités de l'autre variable.
  • Chaque case contient le nombre d'individus présentant simultanément les deux modalités correspondantes.
§1 — Variables qualitatives

Exemple — Sport et sexe dans un lycée

Exemple

Dans un lycée de $200$ élèves, on a relevé la pratique sportive principale et le sexe de chaque élève.

NatationFootballDanseTotal
Fille$42$$18$$55$$115$
Garçon$33$$47$$5$$85$
Total$75$$65$$60$$200$
  1. Combien d'élèves pratiquent la natation ?
  2. Combien de filles pratiquent le football ?
  3. Vérifier que les totaux sont cohérents.
§1 — Variables qualitatives

Sport et sexe — Correction ✓

✓ Correction

1) $75$ élèves pratiquent la natation (total de la colonne Natation).

2) $18$ filles pratiquent le football (case ligne Fille, colonne Football).

3) Totaux lignes : $115 + 85 = 200$ ✓  ·  Totaux colonnes : $75 + 65 + 60 = 200$ ✓

§1 — Variables qualitatives

Exercice — Transport et filière

Exercice

Dans un lycée de $300$ élèves, on a enquêté sur leur moyen de transport principal et leur filière :

VéloBusVoitureTotal
Générale$48$$75$$57$?
Technologique$22$$45$$53$?
Total???$300$
  1. Compléter le tableau par les totaux.
  2. Combien d'élèves de filière technologique viennent en bus ?
  3. Combien d'élèves viennent en voiture, toutes filières confondues ?
§1 — Variables qualitatives

Transport et filière — Correction ✓

✓ Correction
VéloBusVoitureTotal
Générale$48$$75$$57$$180$
Technologique$22$$45$$53$$120$
Total$70$$120$$110$$300$

2) $45$ élèves de filière technologique viennent en bus.

3) $110$ élèves viennent en voiture (total de la colonne Voiture).

§2 — Fréquences marginales

Fréquences marginales

Définition

La fréquence marginale d'une modalité est la fréquence calculée à partir du total de la ligne ou de la colonne correspondante, rapportée à l'effectif total $N$ :

$$f_{\text{marg}} = \frac{\text{total de la ligne (ou colonne)}}{N}$$

Les fréquences marginales apparaissent dans les marges du tableau (dernière ligne et dernière colonne).

Remarque

La somme de toutes les fréquences marginales d'une variable vaut toujours $\mathbf{1}$ (ou $100\,\%$).

§2 — Fréquences marginales

Exemple — Sport et sexe : fréquences marginales

Exemple

On reprend le tableau croisé du lycée ($N = 200$ élèves). Calculer les fréquences marginales.

NatationFootballDanseTotal
Fille$42$$18$$55$$115$
Garçon$33$$47$$5$$85$
Total$75$$65$$60$$200$
§2 — Fréquences marginales

Fréquences marginales — Correction ✓

✓ Correction
NatationFootballDanseTotalFréq. marg.
Fille$42$$18$$55$$115$$\frac{115}{200}=57{,}5\,\%$
Garçon$33$$47$$5$$85$$\frac{85}{200}=42{,}5\,\%$
Total$75$$65$$60$$200$$100\,\%$
Fréq. marg.$37{,}5\,\%$$32{,}5\,\%$$30\,\%$$100\,\%$

Interprétation : $57{,}5\,\%$ des élèves sont des filles ; $37{,}5\,\%$ des élèves pratiquent la natation.

§3 — Fréquences conditionnelles

Fréquence conditionnelle

Définition

La fréquence conditionnelle d'une modalité $B$ sachant une modalité $A$ est la fréquence de $B$ calculée uniquement parmi les individus présentant la modalité $A$ :

$$f_A(B) = \frac{\text{effectif de }(A \text{ et } B)}{\text{effectif total de la ligne (ou colonne) }A}$$

Remarques
  • Une fréquence conditionnelle se lit « la fréquence de $B$ parmi les $A$ » ou « sachant que l'individu est $A$ ».
  • La somme des fréquences conditionnelles d'une ligne (ou d'une colonne) vaut toujours $\mathbf{1}$ (ou $100\,\%$).
  • En général, $f_A(B) \neq f_B(A)$ : l'ordre dans lequel on conditionne est important.
§3 — Fréquences conditionnelles

Exemple — Sport et sexe : fréquences conditionnelles

Exemple

On reprend le tableau croisé du lycée. Calculer les fréquences conditionnelles de la pratique sportive sachant le sexe.

NatationFootballDanseTotal
Fille$42$$18$$55$$115$
Garçon$33$$47$$5$$85$
Total$75$$65$$60$$200$

Calculer $f_{\text{Fille}}(\text{Natation})$, $f_{\text{Fille}}(\text{Football})$, $f_{\text{Fille}}(\text{Danse})$ et idem pour les garçons.

§3 — Fréquences conditionnelles

Fréquences conditionnelles — Correction ✓

✓ Correction
NatationFootballDanseTotal
Fille (sur 115)$\frac{42}{115}\approx36{,}5\,\%$$\frac{18}{115}\approx15{,}7\,\%$$\frac{55}{115}\approx47{,}8\,\%$$100\,\%$
Garçon (sur 85)$\frac{33}{85}\approx38{,}8\,\%$$\frac{47}{85}\approx55{,}3\,\%$$\frac{5}{85}\approx5{,}9\,\%$$100\,\%$
  • Parmi les filles, $47{,}8\,\%$ pratiquent la danse.
  • Parmi les garçons, $55{,}3\,\%$ pratiquent le football.
  • La pratique de la danse est très différente selon le sexe : $47{,}8\,\%$ des filles contre seulement $5{,}9\,\%$ des garçons.
§3 — Fréquences conditionnelles

Représentation graphique — Barres empilées

Exemple

On peut représenter les fréquences conditionnelles par des diagrammes en barres empilées, ce qui facilite la comparaison entre modalités.

Chaque barre représente $100\,\%$ des individus d'une modalité (filles ou garçons), divisée en sections proportionnelles aux fréquences conditionnelles de chaque sport.

NatationFootballDanse
Fille$36{,}5\,\%$$15{,}7\,\%$$47{,}8\,\%$
Garçon$38{,}8\,\%$$55{,}3\,\%$$5{,}9\,\%$
§3 — Fréquences conditionnelles

Exercice — Satisfaction clientèle

Exercice

Une enquête a été menée auprès de $400$ clients selon leur catégorie d'âge et leur degré de satisfaction :

InsatisfaitNeutreSatisfaitTotal
$-$ de 30 ans$24$$36$$60$$120$
30 à 60 ans$40$$55$$85$$180$
$+$ de 60 ans$10$$30$$60$$100$
Total$74$$121$$205$$400$
  1. Calculer les fréquences marginales pour les tranches d'âge et pour les niveaux de satisfaction.
  2. Calculer les fréquences conditionnelles du niveau de satisfaction sachant la tranche d'âge.
  3. Chez les moins de 30 ans, quelle est la fréquence des clients satisfaits ?
  4. Comparer la fréquence des clients insatisfaits selon la tranche d'âge. Que remarque-t-on ?
  5. Parmi les clients insatisfaits, quelle fraction a moins de 30 ans ?
§3 — Fréquences conditionnelles

Satisfaction clientèle — Correction ✓

✓ Correction

1) Fréquences marginales : $-30$ ans : $30\,\%$ · 30–60 : $45\,\%$ · $+60$ ans : $25\,\%$  ·  Insatisfait : $18{,}5\,\%$ · Neutre : $30{,}25\,\%$ · Satisfait : $51{,}25\,\%$

2) Fréquences conditionnelles sachant la tranche d'âge :

InsatisfaitNeutreSatisfaitTotal
$-$ de 30 ans$\frac{24}{120}=20\,\%$$30\,\%$$50\,\%$$100\,\%$
30 à 60 ans$\frac{40}{180}\approx22{,}2\,\%$$\approx30{,}6\,\%$$\approx47{,}2\,\%$$100\,\%$
$+$ de 60 ans$\frac{10}{100}=10\,\%$$30\,\%$$60\,\%$$100\,\%$

3) Chez les $-30$ ans : $f_{\lt30}(\text{Satisfait}) = \frac{60}{120} = 50\,\%$.

4) Insatisfaits : $20\,\%$ chez les $-30$ ans, $22{,}2\,\%$ chez les 30–60, $10\,\%$ chez les $+60$ ans. Les $+60$ ans sont les moins insatisfaits.

5) Parmi les $74$ insatisfaits : $\frac{24}{74} \approx 32{,}4\,\%$ ont moins de $30$ ans.

§4 — Compléter un tableau croisé

Méthode — Compléter un tableau croisé

Méthode

Pour compléter un tableau croisé incomplet, on utilise les relations entre effectifs :

  1. La somme des effectifs d'une ligne est égale au total de la ligne.
  2. La somme des effectifs d'une colonne est égale au total de la colonne.
  3. La somme de tous les totaux de lignes est égale à la somme de tous les totaux de colonnes : cela vaut l'effectif total $N$.
  4. On peut aussi utiliser des fréquences conditionnelles connues : si $f_A(B) = p$ et que l'effectif de $A$ est $n_A$, alors l'effectif de $(A \text{ et } B)$ est $p \times n_A$.
§4 — Compléter un tableau croisé

Exemple — Sécurité routière

Exemple

Lors d'une étude sur la sécurité routière, on a interrogé $500$ automobilistes sur le port de la ceinture et l'implication dans un accident.

AccidentSans accidentTotal
Ceinture portée$30$?$420$
Ceinture non portée?$18$?
Total$92$?$500$
  1. Compléter entièrement le tableau.
  2. Calculer la fréquence d'accident parmi les automobilistes portant la ceinture.
  3. Calculer la fréquence d'accident parmi ceux ne portant pas la ceinture.
  4. Que peut-on conclure sur le lien entre port de la ceinture et accident ?
§4 — Compléter un tableau croisé

Sécurité routière — Correction ✓

✓ Correction

1) Ceinture portée / Sans accident : $420-30=390$.   Total sans accident : $500-92=408$.   Ceinture non portée / Accident : $92-30=62$.   Total ceinture non portée : $500-420=80$.

AccidentSans accidentTotal
Ceinture portée$30$$390$$420$
Ceinture non portée$62$$18$$80$
Total$92$$408$$500$

2) $f_{\text{ceinture}}(\text{accident}) = \dfrac{30}{420} \approx \mathbf{7{,}1\,\%}$

3) $f_{\text{sans ceinture}}(\text{accident}) = \dfrac{62}{80} \approx \mathbf{77{,}5\,\%}$

4) La fréquence d'accident est bien plus élevée sans ceinture ($77{,}5\,\%$) qu'avec ($7{,}1\,\%$) : le port de la ceinture est fortement lié à l'absence d'accident.

§4 — Compléter un tableau croisé

Exercice — Alimentation et activité physique

Exercice

Une étude sur $250$ lycéens croise leur niveau d'activité physique et leur alimentation :

ÉquilibréePeu équilibréeTotal
Actif?$56$$140$
Sédentaire$30$??
Total?$136$$250$

On sait de plus que $60\,\%$ des lycéens sédentaires ont une alimentation peu équilibrée.

  1. Compléter entièrement le tableau.
  2. Calculer les fréquences conditionnelles de l'alimentation sachant l'activité physique.
  3. L'alimentation semble-t-elle liée à l'activité physique ? Justifier.
§4 — Compléter un tableau croisé

Alimentation et activité physique — Correction ✓

✓ Correction

1) Total sédentaires $= 250-140 = 110$.

$60\,\%$ des sédentaires peu équilibrés $\Rightarrow$ sédentaire/peu équilibrée $= 0{,}60\times110 = 66$.

Sédentaire/équilibrée $= 110-66=44$.   Actif/équilibrée $= 140-56=84$.   Total équilibrée $= 84+44=128$.

ÉquilibréePeu équilibréeTotal
Actif$84$$56$$140$
Sédentaire$44$$66$$110$
Total$128$$136$$250$

2) Fréquences conditionnelles sachant l'activité :

ÉquilibréePeu équilibréeTotal
Actif$\frac{84}{140}=60\,\%$$\frac{56}{140}=40\,\%$$100\,\%$
Sédentaire$\frac{44}{110}=40\,\%$$\frac{66}{110}=60\,\%$$100\,\%$

3) Les actifs ont $60\,\%$ d'alimentation équilibrée contre $40\,\%$ pour les sédentaires : oui, alimentation et activité physique semblent liées.

§5 — Application Python

Opérateurs logiques : ET, OU, NON

Définition

En Python, on peut filtrer une liste d'individus selon des critères combinés :

  • and : sélectionne les individus vérifiant les deux critères simultanément (ET).
  • or : sélectionne les individus vérifiant au moins un critère (OU).
  • not : sélectionne les individus ne vérifiant pas le critère (NON).
§5 — Application Python

Exemple — Filtrage sur les données du lycée

sexes = ["F","F","G","F","G","G","F","G","F","G"]
sports = ["Natation","Danse","Football","Natation",
          "Football","Danse","Football","Natation",
          "Danse","Football"]

# Filles ET Danse
nb_fille_danse = 0
for i in range(len(sexes)):
    if sexes[i] == "F" and sports[i] == "Danse":
        nb_fille_danse = nb_fille_danse + 1
print("Filles et Danse :", nb_fille_danse)

# Natation OU Danse
nb_nat_ou_danse = 0
for i in range(len(sexes)):
    if sports[i] == "Natation" or sports[i] == "Danse":
        nb_nat_ou_danse = nb_nat_ou_danse + 1
print("Natation ou Danse :", nb_nat_ou_danse)

# NON Football
nb_pas_foot = 0
for i in range(len(sexes)):
    if not sports[i] == "Football":
        nb_pas_foot = nb_pas_foot + 1
print("Pas de football :", nb_pas_foot)
Questions
  1. Que renvoient les trois print ? Vérifier à la main.
  2. Modifier le code pour compter les garçons pratiquant la natation.
  3. Modifier le code pour compter les élèves qui pratiquent la danse ou qui sont des garçons.
§5 — Application Python

Filtrage Python — Correction ✓

✓ Correction

1) Listes : $10$ individus. Filles et Danse : indices 1, 8 → 2.   Natation ou Danse : indices 0, 1, 3, 5, 7, 8 → 6.   Pas de football : mêmes $6$ → 6.

2) Garçons pratiquant la natation :

if sexes[i] == "G" and sports[i] == "Natation":

3) Danse ou garçon :

if sports[i] == "Danse" or sexes[i] == "G":

§5 — Application Python

Exemple — Dresser le tableau croisé avec Python

# Données
sexes  = ["F","G","F","G","F","G","F","G"]
sports = ["Natation","Football","Danse","Football",
          "Natation","Natation","Danse","Football"]

# Création du tableau croisé
tableau = {
    "F": {"Natation":0, "Football":0, "Danse":0},
    "G": {"Natation":0, "Football":0, "Danse":0}
}
# Remplissage du tableau
for i in range(len(sexes)):
    s = sexes[i]
    sp = sports[i]
    tableau[s][sp] = tableau[s][sp] + 1

# Affichage
print("F :", tableau["F"])
print("G :", tableau["G"])

# Fréquence conditionnelle
total_F = sum(tableau["F"].values())
freq = tableau["F"]["Danse"] / total_F

print("Fréquence des filles qui font Danse :",round(freq, 3))
Questions
  1. Que représente la ligne suivante dans le programme ?
    "F": {"Natation":0, "Football":0, "Danse":0}
  2. Combien de filles pratiquent la natation ?
  3. Que calcule l'instruction :
    sum(tableau["F"].values())
  4. Compléter le programme pour calculer la fréquence des garçons qui font du football.
  5. Calculer à la main la fréquence des filles qui pratiquent la natation. Donner le résultat sous forme décimale arrondie au millième.
  6. Comment modifier les deux dernières lignes pour calculer et afficher automatiquement le calcul précédent ?
§5 — Application Python

Tableau croisé Python — Correction ✓

✓ Correction

1) Cette ligne représente le nombre de filles pratiquant chaque sport initialisée à 0 au départ.

2) 2 filles pratiquent la natation.

3) Cela calcule le nombre total de filles.

4) Fréquence des garçons qui font du football :

total_G = sum(tableau["G"].values())
freq = tableau["G"]["Football"] / total_G
print(round(freq, 3))

5) Fréquence des filles qui pratiquent la natation :

2 / 4 = 0,5

6) Il suffit de remplacer "Danse" par "Natation" :

total_F = sum(tableau["F"].values())
freq = tableau["F"]["Natation"] / total_F

print("Fréquence des filles qui font Natation :",
      round(freq, 3))