Académique Documents
Professionnel Documents
Culture Documents
FRANÇOIS HUSSON
PRATIQUE DE
LA STATISTIQUE
PRATIQUE DE
LA STATISTIQUE
et la science des données
R pour la statistique
PRATIQUE DE
LA STATISTIQUE
Les auteurs
Sous la direction de
FRANÇOIS HUSSON
etc.). École polytechnique
Ce livre s’articule en deux grandes parties : la Nicolas Klutchnikoff,
première est centrée sur le fonctionnement du Université Rennes 2
logiciel R tandis que la seconde met en oeuvre Erwan Le Pennec,
une trentaine de méthodes statistiques au travers École polytechnique
de fiches. Ces fiches sont chacune basées sur un
Eric Matzner-Løber,
exemple concret et balayent un large spectre de
Cepe ENSAE
techniques pour traiter des données.
Ce livre s’adresse aux débutants comme Laurent Rouvière,
aux utilisateurs réguliers de R. Il leur permettra Université Rennes 2
de réaliser rapidement des graphiques et des Benoît Thieurmel,
traitements statistiques simples ou élaborés. Datastorm
π1 fX|Y =1 (x)
P(Y = 1|X = x) = , (9.10)
π0 fX|Y =0 (x) + π1 fX|Y =1 (x)
294
Chapitre 9. Méthodes usuelles de régression
Exemple
Dans le cadre d’une étude de la population angevine, le CHU d’Angers s’est inté-
ressé à la propension à ronfler d’hommes et de femmes. Le fichier ronfle.txt contient
un échantillon de 100 patients, les variables considérées sont :
– age : en années ;
– poids : en kg ;
– taille : en cm ;
– alcool : nombre de verres bus par jour (en équivalent verre de vin rouge) ;
– sexe : sexe de la personne (F = femme, H = homme) ;
– ronfle : diagnostic de ronflement (O = ronfle, N = ne ronfle pas) ;
– taba : comportement au niveau du tabac (O = fumeur, N = non fumeur).
Le but de cette étude est d’expliquer le ronflement (variable ronfle) par les six
autres variables présentées ci-dessus. Le tableau suivant est un extrait du jeu de
données :
Étapes
1. Importer les données
2. Construire le modèle
3. Sélectionner des variables
4. Estimer le taux de mauvais classement
5. Faire de la prévision
295
9.6. Analyse discriminante linéaire
Traitement de l’exemple
1. Importer les données
2. Construire le modèle
La fonction lda de la librairie MASS permet de réaliser l’analyse discriminante
linéaire. La librairie MASS est installée par défaut dans R, il suffit donc de la
charger. La fonction lda utilise, comme la fonction lm (cf. annexe A.1, p. 401),
une formule du type Y ~ X1+X2. Les probabilités a priori choisies pour l’analyse
doivent également être spécifiées. Si on ne dispose d’aucun a priori sur ces deux
quantités, deux stratégies peuvent être envisagées :
– les probabilités sont choisies égales, c’est-à-dire π0 = π1 = 0.5 ;
– les probabilités sont estimées par la proportion d’observations dans chaque
groupe.
Le choix des probabilités a priori est spécifié dans l’argument prior de la fonction
lda. Si rien n’est précisé, c’est la deuxième stratégie qui est utilisée par défaut. On
écrit d’abord le modèle prenant en compte toutes les variables explicatives :
> library(MASS)
> mod.complet <- lda(ronfle~.,data=donnees)
> mod.complet
Call:
lda(ronfle ~ ., data = donnees)
Prior probabilities of groups:
N O
0.65 0.35
Group means:
age poids taille alcool sexeH tabaO
N 50.26154 90.47692 180.9538 2.369231 0.6923077 0.6769231
O 56.00000 90.28571 181.3714 4.028571 0.8571429 0.5714286
296
Chapitre 9. Méthodes usuelles de régression
LD1
age 0.05973655
poids -0.01620579
taille 0.01590170
alcool 0.24058822
sexeH 0.55413371
tabaO -1.14621434
On retrouve dans les sorties les probabilités a priori du modèle, le centre de gravité
de chacun des deux groupes et les coefficients de la variable canonique. Le logiciel
renvoie par convention les coefficients de la variable canonique de sorte que sa
variance intraclasse soit égale à 1. Il est difficile de trouver les variables importantes
pour la discrimination en comparant les centres de gravité ; il est souvent plus
pertinent d’étudier l’influence des coefficients sur le score. La fonction plot permet
de représenter la distribution des coordonnées de chaque individu sur la variable
canonique pour chaque groupe :
> plot(mod.complet)
0.4
0.2
0.0
−3 −2 −1 0 1 2
group N
0.4
0.2
0.0
−3 −2 −1 0 1 2
group O
Figure 9.13 – Distribution des coordonnées des individus sur la variable discri-
minante.
On pourra remarquer que les ronfleurs ont tendance à posséder une coordonnée
élevée sur la variable discriminante.
3. Sélectionner des variables
Tout comme pour les modèles linéaire et logistique, il est possible de faire de la
sélection pour l’analyse discriminante linéaire. La fonction stepclass du package
297
9.6. Analyse discriminante linéaire
klaR permet d’utiliser des procédures pas à pas pour choisir un modèle. À chaque
étape, la procédure ajoute ou supprime la variable qui optimise un critère de per-
formance estimé par validation croisée. Le critère utilisé par défaut est le taux de
bon classement. Le processus s’arrête lorsqu’aucun ajout ou retrait de variable ne
permet d’améliorer significativement le critère. Le niveau minimal d’amélioration
pour ajouter ou supprimer une variable est défini par le paramètre improvement,
ce paramètre étant par défaut fixé à 0.05.
La fonction stepclass exige que les variables qualitatives représentées par des fac-
teurs soient codées en 0/1. On peut effectuer ce codage à l’aide de la fonction
model.matrix :
298
Chapitre 9. Méthodes usuelles de régression
Group means:
age poids alcool
N 50.26154 90.47692 2.369231
O 56.00000 90.28571 4.028571
> table(prev.complet,donnees$ronfle)
prev.complet N O
N 53 22
O 12 13
> table(prev.sel,donnees$ronfle)
prev.sel N O
N 55 23
O 10 12
> mean(prev.complet!=donnees$ronfle)
[1] 0.34
> mean(prev.sel!=donnees$ronfle)
[1] 0.33
Le modèle avec 3 variables a un taux d’erreur légèrement plus faible que le modèle
complet.
299
9.6. Analyse discriminante linéaire
5. Faire de la prévision
Les modèles construits précédemment peuvent être utilisés dans un contexte de
prévision. Le tableau suivant contient les valeurs des six variables explicatives me-
surées sur quatre nouveaux patients :
Pour prédire le label de ces quatre nouveaux individus, on récolte d’abord les
nouvelles données dans un data-frame qui possède la même structure que le tableau
de données initial (notamment les mêmes noms de variables). On construit donc
une matrice pour les variables quantitatives et une matrice pour les variables
qualitatives avant de les regrouper dans un même data-frame :
> n_don1<-matrix(c(42,55,169,0,58,94,185,4,35,70,180,6,67,63,166,3),
ncol = 4, byrow = TRUE)
> n_don2<-matrix(c("F","N","H","O","H","O","F","N"),
ncol = 2, byrow = TRUE)
> n_donnees<-cbind.data.frame(n_don1,n_don2)
> names(n_donnees) <- names(donnees)[-6]
La fonction predict.lda, que l’on peut appeler plus simplement par le raccourci
predict, permet d’affecter un groupe à chacun de ces quatre individus :
> predict(mod.sel,newdata=n_donnees)
$class
[1] N N N O
Levels: N O
$posterior
N O
1 0.8582230 0.1417770
2 0.5444034 0.4555966
3 0.7435646 0.2564354
4 0.4308341 0.5691659
$x
LD1
1 -1.3076693
2 0.6580354
3 -0.4159631
4 1.2111277
300
Chapitre 9. Méthodes usuelles de régression
La fonction qda, disponible dans la librairie MASS, permet alors de réaliser une
analyse discriminante quadratique. Elle s’utilise de la même façon que lda.
Dans cette partie, nous nous sommes restreints à un problème de discrimination
pour une variable à expliquer binaire. L’analyse discriminante linéaire se généralise
aisément au cas où la variable à expliquer possède J > 2 modalités. Les probabilités
a posteriori sont toujours calculées à l’aide du Théorème de Bayes en faisant pour
chaque groupe l’hypothèse de normalité X|Y = j ∼ N (µj , Σ) pour j = 1, . . . , J
(ou X|Y = j ∼ N (µj , Σj ) pour l’analyse discriminante quadratique). La mise
en œuvre sur R ne pose aucune difficulté et s’effectue comme précédemment : les
modèles sont écrits de la même façon et on affecte l’individu au groupe pour lequel
la probabilité a posteriori est la plus élevée.
Concernant la seconde manière d’envisager l’analyse discriminante linéaire (réduc-
tion de la dimension), on ne cherchera plus une variable canonique discriminante
mais (J − 1) variables.
Des méthodes de régularisation ont été proposées pour répondre aux problèmes
de la grande dimension ou de corrélations élevées entre les variables explicatives.
On pourra mettre en œuvre ces techniques sur R en utilisant la fonction rda du
package klaR ou encore la fonction hdda du package HDclassif .
301