Avant de calculer quoi que ce soit, il faut savoir quel type de donnée on manipule. C’est ce qui détermine les calculs autorisés.
Individus, variables, modalités
Dans un tableau de données, chaque ligne est un individu (un client, une commande, un jour) et chaque colonne est une variable. Les valeurs possibles d’une variable s’appellent des modalités.
Quatre familles de variables
| Famille | Sous-type | Exemples |
|---|---|---|
| Qualitative | nominale (pas d’ordre) | canal d’acquisition, pays, couleur |
| Qualitative | ordinale (ordre naturel) | satisfaction « faible / moyenne / forte », taille S/M/L |
| Quantitative | discrète (valeurs comptables) | nombre d’articles, nombre d’enfants |
| Quantitative | continue (toute valeur d’un intervalle) | montant, durée, température |
Piège classique : un code postal ou un identifiant client s’écrit avec des chiffres, mais calculer leur moyenne n’a aucun sens. Ce sont des variables qualitatives.
Compter les modalités
Le premier résumé d’une variable qualitative (ou discrète) est son tableau d’effectifs : combien de fois chaque modalité apparaît.
from collections import Counter
canaux = ["web", "magasin", "web", "appli", "web", "magasin"]
effectifs = Counter(canaux) # compte chaque modalité
print(effectifs) # Counter({'web': 3, 'magasin': 2, 'appli': 1})
total = sum(effectifs.values())
frequences = {k: v / total for k, v in effectifs.items()}
print(frequences["web"]) # 0.5, soit 50 %
La fréquence d’une modalité est son effectif divisé par l’effectif total. La somme des fréquences vaut toujours 1 (ou 100 %).
Avec pandas
Sur un vrai jeu de données, on utilise pandas :
import pandas as pd
s = pd.Series(["web", "magasin", "web", "appli", "web", "magasin"])
print(s.value_counts()) # effectifs, triés du plus grand au plus petit
print(s.value_counts(normalize=True)) # fréquences
Variables ordinales et fréquences cumulées
Pour une variable ordinale ou quantitative discrète, on peut cumuler les fréquences dans l’ordre des modalités : « 70 % des clients ont acheté 2 articles ou moins ». Il faut alors trier par modalité, pas par effectif.
nb_articles = pd.Series([1, 2, 2, 3, 1, 2, 4, 1, 2, 3])
freq = nb_articles.value_counts(normalize=True).sort_index() # tri par modalité
print(freq.cumsum()) # 1 -> 0.3, 2 -> 0.7, 3 -> 0.9, 4 -> 1.0
Pour une variable continue (montants), on regroupe d’abord les valeurs en classes (intervalles), par exemple avec pd.cut, avant de compter.
À retenir
- Identifie le type de chaque variable avant tout calcul.
- Effectif = comptage ; fréquence = effectif / total.
- Les fréquences cumulées n’ont de sens que si les modalités sont ordonnées.
Exercices
Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.
Fréquences d'un canal
On dispose de la liste
canaux. Crée un dictionnairefrequencesqui associe à chaque canal sa fréquence (entre 0 et 1), en utilisantcollections.Counter.from collections import Counter canaux = ['web', 'magasin', 'web', 'appli', 'web', 'magasin', 'web', 'appli'] # frequences = ...Fréquences cumulées avec pandas
La série
nb_articlescontient le nombre d’articles par commande. Calculefreq_cum, la série des fréquences cumulées triée par nombre d’articles croissant. Puis stocke danspart_2_ou_moinsla part des commandes de 2 articles ou moins.import pandas as pd nb_articles = pd.Series([1, 2, 2, 3, 1, 2, 4, 1, 2, 3]) # freq_cum = ... # part_2_ou_moins = ...Identifier le type d'une variable
Quel est le type de la variable « code postal du client » ?
- Quantitative discrète
- Quantitative continue
- Qualitative nominale
- Qualitative ordinale
Quiz de fin de leçon
La taille de vêtement (S, M, L, XL) est une variable :
- Qualitative nominale
- Qualitative ordinale
- Quantitative continue
Sur 200 commandes, 50 viennent de l’appli. Quelle est la fréquence de l’appli ?
- 50
- 0.25
- 0.5
- 4
Que renvoie s.value_counts(normalize=True) ?
- Les effectifs bruts
- Les fréquences de chaque modalité
- La moyenne de la série
La suite du cours
- Tendance centrale : moyenne, médiane et mode15 min
- Dispersion : étendue, variance et écart-type18 min
- Quantiles, boîtes à moustaches et valeurs aberrantes18 min
- Relation entre deux variables : tableaux croisés et corrélation20 min