L`analyse discriminante

publicité
Cours de statistiques M2
L’analyse discriminante
Alain Paris
[email protected]
Septembre 2016
1
Plan
• Introduction : que sont les données ?
• Analyse discriminante : cas n individus >> p variables &&
données complètes
– Généralités
– Exemple : iris de Fisher :
•
•
•
•
Représentations
Manova & tests d’hypothèses
AFD décisionnelle et prédictions des inconnus
Bibliothèque ade4
• Analyse discriminante : cas n individus >> p variables &&
données incomplètes
– Bibiothèques ropls et mixOmics
– L’analyse canonique : une autre manière de faire l’AFD
• Les données en grandes dimensions : cas n individus < ou << p
variables && données incomplètes ou incomplètes
– AFD +/- OSC
– OPLS-DA
– SDA +/- OSC
• Conclusions
2
Plan
• Introduction : que sont les données ?
• Analyse discriminante : cas n individus >> p variables &&
données complètes
– Généralités
– Exemple : iris de Fisher :
•
•
•
•
Représentations
Manova & tests d’hypothèse
AFD décisionnelle et prédictions des inconnus
Bibliothèque ade4
• Analyse discriminante : cas n individus >> p variables &&
données incomplètes
– Bibiothèques ropls et mixOmics
– L’analyse canonique : une autre manière de faire l’AFD
• Les données en grandes dimensions : cas n individus < ou << p
variables && données incomplètes ou incomplètes
– AFD +/- OSC
– OPLS-DA
– SDA +/- OSC
• Conclusions
3
Que sont les données ?
4
Analyses statistiques multivariées : aspects généraux
• Structure des données
– Tableau Y : 1 ou q facteurs (ou 1 variable de groupe)
– Tableau X : p (a priori) variables indépendantes mesurées sur n
individus (souvent n << p)
• Objectif stratégique du data mining :
– Trouver les données aberrantes (outliers) à l’intérieur des
groupes d’individus construits a priori
– Trouver une structure cachée d’organisation des individus en
sous-groupes
– Révéler des contrastes “plausibles” existant entre les groupes
d’individus construits a priori
5
Organisation générale & processing des données
Individuals (n)
n statistical
individuals
n1 biological
individuals
Ind
1
.
.
.
.
.
j
.
.
.
.
n
Table X
Table Y1
Table Y2
p independent
variables
m dependent
variables
r controlled
variables
mz1..mzi...mzp
...….mzi,1……
…….…………
...……………..
...……………..
...…………….
……..………..
..…..mzi,j....…
...……………..
...……………..
...……………..
...……………..
..…..mzi,n……
PCA
HCA
MDS
desc1...desck...descm
NA desck,1 descm,1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
desc1,j desck,j descm,j
.
.
.
.
.
.
.
.
NA
.
.
.
desc1,ndesck,n descm,n
OLS, Multiple, PLS,
Lasso regression
PLS2 regression / CCA
fac1....facl….facr
1 …… a……..0
1 …….a……..0
...……………..
...……………..
...…………….
1……..c…….3
2……..a....….0
...……………..
...……………..
...……………..
...……………..
2……..c……..3
MANOVA
Groups
Time
(# q dummy
variables)
Date
t0
.
.
.
.
.
tt
.
.
.
.
tT
ANOVA,
Mixed-effect
models
LDA, SDA, PLS-DA
Grp
G1
G1
.
.
.
.
Gi
.
.
.
.
Gq
6
Abréviations
PCA: Principal Component Analysis // Analyse en Composantes Principales (ACP)
HCA: Hierarchical Cluster Analysis // Classification Hiérarchique
MDS: multidimensional scaling // Analyse de positionnement multidimensionnel
OLS regression; Ordinary Least Squares regression // Régression par moindres
carrés (ordinaires)
Multiple regression // Régression multiple
Lasso : least absolute shrinkage and selection operator // Contraction et sélection
des paramètres d’une régression
PLS1/PLS2 regression: Partial Least square (1/2) regression // Régression par
moindres carrés partiels de type 1 ou 2
CCA: Canonical Correlation Analysis // Analyse (de corrélation) canonique
MANOVA: Multivariate Analysis of Variance // Analyse de variance multivariée
ANOVA: Analysis of Variance // Analyse de variance
Mixed Effect Models // Analyse de variance à effets mixtes
LDA: Linear Discriminant Analysis // Analyse linéaire discriminante
SDA: Shrinkage Discriminant Analysis // Analyse discriminante régularisée
(O)PLS-DA: Partial Least Squares-Discriminant Analysis // Analyse discriminante
par moindres carrés partiels
7
L’analyse factorielle discriminante (AFD, ALD // FDA,
DA, LDA, QDA)
• L’AFD : généralités
– Une méthode pour mettre en évidence les liaisons entre un caractère
qualitatif à expliquer (Y) et un ensemble de caractères quantitatifs
explicatifs (X)  AFD descriptive.
– Quelques exemples :
• Clients d'une banque classés en « bons » ou « mauvais » payeurs ou
« ayant fait faillite » (Y) et indicateurs de gestion (X)
• Cursus universitaire (Y) d'un ensemble d'élèves et notes en terminale (X)
• Groupes cliniques et empreintes métaboliques urinaires par RMN
8
Data processing : l’analyse discriminante
Table X
Names
Independent Identification
variables (p) variable (n)
V0.605
0.19024
0.20149
0.2612
0.21294
0.2007
0.4733
V0.555
0.2703
0.19493
0.29168
0.2313
0.26312
0.49825
V0.535
0.2243
0.17071
0.20215
0.23013
0.24222
0.5754
V0.505
0.17701
0.07033
0.1464
0.19539
0.26558
0.49363
Indiv
M01
M02
M03
M04
M25
M26
0.27168
0.72928
0.16033
0.17639
0.48545
0.25077
0.36819
0.19074
0.18908
0.2856
0.14187
0.1731
0.55058
0.5679
0.38684
0.21281
0.26633
0.27671
0.54425
0.33494
0.28832
0.49734
0.21561
0.29383
0.41691
0.54199
0.19308
0.22975
0.30401
0.26072
0.5251
0.53773
0.25284
0.22915
0.19452
0.21972
0.37625
0.47908
0.22423
0.15987
0.26842
0.22755
0.56146
0.40941
0.23421
0.36865
0.12
0.24517
M27
M28
M49
M50
M51
M52
M01
M02
M03
M04
M25
M26
0.19054
0.16659
0.51784
0.24527
0.17779
0.2111
0.24016
0.20576
0.52871
0.29241
0.22034
0.41146
0.2844
0.21604
0.68798
0.34372
0.18726
0.24182
0.21697
0.33566
0.58655
0.27031
0.24962
0.29641
M27
M28
M49
M50
M51
M52
weight
58
47
36
44
59
NA
_
59
47
54
82
47
62
50
68
56
47
58
64
41
33
73
62
76
64
n statistical individuals
n1 biological
individualsTable
Table
Y
Dependent
variables (q)
Y
Controlled
variables
Groups
Table Y
(t)
Dummy
variables (t)
Morris.NEntrance Porsolt.Lat.Resig1 Sexe Dose Slaughter Date group Dummy.group.1 Dummy.group.2 Dummy.group.3 Dummy.group.4
15
95
F
0
a
0 F00
1
0
0
0
14
89
F
0
a
0 F00
1
0
0
0
15
57
F
0
a
0 F00
1
0
0
0
13
95
F
0
a
0 F00
1
0
0
0
18
58
F
0
b
0 F00
1
0
0
0
NA
_
41
F
0
b
0 F00
1
0
0
0
18
53
F
0
b
0 F00
1
0
0
0
15
56
F
0
b
0 F00
1
0
0
0
16
76
F
0
c
0 F00
1
0
0
0
18
89
F
0
c
0 F00
1
0
0
0
18
70
F
0
c
0 F00
1
0
0
0
18
43
F
0
c
0 F00
1
0
0
0
21
76
F
0
a
1 F10
0
1
0
0
12
93
F
0
a
1 F10
0
1
0
0
15
56
F
0
a
1 F10
0
1
0
0
13
239
F
0
a
1 F10
0
1
0
0
18
60
F
0
b
1 F10
0
1
0
0
15
66
F
0
b
1 F10
0
1
0
0
17
151
F
0
b
1 F10
0
1
0
0
8
131
F
0
b
1 F10
0
1
0
0
18
321
F
0
c
1 F10
0
1
0
0
11
80
F
0
c
1 F10
0
1
0
0
9
382
F
0
c
1 F10
0
1
0
0
6
559
F
0
c
1 F10
0
1
0
0
LDA (CA)
9
Plan
• Introduction : que sont les données ?
• Analyse discriminante : cas n individus >> p variables &&
données complètes
– Généralités
– Exemple : iris de Fisher :
•
•
•
•
Représentations
Manova & tests d’hypothèse
AFD décisionnelle et prédictions des inconnus
Bibliothèque ade4
• Analyse discriminante : cas n individus >> p variables &&
données incomplètes
– Bibiothèques ropls et mixOmics
– L’analyse canonique : une autre manière de faire l’AFD
• Les données en grandes dimensions : cas n individus < ou << p
variables && données incomplètes ou incomplètes
– AFD +/- OSC
– OPLS-DA
– SDA +/- OSC
• Conclusions
10
L’analyse factorielle discriminante
• Une approche prédictive, l’AFD décisionnelle
– L‘AFD crée, pour chaque classe, une fonction de décision
– L’observation x inconnue est affectée à la classe dont la fonction
de décision prend la valeur la plus élevée :
• L‘analyse discriminante permet de générer des règles d'affectation
et de calculer les probabilités d'appartenance à chaque classe
pour chaque observation a posteriori
• Possibilité de validation croisée, en séparant l’échantillon en deux
blocs :
– avec un échantillon d’apprentissage pour créer le modèle et élaborer les
règles de décisions ou d’affectation
– un second échantillon, l’échantillon-test, pour estimer les performances du
modèle
11
L’analyse factorielle discriminante
• L’AFD : généralités
– Différentiation de plusieurs groupes d'individus (Y), et
distinction de ces groupes avec les seuls caractères quantitatifs
de X qui le permettent
– L’AFD : méthode supervisée, puisque réalisée avec des
connaissances a priori sur les caractéristiques des individus
– Méthode géométrique # multivariate-ANOVA (MANOVA) :
• Tests de significativité des distances entre groupes
• Tests de significativité des axes factoriels
• Explication de la construction des composantes
12
L’analyse factorielle discriminante
• L’AFD :
– Objectif :
• Réduire, comme en ACP, le nombre de dimensions des données,
en projetant les individus sur des axes déformant le moins
possible la réalité, en prenant en compte la structuration en
groupes de la population totale des individus
– Principe :
• Recherche des nouvelles variables, dites « composantes
discriminantes » (LD), obtenues à partir des combinaisons linéaires
des variables originales (# MANOVA à une voie)
13
L’analyse factorielle discriminante
• L’AFD :
–
Critère de détermination des nouvelles variables :
Séparation optimale des projections des sous-nuages
• Equivalent à une ACP sur les barycentres des groupes
Résultats :
• Les directions factorielles discriminantes successives sont alors
déterminées, tandis que des graphiques (plans factoriels)
permettent de visualiser les individus ou les variables expliquant la
construction des axes
•
–
–
Algorithme :
•
Maximiser la distance inter-groupe à partir des barycentres et
minimiser la distance entre individus intra-groupe
14
L’analyse factorielle discriminante
• L’AFD :
– Décomposition de la matrice d'inertie V du
nuage : V = W + B
• W est appelée matrice d'inertie intra-classe,
dispersion des individus à l’intérieur d’un
groupe
• B est appelée matrice d'inertie inter-classe,
dispersion entre les groupes
– Le pouvoir discriminant de la direction u est
meilleur si l'inertie inter-classe B est grande,
ce qui équivaut à une inertie intra-classe W
faible
– Chercher les valeurs propres  telles que :
avec u vecteur propre
de V-1*B
3 groupes
[min(k-1 groupes, p variables) axes discriminants]
15
L’analyse factorielle discriminante : un exemple
-glucose
Les profils métaboliques
Lactate + threonine
lipids
glucose, amino acids
-glucose
alanine
threonine
choline
lipids
creatinine
lactate
lysine
Val
Gln,
Glu
Glu
lipids
Gln
5.5
5.0
4.5
4.0
3.5
3.0
2.5
lysine
2.0
1.5
1.0
0.5
0.0
Empreinte obtenue sur sérum humain par 1H NMR à 600,13 MHz
16
ppm
L’analyse factorielle discriminante (AFD) : un exemple
AFD : Application à la métabonomique (# ACP sur les barycentres)
J16
J14
J9
J7
J21
T3A.standard
T2B.standard
T2A.standard
J2
T1B.standard
Ain 93
T1A.standard
5
J0
T3A.nitrate
T3A.virus
T3A.Temoins
T3A.Sans
T3A.Bt
T2B.virus
T2B.Temoins
T2B.nitrate
T2B.Bt
T2B.Sans
T2A.Bt
T2A.nitrate
T2A.virus
T2A.Sans
T2A.Temoins
T0B.standard
T0A.standard
T-1
J-1
0
LD2 (10.1%)
(10.3%)
LD2
10
Global metabolic exploration toward a structuring of the
metabolic information
AFD sur 189 variables
T1B.Bt
T1B.virus
T1B.Temoins
T1B.Sans
T1B.nitrate
T1A.Sans
T1A.Bt
T1A.nitrate
T1A.virus
T1A.Temoins
T0A.Sans
T0A.Bt
Maize-based
-5
T0B.Sans
T0B.Bt
T0B.Temoins
T0B.nitrate
T0B.virus
T0A.nitrate
T0A.Temoins
T0A.virus
-10
J21
J16
J9
J14
dietJ9
J7
Diet transition J0
-20
J2
• 4 séries de rats
nourris par un
régime à base de
pommes de terre
(n = 192)
• 2 séries de rats
nourris par un
régime à base de
maïs (n = 96)
Potato-based diet
-10
0
10
LD1
(76.4%)
LD1 (72.1%)
17al, non publié)
(Paris et
8 x 288 = 2304 empreintes
LDA with 8 x 3 = 24 groupes
L’AFD - un exemple historique : les iris de Fisher
• Un peu d’histoire :
1875 : Régression linéaire de Francis Galton
1896 : Formule du coefficient de corrélation de Karl
Pearson
1900 : Distribution du Χ² de Karl Pearson
1931 : Généralisation du test de Student de Hotelling
1936 : Relations entre 2 sets de variables de Hotelling
1936 : Analyse discriminante de Fisher et
Mahalanobis
1941 : Analyse factorielle des correspondances de
Guttman
1943 : Réseaux de neurones de Mc Culloch et Pitts
1944 : Régression logistique de Joseph Berkson
1958 : Perceptron de Rosenblatt
1962 : Analyse des correspondances de Benzécri
1964 : Arbre de décision AID de Sonquist et Morgan
1965 : Méthode des centres mobiles de E. W. Forgy
1967 : Méthode des k-means de Mac Queen
1972 : Modèle linéaire généralisé de Nelder et
Wedderburn
1975 : Algorithmes génétiques de Holland
1975 : Méthode de classement DISQUAL de Gilbert
Saporta
1980 : Arbre de décision CHAID de KASS
1983 : Régression PLS de Herman et Svante Wold
1984 : Arbre CART de Breiman, Friedman, Olshen,
Stone
1986 : Perceptron multicouches de Rumelhart et
McClelland
1989 : Réseaux de T. Kohonen (cartes autoadaptatives)
vers 1990 : Apparition du concept de data mining
1991 : Méthode MARS de Jerome H. Friedman
1993 : Arbre C4.5 de J. Ross Quinlan
1996 : Bagging (Breiman) et Boosting (FreundShapire)
1998 : Support Vector Machines (SVM) de Vladimir
Vapnik
2001 : Forêts aléatoires de L. Breiman
2005 : Méthode elastic net de Zhou et Hastie
d’après Tuffery, 2010
18
L’AFD - un exemple historique : les iris de Fisher ou de
Anderson…
Iris setosa
I. versicolor
I. virginica
Un peu d’histoire :
 Edgar Anderson (1935). "The irises of the Gaspé Peninsula".
Bulletin of the American Iris Society. 59: 2–5.
 Edgar Anderson (1936). "The species problem in Iris". Annals of the
Missouri Botanical Garden. 23 (3): 457–509. JSTOR 2394164.
 Ronald A. Fisher (1936). "The use of multiple measurements in
taxonomic problems". Annals of Eugenics. 7 (2): 179–188.
doi:10.1111/j.1469-1809.1936.tb02137.x.
19
L’AFD - un exemple historique : les iris de Fisher
• Un peu d’histoire :
str(iris)
# 'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
spiris <- unclass(iris$Species)
pairs(iris[1:4], main = "Les iris de Fisher -- 3 espèces", pch = c(21, 25, 24)[spiris],
bg = c("red", "green3", "blue")[spiris], las = 1, gap = 0,
labels = c("Longueur\nSépale", "Largeur\nSépale", "Longueur\nPétale", "Largeur\nPétale"))
X <- iris[,1:4]
Y <- iris[,5]
20
Les iris de Fisher : les données
21
Les iris de Fisher : structuration de la variance
22
Les iris de Fisher : structuration de la variance
# pca
pca_1 <- princomp(iris[1:4])
plot(pca_1)
names(pca_1)
# [1] "sdev" "loadings" "center" "scale" "n.obs" "scores" "call"
pca_1$sdev
# Comp.1 Comp.2 Comp.3 Comp.4
# 2.049
0.491
0.279
0.154
pca_1$sdev/(sum(pca_1$sdev))
# Comp.1 Comp.2 Comp.3 Comp.4
# 0.689
0.165
0.094
0.052
23
Les iris de Fisher : structuration de la variance
plot(pca_1$scores[,1], pca_1$scores[,2], type="n", xlab="PC1", ylab="PC2")
points(pca_1$scores[,1], pca_1$scores[,2], pch=14+as.numeric(as.factor(iris[,5])), cex=1.15,
col=1+as.numeric(as.factor(iris[,5])))
mean_pc1 <- tapply(pca_1$scores[,1], iris[,5], mean)
mean_pc2 <- tapply(pca_1$scores[,2], iris[,5], mean)
points(mean_pc1, mean_pc2, pch=20+as.numeric(as.factor(levels(as.factor(iris[,5])))), cex=3.5,
bg=1+as.numeric(as.factor(levels(as.factor(iris[,5])))) )
title(main="PCA sur iris de Fisher, plan 1 x 2")
24
Les iris de Fisher : structuration de la variance
library(ellipse)
lines(ellipse(x=pca_1$scores[as.numeric(as.factor(iris[,5]))==1,1:2], scale =
c(sd(pca_1$scores[as.numeric(as.factor(iris[,5]))==1,1]),
sd(pca_1$scores[as.numeric(as.factor(iris[,5]))==1,2])), centre = c(mean_pc1[1],
mean_pc2[1]), level = 0.95, t = sqrt(qchisq(0.95, 1)), which = c(1, 2), npoints = 100),
col=1+as.numeric(as.factor(levels(as.factor(iris[,5]))))[1], lty=1, lwd=1.15 )
lines(ellipse(x=pca_1$scores[as.numeric(as.factor(iris[,5]))==2,1:2], scale =
c(sd(pca_1$scores[as.numeric(as.factor(iris[,5]))==2,1]),
sd(pca_1$scores[as.numeric(as.factor(iris[,5]))==2,2])), centre = c(mean_pc1[2],
mean_pc2[2]), level = 0.95, t = sqrt(qchisq(0.95, 1)), which = c(1, 2), npoints = 100),
col=1+as.numeric(as.factor(levels(as.factor(iris[,5]))))[2], lty=1, lwd=1.15 )
lines(ellipse(x=pca_1$scores[as.numeric(as.factor(iris[,5]))==3,1:2], scale =
c(sd(pca_1$scores[as.numeric(as.factor(iris[,5]))==3,1]),
sd(pca_1$scores[as.numeric(as.factor(iris[,5]))==3,2])), centre = c(mean_pc1[3],
mean_pc2[3]), level = 0.95, t = sqrt(qchisq(0.95, 1)), which = c(1, 2), npoints = 100),
col=1+as.numeric(as.factor(levels(as.factor(iris[,5]))))[3], lty=1, lwd=1.15 )
25
Les iris de Fisher : structuration de la variance
versicolor
virginica
setosa
26
Les iris de Fisher : analyse linéaire discriminante (LDA)
• Objectif :
– Explication d’une variable qualitative Y à m modalités {τ1, …,τm} par p
variables quantitatives Xj , j = 1, …, p observées sur un même
échantillon Ω de taille n
– On dispose d’un nouvel individu indi sur lequel on a observé les Xj mais
pas Y
– Il s’agit de décider de la modalité τl de Y de ce nouvel individu indi :
problème d’affectation
• Exemple des iris de Fisher :
– dim(X) = c(150, 4)
– length(Y) = 150
27
Les iris de Fisher : analyse linéaire discriminante (LDA)
setosa
versicolor
virginica
28
Les iris de Fisher : analyses discriminantes linéaire et
quadratique (LDA, QDA) et prédictions
• La règle de Bayes d’affectation d’un individu indi à un groupe
donné :
– Calcul d’une probabilité a posteriori tenant compte de :
• La probabilité empirique a priori
• Du vecteur moyenne des classes
• De la matrice de variance-covariance des classes
• La définition des zones frontières pour la décision d’affectation
d’un individu inconnu indi à un groupe donné :
– Ligne de niveau de probabilité nulle
– Définition à partir d’une grille couvrant le plan factoriel
29
Les iris de Fisher : analyses discriminantes linéaire et
quadratique (LDA, QDA) et prédictions
• Hétéroscédasticité : matrices de variance-covariance
différentes
– Dans le cas général, il n’y a pas d’hypothèse supplémentaire sur la loi de
x. Alors les matrices Σl sont fonction de la classe l : Analyse
discriminante quadratique
– Les probabilités a priori πl sont supposées connues mais il faut estimer
les moyennes μl et les covariances Σl en maximisant la vraisemblance
– On obtient
la moyenne empirique de x dans la classe l pour
l’échantillon d’apprentissage et on estime Σl par la matrice de
covariance empirique S*Rl
– Beaucoup de paramètres à évaluer : approche peu robuste
30
Les iris de Fisher : analyses discriminantes linéaire et
quadratique (LDA, QDA) et prédictions
• Homoscédasticité : matrices de variance-covariance égales
– On suppose dans ce cas que les lois de chaque classe partagent la
même structure de covariance : Σl = Σ
– Le critère à maximiser devient l qui est linéaire en x : Analyse
discriminante linéaire. Les moyennes μl sont estimées par gl et Σ est
estimée par la matrice de covariance intra empirique
– Si de plus, les probabilités πl sont égales, après estimation le critère
s’écrit
Fdl =
– Fdl : fonctions de classification ou fonctions discriminantes : on retrouve
alors le critère issu de l’analyse factorielle décisionnelle qu’il faut
maximiser
31
Les iris de Fisher : analyse linéaire discriminante (LDA)
et prédictions
# Analyse Lineaire Discriminante
library(MASS)
lda_1 <- lda(X,Y)
names(lda_1)
# [1] "prior" "counts" "means" "scaling" "lev"
pred_lda_1 <- predict(lda_1, X)
names(pred_lda_1)
# [1] "class" "posterior" "x"
"svd"
"N"
"call"
plot(pred_lda_1$x[,1], pred_lda_1$x[,2], type="n", xlab="LD1", ylab="LD2")
points(pred_lda_1$x[,1], pred_lda_1$x[,2], pch=14+as.numeric(as.factor(iris[,5])), cex=1.15,
col=1+as.numeric(as.factor(iris[,5])))
title(main="LDA sur iris de Fisher, plan 1 x 2")
mean_ld1 <- tapply(pred_lda_1$x[,1], iris$Species, mean)
mean_ld2 <- tapply(pred_lda_1$x[,2], iris$Species, mean)
points(mean_ld1, mean_ld2, bg=1+as.numeric(as.factor(levels(as.factor(iris[,5])))), cex=3.5,
pch=20 + as.numeric(as.factor(levels(as.factor(iris[,5])))) )
32
Les iris de Fisher : analyse linéaire discriminante (LDA)
et prédictions
# dessin des zones de confiance a 95% pour chaque groupe
library(ellipse)
# groupes 1 et 2
lines(ellipse(x=pred_lda_1$x[as.numeric(as.factor(iris[,5]))==1,1:2], scale =
c(sd(pred_lda_1$x[as.numeric(as.factor(iris[,5]))==1,1]),
sd(pred_lda_1$x[as.numeric(as.factor(iris[,5]))==1,2])), centre = c(mean_ld1[1],
mean_ld2[1]), level = 0.95, t = sqrt(qchisq(0.95, 1)), which = c(1, 2), npoints = 100),
col=1+as.numeric(as.factor(levels(as.factor(iris[,5]))))[1], lty=1, lwd=1.15 )
lines(ellipse(x=pred_lda_1$x[as.numeric(as.factor(iris[,5]))==2,1:2], scale =
c(sd(pred_lda_1$x[as.numeric(as.factor(iris[,5]))==2,1]),
sd(pred_lda_1$x[as.numeric(as.factor(iris[,5]))==2,2])), centre = c(mean_ld1[2],
mean_ld2[2]), level = 0.95, t = sqrt(qchisq(0.95, 1)), which = c(1, 2), npoints = 100),
col=1+as.numeric(as.factor(levels(as.factor(iris[,5]))))[2], lty=1, lwd=1.15 )
# groupe 3
y_3 <- pred_lda_1$x[as.numeric(as.factor(iris[,5]))==3,2]
x_3 <- pred_lda_1$x[as.numeric(as.factor(iris[,5]))==3,1]
lm_lda_1_3 <- lm(y_3 ~ + x_3)
summary(lm_lda_1_3)
line1 <- ellipse(x= lm_lda_1_3, scale = c(sd(pred_lda_1$x[as.numeric(as.factor(iris[,5]))==3,2]),
sd(pred_lda_1$x[as.numeric(as.factor(iris[,5]))==3,1])), level = 0.95, npoints = 100)
lines(line1[,1]+mean_ld1[3], line1[,2]+mean_ld2[3], col=4)
33
Les iris de Fisher : analyse linéaire discriminante (LDA)
et prédictions
# dessin des zones de confiance a 95% pour
chaque groupe
names(lda_1)
# [1] "prior" "counts" "means" "scaling" "lev"
"svd" "N" "call"
# coefficients des equations discriminantes :
lda_1$scaling
#
LD1
LD2
# Sepal.Length 0.8293776 0.02410215
# Sepal.Width 1.5344731 2.16452123
# Petal.Length -2.2012117 -0.93192121
# Petal.Width -2.8104603 2.83918785
cor(w1, pred_lda_1$x[,1:2] )
#
LD1
LD2
# LD1 1.000000e+00 7.800857e-16
# LD2 8.244826e-16 1.000000e+00
# loadings
cor(iris[,1:4], predict(lda_1, iris[,1:4])$x[,1:2])
#
LD1
LD2
# Sepal.Length -0.7918878
0.21759312
# Sepal.Width 0.5307590
0.75798931
# Petal.Length -0.9849513
0.04603709
# Petal.Width -0.9728120
0.22290236
# scores
pred_lda_1$x
# ebouli des valeurs propres (distribution de
l'information selon les axes)
lda_1$svd/sum(lda_1$svd)
# autre manière de calculer les scores
# [1] 0.9139467
0.0860533
w1 <- as.matrix(iris[,1:4])%*%lda_1$scaling[,1:2] # proportion de trace
lda_1$svd^2/sum(lda_1$svd^2)
# [1] 0.991212605
0.008787395
# verification
34
Les iris de Fisher : analyse linéaire discriminante (LDA)
et prédictions
setosa
versicolor
virginica
35
Les iris de Fisher : analyse linéaire discriminante (LDA)
et manova
# manova
iris <- as.data.frame(iris)
head(iris)
fit <- manova(as.matrix(iris[,1:4]) ~ Species , iris)
summary.aov(fit)
# Response Sepal.Length :
#
# Species
# Residuals
Df
2
147
Sum Sq
63.212
38.956
Mean Sq
31.606
0.265
F value
119.26
Pr(>F)
< 2.2e-16 ***
Sum Sq
11.345
16.962
Mean Sq
5.6725
0.1154
F value
49.16
Pr(>F)
< 2.2e-16 ***
Sum Sq
437.10
27.22
Mean Sq
218.551
0.185
F value
1180.2
Pr(>F)
< 2.2e-16 ***
Sum Sq
80.413
6.157
Mean Sq
40.207
0.042
F value
960.01
Pr(>F)
< 2.2e-16 ***
# Response Sepal.Width :
#
# Species
#
Residuals
Df
2
147
# Response Petal.Length :
#
# Species
#
Residuals
Df
2
147
# Response Petal.Width :
#
# Species
#
Residuals
Df
2
147
36
Les iris de Fisher : analyse linéaire discriminante (LDA)
et manova
summary(fit)
#
Df
Pillai
approx F num Df
den Df
# Species 2
1.1919
53.466
8
290
# Residuals 147
# --#
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Pr(>F)
< 2.2e-16 ***
λi = corrélation canonique au carré (valeurs propres)
Trace de Pillai [ sum(lda_ade4_1$eig) ]
summary(fit, test = "Wilks")
# ANOVA table of Wilks' lambda
#
Df
Wilks
approx F
# Species 2
0.023439 199.15
# Residuals 147
num Df
8
den Df
288
Pr(>F)
< 2.2e-16 ***
Λ de wilks [ prod(1-lda_ade4_1$eig) ]
λi = corrélation canonique au carré
Plus le Λ (Wilks) est faible, meilleure est la
discrimination
37
Les iris de Fisher : analyse linéaire discriminante (LDA)
et manova
• Lambda L de Wilks
p
L = |W|/ |T| =
|W-1T|
=  i
|W| = det(W)
1
i : valeur propre de W-1T [ avec i = 1/(1+i ) et i : valeur propre de W-1B ]
W : matrice de covariance intra groupe (p x p)
B : matrice de covariance inter groupe (p x p)
T : matrice de covariance totale (p x p)
p variables (matrices W et T de rang plein)
• Sous hypothèse de multinormalité et d'égalité des matrices de
covariances, on peut montrer que
-[ n - (p+k)/2 - 1 ] Ln(L)
où
• n est le nombre total d'observations.
• p est le nombre de variables.
• k est le nombre de groupes.
est approximativement distribuée suivant une loi Khi2 avec p(k-1) degrés
de liberté
38
Les iris de Fisher : analyse linéaire discriminante (LDA)
et manova
Suite Lambda L de Wilks
• Conséquences :
– Possibilité de tester la signification des valeurs propres i successives
– (n-k) λ Q est approximativement distribué suivant une loi Khi22 avec
(p+k-2q) degrés de liberté. On vérifie successivement si la 1ère (q=1) valeur
propre est significative, puis la 2nde (q=2), et ainsi de suite
H0 : les vecteurs propres q+1, q+2 .... k-1 n'ajoutent rien à la discrimination
des k groupes
H1 : non H0
k-1
-[ n - (p+k)/2 - 1] Ln(L*)
avec
L* =  i
q+1
est approximativement distribué selon une loi Khi2 avec (p-q)(k-q-1) degrés
de liberté
39
Les iris de Fisher : analyse linéaire discriminante (LDA)
et manova
summary(fit, test = "Wilks")
# ANOVA table of Wilks' lambda
#
Df
Wilks
approx F num Df
den Df
# Species 2
0.023439 199.15
8
288
# Residuals 147
# --#
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
manov_fit <- summary(fit)
names(manov_fit)
# [1] "row.names" "SS"
"Eigenvalues" "stats"
manov_fit$Eigenvalues
# [,1]
[,2]
[,3]
# 32.19193
0.285391
7.483773e-15
gamma <- 1/(1+manov_fit$Eigenvalues)
gamma
# [1] 0.03012781
0.7779734
L <- prod(gamma)
L
# [1] 0.02343863
1
Pr(>F)
< 2.2e-16 ***
[,4]
-2.449876e-15
1
40
Les iris de Fisher : analyse linéaire discriminante
(LDA), manova et test de Wilks
summary(fit, test = "Wilks")
# ANOVA table of Wilks' lambda
#
Df
Wilks
approx F
# Species 2
0.023439 199.15
# Residuals 147
num Df
8
den Df
288
Pr(>F)
< 2.2e-16 ***
# test de significativite de la valeur L de Wilks (0.023439)
# -[ n - (p+k)/2 - 1 ] Ln(L)
n <- 150 ; p <- 4 ; k <- 3
valQ <- -(n-(p+k)/2 - 1)*log(L)
# [1] 546.1153
# degres de liberte : df=p*(k-1)
1 - pchisq(q=valQ, df=p*(k-1))
# [1] 0
41
Les iris de Fisher : analyse linéaire discriminante (LDA)
et manova, autres tests
summary(fit, test="Hotelling-Lawley")
#
Df
Hotelling-Lawley
# Species 2
32.477
# Residuals
147
approx F
580.53
num Df
8
den Df
286
Pr(>F)
< 2.2e-16 ***
Trace de Hotelling-Lawley
[ sum(lda_ade4_1$eig/(1-lda_ade4_1$eig)) ]
summary(fit, test="Roy")
#
Df
Roy
# Species 2
32.192
# Residuals 147
approx F
1167
num Df
4
den Df
145
Pr(>F)
< 2.2e-16 ***
La plus grande valeur propre µ1
[ max(lda_ade4_1$eig/(1-lda_ade4_1$eig)) ]
42
Les iris de Fisher : analyse linéaire discriminante
(LDA), quelques calculs d’algèbre linéaire
library(DiscriMiner)
# Centrer les donnees
centeredData <- scale(iris[,1:4], scale = FALSE)
Y <- iris[,5]
# Generating Scatter matrices
B <- betweenCov(variables = iris[,1:4], group = Y)
W <- withinCov(variables = iris[,1:4], group = Y)
# Trouver les vecteurs propres (Eigen vectors)
ev <- eigen(solve(W) %*% B)$vectors
# Creer les projections sur la 1er axe discriminant
projectedPoints_1 <- centeredData %*% ev[,1] %*%
t(ev[,1])
projectedPoints_2 <- centeredData %*% ev[,2] %*%
t(ev[,2])
plot(projectedPoints_1[,1], projectedPoints_2[,1],
col=1+as.numeric(as.factor(Y)), type="n", xlab="LD1",
ylab="LD2")
points(projectedPoints_1[,1], projectedPoints_2[,1],
col=1+as.numeric(as.factor(Y)), cex=0.85,
pch=14+as.numeric(as.factor(Y)))
# calcul de W-1*B
W1 <- solve(W, tol=1e-25)
eigen(W1%*%B)$values[1:2]
# [1] 32.191929 0.285391
Tot <- totalCov(variables= iris[,1:4], div_by_n = FALSE)
eigen(W1%*%Tot)$values[1:2] - 1
# [1] 32.191929
0.285391
# manov_fit$Eigenvalues[1:2]
# [1] 32.191929
0.285391
1/(1+manov_fit$Eigenvalues[1:2])
# [1] 0.03012781
0.77797337
(1/(1+eigen(W1%*%B)$values[1:2]))
# [1] 0.03012781
0.77797337
(1/(1+eigen(W1%*%B)$values[1])) *
(1/(1+eigen(W1%*%B)$values[2]))
# [1] 0.02343863
43
Les iris de Fisher : analyse linéaire discriminante
(LDA), quelques calculs d’algèbre linéaire
44
Les iris de Fisher : analyse linéaire discriminante (LDA)
prédiction des inconnus – AFD décisionnelle
# prediction des inconnus
library(MASS)
data("iris3")
tr <- sample(1:50, 25)
train <- rbind(iris3[tr,,1], iris3[tr,,2], iris3[tr,,3])
test <- rbind(iris3[-tr,,1], iris3[-tr,,2], iris3[-tr,,3])
cl <- factor(c(rep("s",25), rep("c",25), rep("v",25)))
z <- lda(train, cl)
pred_1 <- predict(z, test)$class
cl[cl!=pred_1]
# [1] v v Levels: c s v
# taux de mal-classes
length(cl[cl!=pred_1])/length(cl)
# [1] 0.02666667
# tableau de classement ou matrice de confusion
table(cl, pred_1)
# pred_1 cl
c
s v
# c
25 0 0
# s
0 25 0
# v
2 0 23
45
Les iris de Fisher : analyse linéaire discriminante (LDA)
avec ade4
library(ade4)
lda_ade4_1 <- discrimin(dudi.pca(as.data.frame(iris[,1:4]), scannf=FALSE), fac=as.factor(iris[,5]),
scannf =
FALSE, nf=2)
plot(lda_ade4_1)
names(lda_ade4_1)
# [1] "eig" "nf" "fa" "li" "va" "cp" "gc" "call"
w1 <- lda_ade4_1$eig
# [1] 0.9698722 0.2220266
w1/sum(w1)
# [1] 0.8137202 0.1862798
w2 <- w1/(1-w1)
w2
# [1] 32.191929 0.285391
w2/sum(w2)
# [1]
0.991212605
0.008787395
lda_1$svd^2/sum(lda_1$svd^2)
# [1]
0.991212605
0.008787395
46
Les iris de Fisher : analyse linéaire discriminante (LDA)
avec ade4
47
Les iris de Fisher : analyse linéaire discriminante (LDA)
avec ade4
# poids canoniques ou coef. dans l'eq.
discriminante
lda_ade4_1$fa
#
# Sepal.Length
# Sepal.Width
# Petal.Length
# Petal.Width
DS1
DS2
0.1200150 0.01772302
0.1168775 0.83778380
-0.6790443 -1.46087856
-0.3743571 1.92176982
# scores lda_ade4_1$li
lda_ade4_1$li
#
# Sepal.Length
# Sepal.Width
# Petal.Length
# Petal.Width
DS1
DS2
-0.7918878 0.21759312
0.5307590 0.75798931
-0.9849513 0.04603709
-0.9728120 0.22290236
lda_ade4_1$cp
#
# RS1
# RS2
# RS3
# RS4
DS1
-0.98150333
-0.10661589
0.15007521
0.05255188
DS2
0.0362021
-0.8347066
-0.4609640
0.2991094
dudi_1 <- dudi.pca(as.data.frame(iris[,1:4]),
scannf=TRUE, nf=4)
# lda_ade4_1$va correlation entre variables et
names(dudi_1)
scores
lda_ade4_1$va
#
# Sepal.Length
# Sepal.Width
# Petal.Length
# Petal.Width
CS1
-0.7918878
0.5307590
-0.9849513
-0.9728120
# equivalent a lda_ade4_1$va
cor(iris[,1:4], lda_ade4_1$li)
CS2
0.21759312
0.75798931
0.04603709
0.22290236
# [1] "tab" "cw" "lw" "eig" "rank" "nf" "c1" "li"
"co" "l1" "call"
t(cor(lda_ade4_1$li, dudi_1$l1))
# equivalent a lda_ade4_1$cp
#
# RS1
# RS2
# RS3
# RS4
DS1
-0.98150333
-0.10661589
0.15007521
0.05255188
DS2
0.0362021
-0.8347066
-0.4609640
0.2991094
48
Plan
• Introduction : que sont les données ?
• Analyse discriminante : cas n individus >> p variables &&
données complètes
– Généralités
– Exemple : iris de Fisher :
•
•
•
•
Représentations
Manova & tests d’hypothèse
AFD décisionnelle et prédictions des inconnus
Bibliothèque ade4
• Analyse discriminante : cas n individus >> p variables &&
données incomplètes
– Bibiothèques ropls et mixOmics
– L’analyse canonique : une autre manière de faire l’AFD
• Les données en grandes dimensions : cas n individus < ou << p
variables && données incomplètes ou incomplètes
– AFD +/- OSC
– OPLS-DA
– SDA +/- OSC
• Conclusions
49
L’analyse discriminante avec données manquantes
• AFD conventionnelle :
– Retrait des lignes concernées
– Diminution de la puissance statistique
• Possibilité avec la régression PLS (PLS2)
– Sous R :
• library(ropls)
• library(mixOmics)
– Simca
50
Les iris de Fisher : analyse discriminante avec opls
(PLS-DA, OPLS-DA)
library(ropls)
data("iris")
X <- iris[,1:4]
Y <- iris[,5]
oplsda_1 <- opls(X,Y, orthoI = 0)
# PLS-DA
# 150 samples x 4 variables and 1 response
# standard scaling of predictors and response(s)
#
R2X(cum) R2Y(cum) Q2(cum) RMSEE
# Total
0.995
0.586
0.566
0.307
dev.off(2) # dev.off(which = dev.cur())
pre
3
ort
0
pR2Y
0.05
pQ2
0.05
plot(oplsda_1, typeVc = 'x-score')
plot(oplsda_1, typeVc = 'x-loading')
# "outlier", "predict-train", "xy-score", "xy-weight"
# une limitation de opls
oplsda_2 <- opls(X,Y, orthoI = 1)
# Error: OPLS-DA only available for binary classification (use PLS-DA for multiple classes)
# pas de correction orthogonal du signal
51
Les iris de Fisher : analyse linéaire avec opls (PLS-DA)
52
Les iris de Fisher : analyse linéaire avec opls (PLS-DA)
53
Les iris de Fisher : analyse linéaire avec opls (PLS-DA)
54
Les iris de Fisher : analyse linéaire avec mixOmics
(PLS-DA) – données complètes / incomplètes
# analyse plsda sur donnees completes
library(mixOmics)
data("iris")
X <- iris[,1:4]
Y <- iris[,5]
plsda_1 <- plsda(X,Y, ncomp=2)
plotIndiv(plsda_1, col=1 + as.numeric(as.factor(Y)), ellipse = TRUE, ellipse.level=0.95)
# analyse plsda sur donnees completes
X1 <- X
X1[sample(1:150,10),1] <- NA
X1[sample(1:150,10),2] <- NA
X1[sample(1:150,10),3] <- NA
X1[sample(1:150,10),4] <- NA
plsda_2 <- plsda(X1,Y, ncomp=2)
plotIndiv(plsda_2, col=1 + as.numeric(as.factor(Y)), ellipse = TRUE, ellipse.level=0.95)
plotVar(plsda_2, comp=c(1,2))
55
Les iris de Fisher : analyse linéaire avec mixOmics
(PLS-DA) – données complètes – score plot
versicolor
setosa
virginica
56
Les iris de Fisher : analyse linéaire avec mixOmics
(PLS-DA) – données manquantes – score plot
versicolor
setosa
virginica
57
Les iris de Fisher : analyse linéaire avec mixOmics
(PLS-DA) – données manquantes – loading plot
58
Les iris de Fisher : analyse linéaire discriminante (LDA)
et corrélations canoniques ou pouvoir discriminant
α = /(1+) avec , valeur propre de W-1B :
– Ce rapport α exprime la proportion de la variabilité totale
imputable aux différences entre les barycentres des groupes.
– Cette quantité est analogue au R2 en régression. On définit α
comme le coefficient de corrélation canonique ou pouvoir
discriminant
– Ceci fait référence à une manière de réaliser l’analyse
discriminante à partir de l’analyse canonique
59
L’analyse linéaire discriminante (LDA) et l’analyse
canonique
60
L’analyse canonique (AC)
• Sur le plan théorique, l’AC est la méthode centrale de la
statistique descriptive multidimensionnelle :
– Généralisation d’autres méthodes :
• la régression linéaire simple ou multiple / l’ANOVA
• l’analyse factorielle discriminante [un des deux groupes de
variables est remplacé par les indicatrices d’une variable
qualitative]
• le MANOVA [p variables et k facteurs]
• l’analyse factorielle des correspondances [chacun des deux groupes
est remplacé par les indicatrices d’une variable qualitative]
– Généralisations de l’AC [g groupes de variables quantitatives et
qu’elles permettent de retrouver] :
• l’analyse des correspondances multiples [l’ACM, en remplaçant
chaque groupe par les indicatrices d’une variable qualitative]
• l’ACP [en ne mettant qu’une seule variable quantitative dans
chaque groupe]
(d’après Ph. Besse)
61
L’analyse canonique : principe
Tableau Y
Tableau Z
(Bry, 1996)
62
Les iris de Fisher : analyse linéaire discriminante par
l’analyse canonique
library(mixOmics)
data("iris")
X <- iris[,1:4]
Y <- iris[,5]
# fonction "indicatrice" pour preparer la table des indicatrices
Y1 <- indicatrice(data.frame(Y=Y,fact=Y), nom.fac="fact" )
# ne garder que 2 indicatrices (k-1 groupes)
Y1 <- Y1[,3:4]
Y1 <- apply(Y1, 2, as.numeric)
rcc_1 <- rcc(X, Y1, ncomp=2)
names(rcc_1)
# [1] "call" "X" "Y" "ncomp" [5] "method" "cor" "loadings" "variates"
# [9] "names" "lambda" "explained_variance"
plotIndiv(rcc_1, comp=c(1,2), group=Y, col.per.group=1 + as.numeric(as.factor(Y)),
ellipse = TRUE, ellipse.level=0.95, legend=TRUE, legend.title="Species",
X.label="LD1", Y.label="LD2" )
plotVar(rcc_1, comp=c(1,2), legend=TRUE )
63
Les iris de Fisher : analyse linéaire discriminante par
l’analyse canonique
64
Plan
• Introduction : que sont les données ?
• Analyse discriminante : cas n individus >> p variables &&
données complètes
– Généralités
– Exemple : iris de Fisher :
•
•
•
•
Représentations
Manova & tests d’hypothèse
AFD décisionnelle et prédictions des inconnus
Bibliothèque ade4
• Analyse discriminante : cas n individus >> p variables &&
données incomplètes
– Bibiothèques ropls et mixOmics
– L’analyse canonique : une autre manière de faire l’AFD
• Les données en grandes dimensions : cas n individus < ou << p
variables && données incomplètes ou incomplètes
– AFD +/- OSC
– OPLS-DA
– SDA +/- OSC
• Conclusions
65
L’analyse discriminante décisionnelle : les problèmes
de classification quand n individus << p variables
• Performance des méthodes de classification :
– Avec ou sans correction orthogonale des données
– Nécessité de procéder à une sélection / pseudo-sélection des variables
– LDA, QDA, PLS-DA, LASSO/Elastic-Net, SDA (Ahdesmäki & Strimmer,
2009)
• Validation par bootstrap (n = 1000) et calcul des intervalles de
confiance des taux de prédiction : exemple des anomalies
endocriniennes sur une cohorte de cyclistes
66
Shrinkage discriminant analysis, SDA (Ahdesmäki &
Strimmer, 2009)
• Introduction d’un estimateur des corrélations P, variances V
and proportions a priori k utilisant une régularisation de
type James-Stein
• Prédicteurs de la distance δ-transformée de Mahalanobis :
 k   pool 


 k( x)  V P  x 
2


T
ˆ
ˆ
ˆ
• Sachant un estimateur   1 ,, p (par exemple un
1 / 2
1 / 2


estimateur empirique) et une estimation cible donnée ˆ target
(choisie par le statisticien), l’estimation régularisée de James~
Stein :
  ˆ target  1   ˆ
est la combination linéaire qui relie ˆ et ˆ target
•  est calculé par validation croisée pour minimiser l’erreur
quadratique moyenne (mean squared error, MSE, ou carré
moyen des erreurs)
67
LDA et correction orthogonale du signal (OSC)
présélection des variables RMN du 1H par ANOVA [ lm(Xi ~ factor) ] :
max(p vars) = 30-35% du nombre d’individus
OSC = 0
OSC = 1
Concentrations en testostérone dans le sérum de cyclistes : 1/0/-1
68
SDA et correction orthogonale du signal (OSC)
OSC = 0
OSC = 1
Concentrations en testostérone dans le sérum de cyclistes : 1/0/-1
69
SDA et correction orthogonale du signal (OSC) : les
performances
Bootstrap : n = 1000
(Paris et al, non publié)
70
Conclusions : Quelques éléments à retenir
• La discrimination :
– une ACP sur barycentres
– L’interprétation des cartes factorielles
• L ’Analyse Linéaire Discriminante :
– Approche simplifiée du problème de la discrimination (variances
intragroupes constantes) :
• Règle empirique : nombre limite de variables (p _var_sel ) < 0,3 *
nombre d’individus (n_ind)
• Diagrammes (trop) schématiques
• Données manquantes non gérées
– Performances du « classifieur » à évaluer
• L’(O)PLS-DA :
– Approche plus respectueuse de la structure de la variance intra- et
intergroupe :
• Possibilité de correction orthogonale des données
• Pas de sélection a priori des variables (gestion des variables colinéaires)
• Gestion des données manquantes
• L’ICDA (en développement) :
– Analyse en composantes indépendantes (ICA) supervisée
– Recherche de composantes spécifiques (modules) d’une perturbation71
donnée ou d’une classe de perturbations
Quelques liens et références
• http://maths.cnam.fr/IMG/pdf/Analyse_discriminante-Nov2010.pdf (P.L.
Gonzalez)
• https://fr.wikipedia.org/wiki/Analyse_discriminante_lin%C3%A9aire
(Wikipédia)
• https://pbil.univ-lyon1.fr/R/pdf/tdr63.pdf (A.B. Dufour, D. Chessel, J.R.
Lobry)
• http://www.math.univ-toulouse.fr/~besse/Wikistat/pdf/st-m-app-add.pdf
(Ph. Besse)
• https://www.google.fr/search?q=analyse+discriminante+lin%C3%A9aire+t
enenhaus&ie=utf-8&oe=utf-8&client=firefoxb&gfe_rd=cr&ei=LvziV_6VAuHt8werk7HADw (M. Tenenhaus)
• http://cedric.cnam.fr/~saporta/discriminante.pdf (G. Saporta)
• http://data.mining.free.fr/cours/Predictives.PDF (S. Tufféry)
• http://www.isys.ucl.ac.be/etudes/cours/linf2275/07cours1.pdf (C.
Decaestecker, M. Saerens)
• http://www.dagnelie.be/stpres.html (P. Dagnélie)
72
Téléchargement