Vous êtes sur la page 1sur 14

IESE4 année 2021-2022

Examen de Stat - Traitement de données


Durée : 2h. Le seul document autorisé est une feuille A4 MANUSCRITE recto-verso
Prenez le temps de lire l’ensemble du sujet et de rédiger clairement et sans faute d’orthographe vos
réponses.

Toutes vos réponses doivent être détaillée et justifiées !

Exercice 1 : ACP sur le jeu de données « Températures dans les grandes villes européennes »
(sur 10 pt)
Les données se trouvent dans le fichier excel : TemperaturesVilles.xlsx
Ces données correspondent aux températures mensuelles dans plusieurs villes, ainsi que la température
moyenne annuelle, l’amplitude de température, la latitude et longitude de la ville et enfin la région.

Partie 1 : Analyse en composantes principales (ACP) CP uniquement sur les mois


Dans cette première partie seules les 12 premières colonnes du fichier excel correspondant aux 12 mois de
l’année sont analysées.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sb
# On récupère les données
Data = pd.read_excel("TemperaturesVilles.xlsx",sheet_name=0,header=0,index_col=0)
X=Data.iloc[:,0:12].copy();
print(X.shape)

(35, 12)

1/ A quoi correspond ce résultat ? (au niveau de la donnée sur spyder mais également en utilisant la
terminologie utilisée en traitement de données)
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
2/ On écrit les 3 lignes de code ci-dessous :

m=pd.DataFrame.mean(X)
v=pd.DataFrame.var(X)
pd.DataFrame.boxplot(X)

Commentez (à quoi correspondent ces 3 lignes ? Que dire de la figure affichée ?)


……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
Faut-il faire un pré-traitement sur les données avant de réaliser l’ACP ? (Justifier votre réponse)
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………

3/ On réalise ensuite une seconde analyse dont le résultat est donné à la page suivante :
Commentez (à quoi correspond cette analyse ? Que dire du résultat ?)
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
Pourquoi cette analyse est nécessaire avant de réaliser l’ACP ?
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………

Si vous deviez quantifier les observations faites quelle analyse/calcul proposeriez-vous ?


……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………

On réalise alors l’ACP :

from sklearn.decomposition import PCA


acp = PCA()
coord = acp.fit_transform(X)

4/ Quelle est la dimension de coord ? et à quoi correspond cette variable ?


……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
On récupère alors la variable acp.explained_variance_ratio_ et on affiche la figure suivante :

5/ A quoi correspond la figure ci-dessus ?


……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
Indiquez directement sur la figure le nom des axes et donner un titre (soyez précis)

6/ Comment calculer l’inertie totale du nuage de point-individus ? Proposez 2 façons et indiquer les lignes de
code python permettant les calculs (utilisez le nom des variables déjà créées en regardant l’ensemble des lignes
de code).
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
7/ On visualise enfin les 2 figures ci-dessous :

A quoi correspondent ces figures ? (Détailler votre réponse en expliquant exactement ce qui est affiché sur les
figures)
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
8/ Commentaires sur les résultats de l’ACP et interprétation des données
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
Partie 2 : aide à l’interprétation des composantes principales avec l’analyse des variables température
moyenne annuelle, l’amplitude de température, la latitude et longitude de la ville.
On calcule alors les corrélations entre les composantes principales 1 et 2 et les 4 variables et on affiche ces
résultats sur le cercle des corrélations analysés dans l’ACP ; on obtient la figure suivante :
9/ Que pouvez-vous en conclure ?
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………

Exercice 2 : Analyse discriminante linéaire sur un jeu de données médicales (sur 10 pt)
Source des données: http://pbil.univ-Lyon1.fr/R/pps/pps001.txt)
Lasne Y, Akiki S & Dargent (1988). Dosages des marqueurs biochimiques dans les kystes de l’ovaire.
Communication au 7ème Colloque International de Biologie Prospective.
Des patientes, présentant un kyste de l’ovaire, constituent l’échantillon étudié ; il s’agit ici de comparer un
diagnostic histologique (analyse des tissus) et un diagnostic biochimique (analyse par prise de sang) du type de
kyste (l’intérêt manifeste du second étant d’éviter une intervention chirurgicale qui ne s’imposerait pas).
Toutes les patientes inclues dans l’échantillon ont subi une ablation d’un kyste de l’ovaire. Avant l’opération
une ponction de liquide du kyste est effectuée (pour l’analyse histologique) simultanément avec une prise de
sang (pour l’analyse biochimique).
Dans le sérum (prise de sang) et le liquide kystique (kys) sont dosées 5 molécules, l’antigène
carcinoembryonnaire (ace en ng/ml), les antigènes carbohydrates CA 19-9 (ca19 en ui/ml) et CA 125 (ca125
ui/ml), les hormones ovariennes l’oestradiol (oea en ng/ml) et la progestérone (pro en ng/ml). On obtient ainsi
10 variables, notée ser pour sérum et kys pour kyste :
aceser ca19ser ca125ser oeaser proser
acekys ca19kys ca125kys oeakys prokys
Une variable qualitative répartit les kystes en 5 classes :
KBEnd KBSer KBSM KF KOM
KF désigne les kystes fonctionnels. Les autres sont organiques soit malins (KOM) soit bénins (KB) ; ces derniers
sont endométrioides (KBEnd), séro-mucineux (KBSM) ou séreux (KBSer).
Le but de l’analyse est de réaliser une analyse discriminante pour étudier si les variables permettent de séparer
les types de kystes. Dans un premier temps nous allons travailler uniquement avec 3 types de kystes : KF
(classe2), KOM (classe3) et KB (classe1).
1/ Quel est le but d’une analyse discriminante (approche descriptive) ?
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
2/ Qu’est ce que différencie l’analyse discriminante de l’analyse en composantes principales ? (Indiquer ici
toutes les différences depuis les données utilisées en entrée de l’algorithme jusqu’au résultat en passant par
l’analyse).
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………

import matplotlib.pyplot as plt


import numpy as np
import pandas as pd
import seaborn as sb
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
X = pd.read_excel("donneesKyste.xlsx",sheet_name=0,header=0,index_col=0)
data=X.iloc[:,0:11];
valeurs, effectifs = np.unique(data['Type'],return_counts=True) ;

On affiche alors valeurs et effectifs :


valeurs, effectifs
Out[33]: (array([1, 2, 3], dtype=int64), array([77, 20, 24], dtype=int64))
3/ A quoi correspondent ces valeurs
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
4/ On commence par faire une analyse univariée, et on obtient les figures suivantes (seules 3 sont ici données):

Commentez ces figures :


……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
5/ On réalise maintenant une analyse discriminante

lda = LinearDiscriminantAnalysis()
coord_lda = lda.fit_transform(data.iloc[:,0:10],data['Type'])
print(lda.explained_variance_ratio_)

on obtient:
[0.63002408 0.36997592]
Que pouvez-vous dire des valeurs obtenues ? à Quoi correspondent-elles ?
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………

6/ On affiche alors les figures de résultat (voir page suivante). Que pouvez-vous conclure ?
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………

2
1
7/On va maintenant s’intéresser à l’analyse discriminante dans une approche prédictive. On réalise ainsi :

from sklearn.model_selection import train_test_split


from sklearn.metrics import confusion_matrix
import seaborn as sns
X=data.iloc[:,0:10].to_numpy();
y=data['Type'].to_numpy()
# Split the data into a training a testing dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=0)

lda=LinearDiscriminantAnalysis()
X_test_proj = lda.fit(X_train,y_train).transform(X_test)
y_predi=lda.predict(X_test)

Commentez ces lignes de code


……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
8/ On souhaite ensuite vérifier la qualité du classifier. Proposez une méthode pour le faire ? Quelle est la
métrique classique utilisée ?
Une méthode courante pour évaluer la qualité d'un classificateur est d'utiliser une validation croisée, qui consiste à
……………………………………………………………………………………………………………………………………………………………………………
diviser les données en un ensemble d'apprentissage (training set) et un ensemble de validation (validation set), et à
……………………………………………………………………………………………………………………………………………………………………………
évaluer la performance du modèle sur l'ensemble de validation. On peut ensuite répéter cette opération plusieurs
……………………………………………………………………………………………………………………………………………………………………………
fois en changeant la division entre l'ensemble d'apprentissage et l'ensemble de validation, afin d'obtenir une
estimation plus fiable de la performance du modèle.
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
La métrique classique utilisée pour évaluer la performance d'un classificateur est la matrice de confusion, qui permet
……………………………………………………………………………………………………………………………………………………………………………
de calculer les taux de faux positifs, de faux négatifs, de vrais positifs et de vrais négatifs du modèle. À partir de
cette matrice, on peut calculer diverses mesures de performance, telles que l'exactitude (accuracy), la sensibilité
……………………………………………………………………………………………………………………………………………………………………………
(recall), la spécificité (specificity), la valeur prédictive positive (positive predictive value) et la valeur prédictive
……………………………………………………………………………………………………………………………………………………………………………
négative (negative predictive value).

9/ Commentez la figure ci-dessous. A quoi correspond-elle ?

10/ On s’intéresse maintenant uniquement aux kystes KOM (classe3) et KF (classe2). On réalise une analyse
discriminante et on obtient les individus / groupes projetés dans l’espace des composantes discriminantes :

Que pouvez-vous dire de cette figure ? que représente-t-elle ? Que peut-on en conclure ?
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
11/ On souhaite maintenant réaliser la courbe ROC de la composante discriminante
CD1 Type KysteType
1.52805 2 KF
3.47347 2 KF
2.58697 2 KF
3.5255 2 KF
1.63515 2 KF
4.00224 2 KF
1.35924 2 KF
2.9006 2 KF
1.57565 2 KF
1.86073 2 KF
2.02564 2 KF
5.02436 2 KF
1.83802 2 KF
0.564017 2 KF
1.73472 2 KF
1.88299 2 KF
3.05086 2 KF
2.39672 2 KF
4.46256 2 KF
2.3318 2 KF
-2.9171 3 KOM
-0.458402 3 KOM
-2.00723 3 KOM
-2.10837 3 KOM
-1.72228 3 KOM
-2.70221 3 KOM
-2.17158 3 KOM
-2.209 3 KOM
-1.47769 3 KOM
-2.23248 3 KOM
-0.369614 3 KOM
-2.87647 3 KOM
-2.41177 3 KOM
-0.706322 3 KOM
-1.73992 3 KOM
-2.50502 3 KOM
-1.7419 3 KOM
-1.69978 3 KOM
-1.59865 3 KOM
-3.63192 3 KOM
-1.79797 3 KOM
-2.70074 3 KOM
-4.04848 3 KOM
-1.92438 3 KOM
Expliquer en détails comment on obtient la courbe ROC :
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………………………………………

Vous aimerez peut-être aussi