Adloun

Croisement de deux variables qualitatives

Cours complet · mathématiques (seconde), chapitre 11 · seconde générale

Travailler ce chapitre sur Adloun Exercices corrigés de ce chapitre

Une variable qualitative classe les individus selon une caractéristique non numérique : elle est nominale si ses valeurs n'ont pas d'ordre naturel (profession, espèce, département), ordinale si ses valeurs sont ordonnées (niveau d'étude, degré de satisfaction). Lorsqu'on observe deux variables qualitatives sur une même population, on les croise dans un tableau afin d'étudier leurs liens. C'est un premier contact avec le traitement de fichiers de données.

11.1 Tableau croisé d'effectifs

Définition 11.1Tableau croisé, marges

Le tableau croisé (ou tableau à double entrée) de deux variables qualitatives donne, dans chaque case, l'effectif des individus possédant simultanément la modalité de la ligne et celle de la colonne. Les totaux des lignes et des colonnes forment les marges du tableau ; la case en bas à droite est l'effectif total .

Exemple 11.2

On interroge élèves sur leur sexe et leur deuxième langue (espagnol ou allemand).

EspagnolAllemandTotal
Filles
Garçons
Total

Par exemple, élèves sont des filles et font de l'espagnol. Les marges indiquent qu'il y a filles, hispanisants, etc.

11.2 Fréquences marginales et conditionnelles

Définition 11.3Fréquence marginale, fréquence conditionnelle
  • Une fréquence marginale est le quotient d'un effectif de marge par l'effectif total (elle décrit une seule variable).
  • Une fréquence conditionnelle est le quotient d'un effectif d'une case par le total d'une ligne ou d'une colonne (elle décrit une variable sachant une modalité de l'autre).

La même case (orange) donne deux fréquences conditionnelles différentes selon le total (ligne verte ou colonne bleue) par lequel on divise ; une marge divisée par (rouge) donne une fréquence marginale.

Exemple 11.4

Sur l'exemple précédent :

  • marginale : la fréquence des hispanisants est ; celle des filles est .
  • conditionnelle : parmi les filles, la proportion d'hispanisantes est ; parmi les hispanisants, la proportion de filles est .

Ces deux fréquences conditionnelles ( et ) partent de la même case mais divisent par des totaux différents : elles ne répondent pas à la même question.

iRemarqueAttention aux formulations

« des filles font de l'espagnol » (conditionnelle sachant fille) et « des hispanisants sont des filles » (conditionnelle sachant espagnol) sont deux affirmations distinctes. Les médias confondent parfois les deux : le sens dépend de l'ensemble de référence.

Pour comparer les répartitions conditionnelles, on représente chaque groupe par une barre ramenée à :

Répartition de la langue parmi chaque sexe (fréquences conditionnelles en ligne). Les deux barres sont presque identiques : dans ce panel, le choix de la langue dépend peu du sexe.

11.3 Compléter un tableau croisé

Méthode : Compléter un tableau à double entrée

  • par les effectifs : chaque total de marge est la somme de sa ligne (ou colonne) ; une case manquante s'obtient par soustraction ;
  • par les fréquences conditionnelles : un effectif de case s'obtient en multipliant un total de ligne/colonne par la fréquence conditionnelle correspondante.
Exemple 11.5

On sait que personnes ont été interrogées, que sont des hommes, que possèdent une voiture, et que des hommes en possèdent une. Combien de femmes n'ont pas de voiture ?

VoiturePas de voitureTotal
Hommes
Femmes
Total

On complète par soustraction : hommes sans voiture ; femmes ; femmes avec voiture ; d'où femmes sans voiture .

11.4 Algorithmes

À partir de deux listes sexes et langues décrivant les mêmes individus (même indice = même personne), on filtre selon un critère combinant ET, OU, NON.


def filtrer(sexes, langues, s, l):
    # Indices des individus de sexe s ET de langue l
    resultat = []
    for i in range(len(sexes)):
        if sexes[i] == s and langues[i] == l:   # ET ; 'or' pour OU, 'not' pour NON
            resultat.append(i)
    return resultat

def effectif_croise(sexes, langues, s, l):
    # Effectif de la case (s, l) du tableau croisé
    return len(filtrer(sexes, langues, s, l))

def frequence_conditionnelle(sexes, langues, s, l):
    # Proportion de langue l PARMI les individus de sexe s
    nb_s = sexes.count(s)
    return effectif_croise(sexes, langues, s, l) / nb_s

def frequence_marginale(sexes, s):
    # Proportion des individus de sexe s dans toute la population
    return sexes.count(s) / len(sexes)
Exemple 11.6

Avec frequence_conditionnelle(sexes, langues, "Fille", "Espagnol"), on obtient : la fréquence conditionnelle des hispanisantes parmi les filles.

Continuer sur Adloun : animation, QCM, fiches, exercices