Académique Documents
Professionnel Documents
Culture Documents
Frédéric BRO
Professeur au lycée Henri Moissan de Meaux
Philippe DUTARTE
IA-IPR de mathématiques – académie de Nice
SOMMAIRE
A. Éléments pour l’enseignant ........................................................................................................ 2
1. Des compétences porteuses d’avenir................................................................................... 2
2. Fichiers au format csv ............................................................................................................ 2
3. La bibliothèque pandas de Python........................................................................................ 3
B. Exemples d’activités pour la classe .......................................................................................... 7
1. Titanic : les femmes et les enfants d’abord ? ...................................................................... 7
2. Inégalités de salaire en France ............................................................................................ 13
3. Sécurité routière .................................................................................................................... 25
4. Data journalisme : suspicion de fraude dans le monde du tennis .................................. 30
5. Galton, Pearson et régression en Python........................................................................... 42
6. Mélanomes aux USA 1950-1959 ........................................................................................... 49
1
Catégorie de ressource
Exemple : premières lignes du fichier « titanic.csv », avec comme séparateur le point-virgule, ouvert
dans un bloc-note (la première ligne correspond aux noms des variables).
Le même fichier, ouvert dans un tableur, est affiché sous forme de tableau :
Les fichiers csv peuvent être lus et analysés avec Python, notamment grâce à la bibliothèque pandas
qui permettra, de plus, une analyse statistique des données.
2
Catégorie de ressource
La variable table ainsi créée est la table de données associée au fichier csv. Cette table est
semblable à celle obtenue avec le tableur.Par défaut, le séparateur d’un fichier csv est la virgule.
Comme les valeurs du fichier titanic.csv sont séparées par un point-virgule, nous avons indiqué ';'
comme valeur du paramètre sep de la fonction read_csv.
La fonction head permet d’afficher les 4 premières lignes(par exemple) de données.
Les lignes d’une table de données sont numérotées, par défaut, à partir de 0, comme pour les listes
en langage Python.
Nous donnons dans ce document quelques exemples d’exploitation de la bibliothèque pandas au
lycée (programmes 2019).
Le mémento suivant permet de lister les principales fonctions utilisées.
3
Catégorie de ressource
Mémento pandas
4
Catégorie de ressource
Il y a deux façons pour installer pandas s’il n’est pas installé par défaut :
- aller dans Environments, cliquer sur installed puis choisir not installed et saisir pandas puis cliquer
sur la ligne associée ;
- aller dans Environments, cliquer sur base (root), puis choisir Open Terminal et écrire conda
install pandas ou pip install pandas. Appuyer sur Entrée puis attendre l’installation.
– Sur EduPython (version mai 2019), la bibliothèque pandas n'est pas installée par défaut. Pour
l'installer, il faut suivre la procédure suivante :
Aller dans le menu Outils/Outils et choisir Installation d'un nouveau module.
5
Catégorie de ressource
6
Catégorie de ressource
Énoncé de l’activité
Le fichier « titanic.csv » comporte les données de 1 309 des 1 317 passagers du Titanic, paquebot
ayant fait naufrage en 1912 (source :www.kaggle.com).
En explorant les données à l’aide de la bibliothèque pandas de Python, il s’agit d’examiner les
chances qu’un passager ait survécu selon des critères de classe sociale, de genre ou d’âge.
7
Catégorie de ressource
8
Catégorie de ressource
Éléments de réponse
A. Exploration du fichier de données
2.
L’instruction data.shape donne les dimensions de la table de données : 1 309 lignes (individus) et 6
colonnes (6 variables).
L’instruction data.dtypes donne la liste des variables et leur type (entier, flottant ou « objet »).
3. La variable survie prend les valeurs 1 (survivant au naufrage), c’est le cas des deux premiers
passagers de la liste, ou 0 (décédé), c’est le cas des trois passagers suivants sur les 5 premiers de la
table de données. La variable sexe est codée 2 pour les femmes et 1 pour les hommes.
4.
9
Catégorie de ressource
Il s’agit d’un histogramme (plus exactement un diagramme en barres compte tenu de la présence
d’une graduation sur l’axe des ordonnées) montrant la répartition des tarifs de la traversée. On
constate une grande dispersion, mais l’immense majorité des passagers a payé un tarif faible (moins
de 100 livres).
B. Étude de la survie selon différents critères à l’aide de croisements de variables
1.
C’est un résultat que fournissait déjà le descriptif global des données data.describe(). La variable
survie prenant les valeurs 0 ou 1, sa moyenne correspond à la fréquence d’occurrence de la valeur 1,
c’est-à-dire à la fréquence des survivants. Il y a environ 38 % des passagers du Titanic qui ont
survécu au naufrage.
10
Catégorie de ressource
2.
La fréquence de survie est d’environ 19 % pour les hommes et 73 % pour les femmes.
4.
On constate que le taux de survie monte à 96,5 % pour les femmes en première classe alors qu’il
n’est que de 49 % pour les femmes en troisième classe.
11
Catégorie de ressource
5. b.
Il faut utiliser « or » dans la requête car avec « and », on extrait des données les filles de moins de 18
ans et non les femmes et les enfants.
12
Catégorie de ressource
Énoncé de l’activité
13
Catégorie de ressource
Examinons les données des villes du département de l’Ain (01), fournies dans les 5 premières lignes
de la table.
a. Quelle est la population d’Oyonnax ?
b. Quel est le salaire net horaire moyen à Ambérieux-en-Bugey ?
c. Quel est le salaire net horaire moyen d’une femme cadre supérieure à Prévessin-Moëns ?
14
Catégorie de ressource
15
Catégorie de ressource
4. On étudie dans cette question les différences relatives, dans les différentes villes, des salaires
moyens entre les hommes et les femmes en pourcentage du salaire moyen.
a. Entrer l’instruction suivante. Que fait-elle ?
S['differenceHF%'] = ((S['moyenH'] - S['moyenF']) / S['moyen']) * 100
b. Calculer les principaux indicateurs statistiques de la série S['differenceHF%'].
Interpréter.
c. Représenter la série précédente sous forme d’un histogramme avec 20 classes.
Analyser le graphique.
d. Rechercher les 10 villes où la différence relative de salaire moyen entre les femmes et les hommes
est la plus importante, puis les 10 villes où elle est la moins importante.
Éléments de réponse
A. Lecture et premier examen des données
1.
2.
La table des données comporte 5 010 lignes (individus = communes) et 27 colonnes (variables
statistiques).
16
Catégorie de ressource
17
Catégorie de ressource
Les trois quarts des villes ont un salaire moyen inférieur ou égal à 14,50 € de l’heure.
2. On obtient le graphique suivant.
Le graphique est très asymétrique. On retrouve le fait que plus de 75 % des villes ont un salaire
moyen inférieur à 15 €. Il y a de fortes inégalités, avec quelques villes seulement avec des salaires
moyens supérieurs à 25 € de l’heure. Ces villes tirent la moyenne vers le haut, ce qui explique qu’elle
est supérieure à la médiane.
3. a. On obtient l’affichage suivant :
Ces villes sont situées dans deux départements, les Yvelines et les Hauts-de-Seine, de la région Île
de France.
18
Catégorie de ressource
b.
Pour chaque département, on a la somme des populations de chaque ville (c’est-à-dire la population
totale du département), et la somme des produits du salaire moyen par la population de chaque ville.
19
Catégorie de ressource
c.
Cette instruction ajoute une colonne correspondant au salaire moyen pondéré de chaque
département, obtenu en divisant par la population totale du département la somme des produits du
salaire moyen de chaque ville par sa population.
d.
20
Catégorie de ressource
C. Inégalités de genre
1. a. La requête S['moyenF'].describe() fournit les résultats suivants :
21
Catégorie de ressource
b. Le premier quartile du salaire des hommes est supérieur au troisième quartile du salaire des
femmes. Ainsi, dans 75 % des villes, les hommes gagnent plus de 12,9 € par heure et dans 75 % des
villes (pas nécessairement les mêmes), les femmes gagnent moins de 12,67 € de l’heure.
2. On obtient le graphique suivant.
On observe que la « boîte » des salaires moyens féminins est en-dessous de la « boîte » des salaires
moyens masculins, ce qui est une façon de voir que le troisième quartile des femmes est inférieur au
premier quartile des hommes. La dispersion des salaires masculins est aussi plus grande que celle
des salaires féminins (écart interquartile, c’est-à-dire hauteur de la boîte, plus grand ; étendue, les
valeurs extrêmes sont à l’extrémité des « moustaches), plus grande).
3. a.
Les salaires des hommes de 18 à 25 ans peuvent être très élevés, ce n’est pas le cas des femmes de
cette tranche d’âge.
22
Catégorie de ressource
Les écarts de salaires entre les femmes et les hommes ont tendance à augmenter avec la tranche
d’âge (les boîtes se décalent de plus en plus).
b. La requête :
S[['cadres_supF', 'cadres_supH', 'profs_interF', 'profs_interH', 'employesF', 'employesH', 'ouvriersF',
'ouvriersH']].boxplot(whis = 'range', figsize = (15, 6))
permet l’affichage suivant.
Les écarts de salaire entre les femmes et les hommes les plus importants se trouvent dans la
catégorie socioprofessionnelle des cadres supérieurs. On constate par ailleurs que dans certaines
villes, les hommes exerçant des professions intermédiaires sont très fortement rémunérés.
4. a.
Cette instruction ajoute une colonne où est calculée la différence de salaire relative entre les hommes
et les femmes en pourcentage du salaire moyen.
b.
23
Catégorie de ressource
En moyenne, dans une ville, le salaire moyen des hommes est supérieur à celui des femmes de
19,8 % (du salaire moyen dans la ville).
Le salaire moyen des hommes est supérieur à celui des femmes dans toutes les villes. L’écart le plus
faible est de 0,7 %. L’écart le plus important est de 69,4 % !
c.
24
Catégorie de ressource
3. Sécurité routière
Énoncé de l’activité
Le site data.gouv.fr met à disposition le fichier « usagers-2017.csv ».
Chaque ligne de ce fichier est associée à un usager de la route impliqué dans un accident survenu en
2017.
25
Catégorie de ressource
Essayons de retrouver la proportion des hommes parmi les morts sur la route en 2017.
1. Exécuter l’instruction suivante :
T.query('grav == 2 and sexe == 1')
Compléter : « Cette requête appliquée à la table Trenvoie les lignes de Toù la colonne gravne contient
que des ………. et la colonne sexene contient que des ………. ».
2. Exécuter l’instruction suivante et interpréter le résultat :
len(T.query('grav == 2 and sexe == 1'))
3. La proportion de 75 % fournie par le site de sécurité routière est-elle exacte ?
Indication :on pourra utiliser les commandes len et query.
26
Catégorie de ressource
Éléments de réponse
A. Lecture des données
2.
3.
27
Catégorie de ressource
Il serait plus exact de dire que 78 % ou 77,8 % des tués sur la route sont des hommes.
C. Croisement de deux variables
28
Catégorie de ressource
2.
La commande TC[1] / TC['All'] fournit les fréquences conditionnelles des individus indemnes selon les
catégories d’usagers (environ 48 % pour les conducteurs et 2 % pour les piétons).
3. Pour comparer la fréquence conditionnelle des tués parmi les piétons impliqués dans un accident et
celle des tués parmi les conducteurs, on peut exécuter la commande :
TC[2] / TC['All'].
La fréquence conditionnelle des tués parmi les piétons est environ 4,5 % et celle des tués parmi les
conducteurs environ 2,5 %.
29
Catégorie de ressource
Énoncé de l’activité
Le « data journalist » (journaliste de données en français) exploite et analyse des données
statistiques. John Templon est un data journalist qui a étudié les suspicions de fraudes parmi les
joueurs de tennis de niveau mondial.Il a téléchargé, depuis un site de paris en ligne regroupant
plusieurs bookmakers, les cotes concernant25 993 matchs entre 2009 et 2015 et 1 523 joueurs.
John Templon traita ces données statistiques avec python et la librairie pandas. Son travail, relayé
notamment par le journal Le Monde, illustre de nouvelles pratiques d’investigation, mêlant journalisme
et analyse scientifique de données de masse.
Rôle d’un bookmaker pour un match donné :
Avant le match, le bookmaker évalue la probabilité de gagner de chacun des deux joueurs. C’est la
probabilité de gagner « au départ ».
Après publication en ligne de ces probabilités de départ, les internautes peuvent continuer à miser sur
les deux joueurs jusqu’à la clôture des paris, qui se produit avant la fin du match.
Lors de la clôture des paris, on obtient les probabilités de gagner « de fin ». Elles tiennent compte des
mises finales effectuées par les parieurs en ligne. Ainsi l’évolution de la probabilité de gagner d’un
joueur renseigne sur le comportement de ce joueur pendant une bonne partie du match.
Les objectifs de cette activité sont :
– de déterminer les matchs où les joueurs ont pu jouer sensiblement moins bien qu’attendu (ces
matchs et ces joueurs seront dits « suspects ») ;
– d’estimer par simulation, la vraisemblance qu’un joueur suspect reproduise au moins la même
contre-performance.
30
Catégorie de ressource
Comme on peut le voir, plusieurs paris peuvent être associés à un même match.
Informations :
–T est une « table de données » liée au fichier « tennis.csv ».
– Principales variables :
id : identifiant d’un pari proposé par un bookmaker ;
P_gagnant_début : probabilité de gagner pour le gagnant du match, fournie par le
bookmaker au début des paris ;
P_gagnant_fin : probabilité de gagner pour le gagnant du match, à la clôture des
paris (évolution selon les paris effectués durant le match) ;
gagnant : nom du joueur qui a gagné le match ;
perdant : nom du joueur qui a perdu le match.
– T.head() permet l’affichage des 5 premières lignes de la table T.
– len(T) donne le nombre de lignes de la table T.
2. Pour le pari 1 du match M1, quelle était la probabilité de gagner du joueur J2 au début des paris ?
Et à la fin des paris ?
3. Même question pour le joueur J1.
4. Quel est le nombre de paris étudiés dans la table T ?
On veut ajouter à la table T la colonne nommée var_gagnant. Elle contient la variation entre
P_gagnant_début et P_gagnant_fin pour chaque match.
T['var_gagnant'] = T['P_gagnant_fin']-T['................']
T.head()
31
Catégorie de ressource
b) Pour le pari 5 du match M2, quelle a été la variation de la probabilité de gagner du joueur J3 ?
Principe : selon les professionnels, un match est considéré suspect lorsque var_gagnant est supérieur
ou égal à 0,1 en valeur absolue.
b) Compléter la requête qui, appliquée à T, permet d’obtenir la table PMS des paris associés aux
matchs suspects :
c) On ne retient qu’un seul pari par match suspect. Pour obtenir cette table MS, exécuter :
MS = PMS.drop_duplicates(subset = 'match')
MS.head()
Définition : Lors d’un match suspect, le joueur dit « suspect » est celui dont la probabilité de gagner a
diminué de plus de 0,1.
Remarque :Un joueur suspect peut recevoir de l’argent avant le match pour moins bien jouer, par
exemple pendant un set. Ceux qui l’ont corrompu sauront parier à leur avantage durant ce set.
32
Catégorie de ressource
b) citer les joueurs suspects pour les matchs M66, M130, M171 et M176.
2. Lors d’un match suspect, lorsque var_gagnant est positif, quel est le joueur suspect, le gagnant
ou le perdant ? Même question lorsque var_gagnant est négatif.
Compléter : « la table MPS_J1 contient les matchs …….par le joueur …… et pour lesquels il
est ……..».
c) Le match M2815 est perdu par J1. Quelle était sa probabilité de perdre au début de ce match ?
Compléter les pointillés : « la liste LP contient, lorsque J1 est suspect, les probabilités qu’a le joueur
J1 de ……………… au début de chacun des matchs perdus ».
2.a) Créer la table MGS_J1, présentée ci-dessous, associée aux matchs gagnés par le joueur J1
lorsqu’il est suspect.
d) Lorsque J1 est suspect, compléter les pointillés pour construire la liste LG des probabilités de
perdre au début de chacun des matchs gagnés.
33
Catégorie de ressource
LG = []
for p in MGS_J1['P_gagnant_début']:
LG.append(........)
LG
4. Créer alors la liste L des probabilités de perdre au début de chacun des matchs joués.
5. À l’aide de simulations, nous allons mesurer la vraisemblance des performances du joueur J1.
b) On simule 100 000 séries des 18 matchs joués par le joueur J1selon les probabilités de la liste L.
Compléter les instructions de l’algorithme ci-dessous pour qu’il fournisse la fréquence f des
simulations pour lesquelles au moins 15 des 18 matchs sont perdus.
c = 0
for i in range(100000):
perdus = 0
for j in range(....):
if random() <= L[j]:
perdus = perdus + 1
if perdus >= 15:
c = c + 1
f = ........
f
34
Catégorie de ressource
1. On propose la fonction nommée perdus de paramètre joueur, une chaîne de caractères qui
désignera le nom d’un joueur. Préciser le rôle de cette fonction.
def perdus(joueur) :
MPS_J = MS.query('perdant == @joueur and var_gagnant >0')
return list(MPS_J['P_gagnant_début'])
2. Ecrire une fonction nommée gagnés de paramètre joueur (le nom d’un joueur suspect) qui
renvoie la liste LG des probabilités de perdre au début de chacun des matchs gagnés par joueur.
Vérifier votre réponse pour le joueur J1.
3. Écrire une fonction nommée vraisemblance de paramètre joueur (le nom d’un joueur suspect)
qui :
– calcule les nombres N des matchs joués par joueur et n des matchs perdus par joueur ;
– simule 100 000 séries de N matchs joués par joueur et calcule la fréquence des cas amenant à
perdre au moins n matchs sur les N joués.
b) Créer la liste des joueurs suspectés dans plus de 10 matchs et pour lesquels la fonction
vraisemblance donne un résultat inférieur à 5 %.
c) Préciser le nombre de personnes pour lesquelles la vraisemblance est inférieure à 5 %.Quelle part
cela représente-t-il par rapport aux 1 523 joueurs mondiaux ?
35
Catégorie de ressource
Éléments de réponse
Partie A : Table des paris
1.
2. Le joueur J2 est gagnant. Sa probabilité de gagner au début des paris est 0,56 et à la fin des paris,
environ 0,54.
3. Le joueur J1 est perdant. Sa probabilité de gagner au début des paris est 1 – 0,56 = 0,44 et sa
probabilité de gagner à la fin des paris est environ 0,47.
4.
b) Pour le pari 5 du match M2, l’évolution de la probabilité de gagner du joueur J3 est une
augmentation d’environ 0,012.
2. a) Dans les premières lignes de la table T, les variations de la probabilité de gagner du gagnant du
match M1 est inférieure, en valeur absolue, à 0,1. Le match M1 n’est pas suspect.
b)
36
Catégorie de ressource
c)
d)
c) Probabilité de perdre de J1 :
J1 a perdu le match, donc sa probabilité de gagner au début est 1 – P_gagnant_début.
Donc sa probabilité de perdre est 0,463807.
d)
37
Catégorie de ressource
« La liste LP contient, lorsque J1 est suspect, les probabilités qu’a le joueur J1 de perdre au début de
chacun des matchs perdus ».
2. a) Table des matchs gagnés par le suspect J1 :
4. Liste L des probabilités de perdre au début de chacun des matchs joués par J1 :
38
Catégorie de ressource
5. a)
c) La fréquence observée f est très faible. Il est vraiment peu probable que J1 réalise une telle contre-
performance.
On peut suspecter que J1 est impliqué dans d’éventuelles tricheries.
39
Catégorie de ressource
2. Fonction gagnés :
3. a) Fonction nb_joués :
b) Fonction vraisemblance :
4. a) Relevés est la liste des noms des joueurs cités à chaque dans un match suspect.
LJS est la liste des noms des joueurs suspectés dans plus de 10 matchs.
40
Catégorie de ressource
b) Liste des joueurs ayant une vraisemblance inférieure à 5% et jouant au moins10 matchs :
41
Catégorie de ressource
42
Catégorie de ressource
Énoncé de l’activité
Francis Galton (1822-1911) a introduit le mot « régression » dans le cadre d'un ajustement affine de la
taille des enfants selon celle de leurs parents. Galton montre que la taille des enfants nés de parents
inhabituellement grands ou petits se rapproche de la taille moyenne de la population : il y a
« régression » vers la moyenne. Le fichier « Galton.csv » correspond aux données utilisées par
Galton. Les mesures sont en inch (1 inch vaut 2,54 cm).
1. Exécuter les instructions suivantes (le fichier Galton.csv doit se trouver dans le même répertoire
que le programme en Python) et observer les premières lignes du fichier.
import pandas
G = pandas.read_csv('Galton.csv')
G.head()
2. Combien a-t-on de données ? Déterminer la moyenne et l'écart type des tailles du père, de la mère
et de l'enfant. (On pourra utiliser les fonctions suivantes appliquées à la table G :
G.shape et G.describe().)
3. Exécuter les instructions suivantes :
G['Parent_moyen'] = (G['Pere'] + G['Mere']) / 2
G.head(10)
À quoi correspond la variable Parent_moyen ?
4. Effectuer un ajustement affine de la taille de l'enfant selon la taille moyenne des parents en
exécutant les instructions suivantes.
from scipy.stats import linregress
ajust = linregress(G['Parent_moyen'], G['Enfant'])
a = ajust[0]
b = ajust[1]
print(a,b)
Donner une équation de la droite d’ajustement obtenue (arrondir les coefficients à 10– 2).
5. Représenter l’ajustement réalisé à l’aide des instructions suivantes (sur un notebook la dernière
instruction est inutile).
import matplotlib.pyplot as plt
import numpy as np
plt.scatter(G['Parent_moyen'], G['Enfant'])
x = np.array(G['Parent_moyen'])
plt.plot(x, a * x + b, 'r')
plt.plot(x, x, 'g')
plt.show()
6. Quelle est la taille de l'enfant prédite par le modèle lorsque la taille moyenne des parents est 75
inches (inhabituellement grande) ? Et lorsque la taille moyenne des parents est 60 inches
(inhabituellement petite) ? La « loi » défendue par Galton est-elle vérifiée selon ce modèle ?
7. Pour quelle valeur de la taille moyenne des parents, le modèle prévoit-il la même taille pour
l'enfant ?
8. Karl Pearson (1857-1936) fit une étude sur un échantillon plus grand vers 1903. Les données des
tailles pères/fils figurent dans le fichier Pearson.csv. Effectuer un ajustement affine de ces données.
Les résultats de Galton sont-ils confirmés ?
43
Catégorie de ressource
POINT HISTOIRE
Francis Galton (1822-1911), scientifique anglais, est considéré comme le fondateur de l’eugénisme
(science visant à améliorer l’espèce humaine). C’est dans ce cadre qu’il s’est intéressé aux lois de
l’hérédité. Il décrit le phénomène de régression vers la moyenne, qu’il nomme « régression vers la
médiocrité » dans l’article Regression towards mediocrity in hereditary stature publié en 1886 (une
édition est accessible sur Internet) dont est extraite l’illustration suivante.
Il est difficile, aux vues des exactions commises par la suite dans l'Allemagne nazie, d'imaginer
comment, à l'époque, les idées eugénistes de Galton étaient perçues. Ses ouvrages furent en effet
vus, à l’époque, comme progressistes et participant au combat de la science contre l'obscurantisme.
44
Catégorie de ressource
Éléments de réponse
1. On obtient ci-dessous les 5 premières lignes de la table G.
Il y a 197 lignes, c’est-à-dire 197 familles constituées du père, de la mère et d’un enfant.
3. On exécute les instructions demandées qui aboutissent à la création d’une nouvelle colonne (ou
variable) dans la table G.
45
Catégorie de ressource
La droite d’ajustement obtenue a pour équation (en arrondissant les coefficients à 0,01) :
y = 0,57 x + 31,8.
5. Réalisation du graphique :
46
Catégorie de ressource
6. Pour x = 75, le modèle donne y ≈ 74,6 et pour x = 60, le modèle donne y ≈ 66.
La « régression », au sens de Galton, est importante pour les (très) petites tailles, l’enfant a tendance
à être plus grand (on passe de 60 à 66). En revanche, c’est moins évident, pour cet ensemble de
données, pour les grandes tailles où l’enfant a tendance à être un peu plus petit (on passe de 75 à
74,6).
b
7. On résout l’équation en x, ax + b = x. Ce qui donne x = .
1− a
On obtient x ≈ 74. Graphiquement, cela correspond à l’abscisse du point d’intersection entre les
droites rouge (d’ajustement) et verte (d’équation y = x).
8. On procède de façon analogue, en créant la table P avec les données de Pearson.
47
Catégorie de ressource
On constate un phénomène de régression, au sens de Galton, plus net : la droite d’ajustement (en
rouge) est au-dessus de la droite d’équation y = x (en vert) pour les petites valeurs de x (fils plus
grand que le père petit) et en-dessous pour les grandes valeurs de x (fils plus petit que le père grand).
48
Catégorie de ressource
49
Catégorie de ressource
Énoncé de l’activité
Entre 1950 et 1959, on a relevé le taux de mortalité (nombre de décès pour 10 millions d’habitants)
des hommes blancs dû à un mélanome malin de la peau entre 1950 et 1959 dans chaque état des
USA. L’objectif est d’étudier le lien entre le taux de mortalité, la latitude de l’Etat ainsi que la présence
éventuelle d’une côte maritime.
1. Exécuter les instructions suivantes (le fichier texte skincancer.txt doit se trouver dans le même
répertoire que le programme en Python) et observer les premières lignes du fichier.
import pandas
T = pandas.read_csv('skincancer.txt',delim_whitespace=True)
T.head()
2. Effectuer un ajustement affine du taux de mortalité selon la latitude de l’Etat en exécutant les
instructions suivantes.
from scipy.stats import linregress
ajust = linregress(T['Lat'], T['Taux'])
a = ajust[0]
b = ajust[1]
print(a,b)
Donner une équation de la droite d’ajustement obtenue (arrondir les coefficients à 10– 2).
3. Représenter l’ajustement réalisé à l’aide des instructions suivantes (sur un notebook la dernière
instruction est inutile).
import matplotlib.pyplot as plt
import numpy as np
plt.scatter(T['Lat'], T['Taux'])
x = np.array(T['Taux'])
plt.plot(x, a * x + b, 'r')
plt.show()
4. a. Interpréter le graphique obtenu.
b. Quel taux de mortalité, pour 10 millions d’habitants, le modèle prévoit-il pour une latitude de 20°N ?
Et 50°N ?
5. La variable Ocean prend la valeur 1 si l'Etat est bordé par l'océan et la valeur 0 sinon. Donner les
principaux indicateurs statistiques correspondants aux sous-ensembles de données obtenus selon
que la variable Ocean vaut 0 ou 1. Comparer les taux de mortalité moyens pour les deux sous-
ensembles.
(Pour constituer les deux sous-ensembles de données, on peut utiliser les instructions :
OC = T.query('Ocean == 1') et NO = T.query('Ocean == 0').
6. Effectuer, pour chacun des deux sous-ensembles, l’ajustement affine du taux de mortalité selon la
latitude.
7. Quel taux de mortalité, pour 10 millions d’habitants, les modèles prévoient-il pour une latitude de
20°N, selon que l’Etat est, ou non, bordé par l’océan ?
50
Catégorie de ressource
Éléments de réponse
1. On obtient l’affichage suivant.
4. a. Le nuage de points est de forme allongée et l’ajustement affine est justifié. Plus la latitude est
élevée (plus on s’éloigne de l’équateur), plus le taux de mortalité a tendance à diminuer.
b. Prévisions du modèle :
51
Catégorie de ressource
Pour une latitude de 20°N, le modèle prévoit un taux de mortalité de 270 morts pour 10 millions
d’habitants. Pour une latitude de 50°N, le modèle prévoit un taux de mortalité de 90 morts pour 10
millions d’habitants.
5. Indicateurs statistiques selon que l’Etat est, ou non, bordé par l’océan :
Le taux de mortalité moyen est supérieur lorsque l’Etat est bordé par l’océan (170 morts pour 10
millions d’habitants contre 139).
6. Ajustements affines selon que l’Etat est, ou non, bordé par l’océan :
52
Catégorie de ressource
Le taux de mortalité pour 10 millions d’habitants prévu par les modèles à une latitude de 20°N est 271
si l’Etat est bordé par l’océan et 251 si l’Etat n’est pas bordé par l’océan.
53