Transcript (P) Maximal

Cours 4: Analyse discriminante (AFD)

I- Principes de l’AFD II- Données et définitions III- Recherche du premier axe discriminant IV- Recherche des axes de rang supérieur V- AFD à la main VI- AFD sous R

I- Principes de l’AFD

 Objectif : Discriminer (séparer, caractériser) m groupes d’individus préalablement définis, décrits par p variables quantitatives.

 Moyen : Rechercher des combinaisons linéaires des p variables initiales (axes discriminants) permettent de caractériser au mieux les groupes.

 D’un point de vue technique, l’AFD peut être vue comme l’ACP normée du nuage des centres de gravités des m groupes d’individus, munis du poids des groupes.

I- Principes de l’AFD

II- 1 Les données

• Tableau X centré (sinon, on le centre) Groupe E1 Valeurs

X

1     ……  1...

p

Ek …..

X k

k

 1...

p

Em

X m

m

 1...

p

II-1 Les données

• Matrices associées

X

      

X

...

...

X m

1      

X k

          

x

11 ....

x n k

1 ....

....

....

x

1

p

....

xn p k

        

P

= matrice des poids

II- 1 Les données

X kc

= matrice centrée correspondante

n P k k

= effectif du groupe k = matrice diagonale des poids des individus du groupe k

diag

n k G k

= centre de gravité du groupe k

C

G

1     

G m

M =matrice diagonale des poids des différents

diag

m k

n k n

II-2 Définitions

  Inertie ou variance inter-classes : variables calculée sur le nuage des centres de gravités des m groupes matrice de var-cov des p

B

 Inertie ou variance intra-classes :

W

 

m V k k V

individus du groupe k

V k

X kc

'

P X k kc

 Inertie ou variance totale : On a :

V

II-2 Définitions

Cas particulier : Les poids sont tous égaux

B

 

n k n

'

k V k

 1

n k

'

X X k k

G G k k

'

W

 1

n

n V k k

III- Recherche du premier axe discriminant

(P)

axe: On cherche u 1 tel que en projection sur cet -Les centres de gravité des différents groupes soient les plus éloignés possibles (inertie INTER-classe élevée ) - Les individus d’un même groupe soient concentrés le plus possible autour de leur centre de gravité (inertie INTRA-classes faible )

III- Recherche du premier axe discriminant

Inertie du nuage projeté : D 1 =X u 1 coordonnées du nuage projeté

I

1  ' 1  ' ' 1  ' 1

I

1  ' 1 1  ' 1 1 

I

1

B

I

1

W

(P)

chercher

u

1 

R p

/ ' 1 -Inertie intra-classes minimale 1 1  1 ' ' 1 1

(P) Maximal

1 1

III- Recherche du premier axe discriminant

(P)

u

1 est le vecteur propre unitaire de associé 

V Bu

1  

u

1 1

Définitions

:   

u

1 est la direction du premier axe discriminant D 1 =X u 1 est la première variable discriminante:vecteur constitué des coordonnées des n individus sur l’axe 1  1 est le pouvoir discriminant de l’axe 1

III- Recherche du premier axe discriminant

Remarque

: On peut montrer que

(P)

  1  ' 1 1 ' 1 1 maximal La solution de ce nouveau problème est le vecteur propre unitaire de W -1 B associé à la valeur propre   1  1  1  1

III- Recherche du premier axe discriminant

Prop

  

:

  ' 1 1 est le pouvoir discriminant de l’axe 1  1  1  = 1 [ 0,1 ] 1 ' 1 1 : discrimination parfaite  1 = 0 : Les centres de gravité des nuages de points sont confondus ( aucune discrimination n’est possible).

1 = 1

E 1 

1 = 0

E 1 E 2 E 2

IV- Recherche des axes de rang supérieurs

 L’AFD du tableau X s’obtient en cherchant les vecteurs propres uk et les valeurs propres associées de : le k ° axe discriminant est le vecteur propre associé à la valeur propre de rang k de cette matrice.

 Le nombre maximum d’axes (= nombre de valeurs propres non nulles) que l’on puisse obtenir en effectuant l’AFD sur m groupes est ( m-1 ).

V- AFD à la main

On observe deux variables quantitatives X groupes (M : masculin et F : féminin) : 1 et X 2 sur un ensemble de n=5 individus de même poids, supposés répartis en deux Groupe M M M F F X1 1 3 2 3 6

Gr

M M M F F

X 1

1 3 2 3 6

X 2

5 6 4 3 2 X2 5 6 4 3 2

V- AFD à la main

X2 M M M F F X1

Grandeurs d’intérêt n1=3, n2=2, n=5

X

1    2 0 1 2     1 0 

V- AFD à la main

G

1 :

X

       0 0 2 1  3

X

2 1 2 0  1        2 0  3  1  2  

M

 3/ 5 0 0 2 / 5  

G G

2  1.5

 1.5

 

V- AFD à la main

Recherche de l’axe discriminant :  Matrice variance totale: V = X’X/n

V

5   14   8 8 10     Matrice de variance inter-classes :

B

B

5  7.5

  7.5

 7.5

7.5

  Matrice de variance intra-classes :

V k

 1

n k

'

X X k k

G G k k

'

V

1  2 3  1 1 2  

V

2  4.5

2   1.5

 1.5

0.5

 

W

 1

n

n V k k W

 6.5

5   0.5

 0.5

2.5

 

V- AFD à la main

Matrice à diagonaliser :

V

 1

B

 7.5

76   2  6  2 6  

V- AFD à la main

• La valeur propre non nulle de V meilleure est la discrimination) -1 B est = 0.79, qui est le pouvoir de discriminant de l’axe ( rappelons que plus cette valeur est proche de 1 • Le vecteur propre unitaire associé à cette valeur propre est donné par :

u

 1/ 10 3/ 10   • Les coordonnées sur cet axe D=Xu sont : C = M M M F F 5 6 1 -3 -9

V- AFD à la main

>c=read.table("cours.txt",header=T) Groupe X1 X2 1 M 1 5 2 M 3 6 3 M 2 4 4 F 3 3 5 F 6 2 >mc=matrix(apply(c[,2:3],2,mean),5,2,byrow =T) >X=as.matrix(c[,2:3]-mc) > X1=X[X$Groupe=="M",] > X2=X[X$Groupe=="F",] >G1=apply(X1[,2:3],2,mean) > G2=apply(X2[,2:3],2,mean) >V=(t(X)%*%X)/5 >M=diag(c(3/5,2/5)) >C=rbind(G1,G2) >B=t(C)%*%M%*%C >V1=(t(X1)%*%X1)/3-G1%*%t(G1) > V2=(t(X2)%*%X2)/2-G2%*%t(G2) >W=(3*V1+2*V2)/5 >I=solve(V)%*%B > u=eigen(I)$vector >lambda= eigen(I)$values >D=X%*%u

VI- AFD sous R

1) On effectue l’ACP sur le nuage de point des centres de gravités du tableau centré.

2) On utilise la fonction lda() de la library MASS 3) On utilise la fonction discrimin() de la library ade4

VI- AFD sous R

Library(MASS) lda(formula, data, ...,) Formula : A formula of the form 'groups ~ x1 + x2 + ...' That is, the response is the grouping factor and the right hand side specifies the (non-factor) discriminators. data: Data frame from which variables specified in 'formula' are preferentially to be taken. prior: the prior probabilities of class membership. If unspecified, the class proportions for the training set are used. If present, the probabilities should be specified in the order of the factor levels.

VI- AFD sous R

age 45 47 38 36 29 39 27 51 32 35 revenu 250 160 165 175 99 170 120 160 155 170 patrimoine 1300 1150 850 770 450 1400 1400 1300 1500 1400 emprunt 600 450 370 250 400 120 160 320 350 180 groupe 3 3 1 1 1 3 2 3 2 2

VI- AFD sous R

>a=lda(groupe~age+revenu+patrimoine+emprunt,d) #d=Données Call: lda(groupe ~ age + revenu + patrimoine + emprunt, data = d) Prior probabilities of groups: Coefficients de la matrice M 1 2 3 0.3 0.3 0.4 Group means: moyennes par groupe des variables du tableau d age revenu patrimoine emprunt 1 34.33333 146.3333 690.000 340.0

2 31.33333 148.3333 1433.333 230.0

3 45.50000 185.0000 1287.500 372.5

VI- AFD sous R

Coefficients of linear discriminants: Coordonnées des vecteurs u1 et u2 renormalisées LD1 LD2 age 0.048261265 -2.169801e-01 revenu 0.025594479 5.976213e-04 patrimoine -0.011352863 1.724238e-04 emprunt -0.005286007 -5.039816e-05 Proportion of trace: mu/somme(mu): % d’inertie conservé par chaque axe LD1 LD2 0.8451 0.1549

VI- AFD sous R

> names(a) [1] "prior" "counts" "means" "scaling" "lev" "svd" "N" [8] "call" "terms" "xlevels" a$prior: poids des groupes a$counts : nombre d’individus dans les groupes a$means : moyenne des variables dans les groupes a$scaling: coordonnées des axes discriminants dans l’ancien repère a$lev : nombre de niveaux du facteur groupe a$svd:??

VI- AFD sous R

>a$means age revenu patrimoine emprunt 1 34.33333 146.3333 690.000 340.0

2 31.33333 148.3333 1433.333 230.0

3 45.50000 185.0000 1287.500 372.5

Le groupe 1 est un groupe de gens assez jeunes à revenus plus faibles que la moyenne dont le patrimoine est nettement plus faible que dans les autres classes et le taux d’emprunt plus élevé que la moyenne Le groupe 2 est caractérisé par des gens jeunes de revenus moyens, mais dont le patrimoine est très important et le taux d’emprunt très faible Le groupe 3 est caractérisé par des gens plus agés de revenus confortables et de patrimoine assez important, ayant un taux d’emprunt plus élevé que dans les autres classes

VI- AFD sous R

>plot(a, col = as.numeric(d[ ,5])) Graphe de X%*%a$scaling 2 2 -4 2 3 3 3 3 -2 0 LD1 2 1 4 1 1

VI- AFD sous R

 Sur le graphique, on voit que l’axe 1 sépare bien les 3 groupes, en particulier le groupe 1 des deux autres groupes. Le pouvoir discriminant de l’axe 2 est moindre: >Lambda=diag(T(a$scaling)%*%B%*%a$scaling/T(a$scaling)%*%V%*%a$scaling) Lambda=0.93 0.72

 L’interprétation des facteurs discriminants peut se faire comme en ACP en calculant les coordonnées des variables sur les axes (corrélations r(Xj,Dk))

VI- AFD sous R

>D=d%*%a$scaling >cor(d,D) LD1 LD2 age -0.03673802 -0.9991592

revenu -0.13640214 -0.5627526

patrimoine -0.96159782 -0.1540505

emprunt -0.23596443 -0.4321157

L’axe 1 est un effet taille et isole les individus ayant des valeurs importantes des variables, en particulier à gros patrimoine. Ils s’opposent aux individus du groupe 1.

L’axe 2 est aussi un effet taille et isole les individus plus agés que les autres: on y trouve les individus du groupe 3, qui s’opposent à ceux des deux autres groupes.