Une variable qualitative est une caractéristique qui prend des valeurs non numériques, appelées modalités.
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).
Dans un lycée de $200$ élèves, on a relevé la pratique sportive principale et le sexe de chaque élève.
| Natation | Football | Danse | Total | |
|---|---|---|---|---|
| Fille | $42$ | $18$ | $55$ | $115$ |
| Garçon | $33$ | $47$ | $5$ | $85$ |
| Total | $75$ | $65$ | $60$ | $200$ |
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$ ✓
Dans un lycée de $300$ élèves, on a enquêté sur leur moyen de transport principal et leur filière :
| Vélo | Bus | Voiture | Total | |
|---|---|---|---|---|
| Générale | $48$ | $75$ | $57$ | ? |
| Technologique | $22$ | $45$ | $53$ | ? |
| Total | ? | ? | ? | $300$ |
| Vélo | Bus | Voiture | Total | |
|---|---|---|---|---|
| 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).
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).
La somme de toutes les fréquences marginales d'une variable vaut toujours $\mathbf{1}$ (ou $100\,\%$).
On reprend le tableau croisé du lycée ($N = 200$ élèves). Calculer les fréquences marginales.
| Natation | Football | Danse | Total | |
|---|---|---|---|---|
| Fille | $42$ | $18$ | $55$ | $115$ |
| Garçon | $33$ | $47$ | $5$ | $85$ |
| Total | $75$ | $65$ | $60$ | $200$ |
| Natation | Football | Danse | Total | Fré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.
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}$$
On reprend le tableau croisé du lycée. Calculer les fréquences conditionnelles de la pratique sportive sachant le sexe.
| Natation | Football | Danse | Total | |
|---|---|---|---|---|
| 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.
| Natation | Football | Danse | Total | |
|---|---|---|---|---|
| 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\,\%$ |
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.
| Natation | Football | Danse | |
|---|---|---|---|
| Fille | $36{,}5\,\%$ | $15{,}7\,\%$ | $47{,}8\,\%$ |
| Garçon | $38{,}8\,\%$ | $55{,}3\,\%$ | $5{,}9\,\%$ |
Une enquête a été menée auprès de $400$ clients selon leur catégorie d'âge et leur degré de satisfaction :
| Insatisfait | Neutre | Satisfait | Total | |
|---|---|---|---|---|
| $-$ 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) 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 :
| Insatisfait | Neutre | Satisfait | Total | |
|---|---|---|---|---|
| $-$ 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.
Pour compléter un tableau croisé incomplet, on utilise les relations entre effectifs :
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.
| Accident | Sans accident | Total | |
|---|---|---|---|
| Ceinture portée | $30$ | ? | $420$ |
| Ceinture non portée | ? | $18$ | ? |
| Total | $92$ | ? | $500$ |
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$.
| Accident | Sans accident | Total | |
|---|---|---|---|
| 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.
Une étude sur $250$ lycéens croise leur niveau d'activité physique et leur alimentation :
| Équilibrée | Peu équilibrée | Total | |
|---|---|---|---|
| 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) 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ée | Peu équilibrée | Total | |
|---|---|---|---|
| Actif | $84$ | $56$ | $140$ |
| Sédentaire | $44$ | $66$ | $110$ |
| Total | $128$ | $136$ | $250$ |
2) Fréquences conditionnelles sachant l'activité :
| Équilibrée | Peu équilibrée | Total | |
|---|---|---|---|
| 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.
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).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)
print ? Vérifier à la main.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":
# 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))
"F": {"Natation":0, "Football":0, "Danse":0}
sum(tableau["F"].values())
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))