You are on page 1of 45

Module C106

Analyse et fouille de donnes

Analyse en Composantes Principales (ACP)

Introduction Etude dans Rp Etude dans Rn Pratique de l'ACP Reconstitution du tableau des donnes Exercices

Grard-Michel Cochard cochard@u-picardie.fr

Ch3 - Analyse factorielle en composantes principales

1 - Introduction
Les statistiques fournissent gnralement leurs conclusions brutes sous forme de tableaux de donnes. Ces tableaux sont multidimensionnels et comportent de trs nombreuses donnes. Un regard sur de tels tableaux montre immdiatement la difficult d'en tirer des enseignements pertinents. L'analyse en composantes principales (ACP) a pour objet d'en tirer des tendances. Plus concrtement, l'ACP se donne pour objectif de "rduire" le nombre de donnes afin d'en faciliter l'interprtation. Dans une ACP, un tableau de donnes est du type "individus x variables" et se prsente sous forme d'une matrice rectangulaire n lignes et p colonnes :

Ceci conduit deux interprtations gomtriques possibles :

La matrice R peut tre analyse suivant les lignes qui reprsentent les individus ou suivant les colonnes qui reprsentent les variables. Un individu est reprsent par un point dans un espace p dimensions et on peut, dans cet espace Rp rechercher les ressemblances entre individus. Une variable est reprsente par un point dans un espace n dimansions et on peut rechercher dans cet espace Rn les correspondances entre variables.. Dans le premier cas, les individus correspondent n points (avec p coordonnes) dans un espace Rp. Entre les individus, on peut rechercher s'il y a des ressemblances. Dans le second cas, les variables correspondent p points (ou p vecteurs n composantes) dans un espace Rn. Entre les variables, on peut rechercher s'il y a des liaisons. Le problme de base est le suivant : le tableau contient nxp donnes; ce nombre peut tre trs grand et d'un tel tableau il est difficile de tirer des informations pertinentes, do lobjectif suivant : Chercher une collection de donnes peu importantes en nombre permettant de reconstituer (le mieux possible) le tableau R Supposons que lon ait pu trouver 2 vecteurs u et v tels que R = u vT , alors, avec peu d'lments on peut en engendrer beaucoup .

vecteur-colonne

vecteur-colonne

reconstitution du tableau R n composantes p composantes

Le tableau R np lments est reconstitu partir de n (lments de u) et p (lments de v) nombres : n + p -->np Malheureusement, il n'est pas possible de trouver u et v tels que R = uvT. Cependant il est possible de trouver u1 u2 . . . . . . . uq et v1

v2 . . . . . . . vq tels que R = u1 v1T+ u2v2T+ u3v3T + ............ + uqvqT + E o E est une erreur suppose ngligeable. R est alors reconstitu par q.(n +p) nombres. exemple 1 : n = 1000 individus et p = 100 variables : R possde 100 000 lments ; avec lapproximation q = 10, on rduit 11 000 lments Prcisons maintenant les notations que nous allons employer . L'tude doit porter sur la forme du nuage de points et non sur sa position par rapport lorigine. C'est pourquoi il est intressant de pratiquer un changement d'origine: nouvelle origine = centre de gravit du nuage

On peut aussi mettre les valeurs des variables " la mme chelle" en divisant chaque valeur par l'cart-type. On remplacera donc R par un nouveau tableau Y tel que

On dit que l'on travaille en composantes normes, ce qui veut dire que l'on utilise des variables centres et rduites. exemple : Le tableau suivant reprsente des notes obtenues par des lves dans diverses matires (l'exemple est emprunt F.G. Carpentier, universit de Brest ). Ce tableau nous servira d'exemple pour l'ensemble du chapitre. Nous notons qu'il contient 45 valeurs numriques (n = 9, p = 5).

Dterminons le tableau Y. Les calculs peuvent tre faits facilement avec un tableur.

soit

2 - Etude dans Rp
Notion d'axe factoriel En travaillant dsormais avec les coordonnes Yij , on a toujours un nuage de n points-individus. On recherche si les n points se situent dans un sous-espace vectoriel Rq de Rp (q p).

Rq est sous-tendu par q vecteurs ua orthogonaux dfinissant q axes. Chaque axe est dfini par q coordonnes, soit qp nombres. Chaque point du nuage est dfini dans Rq par q coordonnes, soit nq nombres. Donc au total, le nuage est dfini par nq + qp = (n + p)q nombres

Il y a plusieurs faons (une infinit en fait) de trouver un systme d'axes dans Rq. Nous choisirons les axes factoriels : ce sont les axes qui ajustent au mieux le nuage de points (et orthogonaux 2 2) . Ils sont dfinis par les vecteurs orthonorms u1 , u2 , ..................., uq

car u est unitaire

car u et u sont orthogonaux ( )

Recherche des axes factoriels Intressons-nous d'abord au premier axe factoriel F1 : il passe par lorigine et ajuste au mieux le nuage. Ceci signifie que la somme des carrs des distances des points F1 est minimale ou encore que la somme des carrs des projections sur F1 est maximale.

On cherche donc dterminer un vecteur u

tel que

soit maximum

avec

Pour la dtermination de

, effectuons les calculs suivants :

et

donc M = (Yu)T(Yu) = uTYTY u = uTCu o C est proportionnelle la matrice des corrlations. En effet
Cij = donc, en posant cij = cor(Ri, Rj), on a M = nuTcu o c reprsente la matrice des corrlations (matrice pxp). On dmontre que c possde p valeurs propres positives : on les numrote par ordre dcroissant : 1 > 2 > 3 > ... > p A chaque valeur propre correspond un vecteur propre u . Tous les vecteurs propres u sont orthogonaux. Rsultats mathmatiques (non dmontrs mais admis ici) :
q q

le 1er axe factoriel est dtermin par le vecteur propre u1 relatif la valeur propre 1 (la plus grande) le 2me axe factoriel est dtermin par le vecteur propre u2 relatif la valeur propre le 3me axe factoriel est dtermin par le vecteur propre u3 relatif la valeur propre etc........ 2 3

q q

En dfinitive, la recherche des axes factoriels se rsume la recherche des valeurs et vecteurs propres de la matrice des corrlations c. Notons une proprit intressante : la matrice c ne possde que des "1" sur sa diagonale et on sait que Trace(c) = somme des valeurs propres. On doit donc avoir

La valeur de la quantit

appele inertie du nuage par rapport l'axe dfini par le vecteur ua dtermine l'importance de l'axe dans la description du phnomne. On l'exprime usuellement en pourcentage. Dans les axes factoriels principaux, les coordonnes des points individus sont donns par les colonnes de la matrice YU o U est la matrice obtenue en juxtaposant les coordonnes des vecteurs u :

exemple : reprenons l'exemple des notes d'lves :

Calculons la matrice des corrlations :

Le calcul des valeurs propres et vecteurs propres peut s'oprer avec le logiciel Scilab : les valeurs propres sont, par ordre dcroissant (et arrondies deux dcimales) 1 = 2,86 2 = 1,15 3 = 0,98 4 = 0,01 5 = 0,00 On constatera que la somme vaut bien 5. Les inerties correspondantes aux axes factoriels principaux de 1 5 sont respectivement 57,20 %, 23,00 %, 19,60 %, 2,00 % et 0,00 %. Les trois premiers axes correspondent une inertie de 99,80 %. Autrement dit, les faits sont bien dcrits par ces trois axes ce qui signifie que l'on peut prendre q = 3.

Les vecteurs propres correspondants sont :

Il est intressant de voir la disposition des points par rapport aux axes factoriels (rappelons que ces axes doivent passer au mieux travers le nuage des points). Prenons par exemple, la projection du nuage sur le plan (u1, u2). Pour obtenir les coordonnes des points individus dans le plan considr, il faut effectuer le produit matriciel suivant :

Individus supplmentaires

Les individus supplmentaires sont ajouts aprs analyse. On ne recommence donc pas l'analyse mais on peut intgrer les nouveaux invidus en calculant leurs coordonnes rduites et en les introduisant dans les diagrammes. En particulier, on peut introduire des individus de "rfrence" ou illustratifs.

3 - Etude dans Rn
Dans Rn on considre un nuage de p points. Les axes factoriels, dont les vecteurs unitaires sont nots ici v, sont recherchs de manire analogue au procd dcrit pour Rp. On cherche rendre maximale la quantit M' = (Yv)T(Yv) = vTYYTv Pour cela, on diagonalise la matrice YYT qui est une matrice carre nxn. Les valeurs propres sont : 1 > 2 > 3 > ... > n. Les vecteurs propres associs sont : v1 v2 v3 ... vn . . Ils dfinissent les axes factoriels.

Relation entre Rn et Rp On se limite q min(n,p). Soit entier q. v est le vecteur propre de YYT associ la valeur propre : YYTv = v 1) Multiplions gauche par YT : YT(YYTv) = YT v ou (YTY)(YTv )= (YTv ) ou encore c(YTv) = (/n)(YTv) avec c, matrice des corrlations, ce qui montre que YTv est vecteur propre de c avec la valeur propre /n . Donc = n et YTv =k u o k est un coefficient de proportionnalit. Les vecteurs u et v sont unitaires, donc 1 = uu = (1/k 2)v v = (1/k 2)v(YYv) = (1/k 2)v( v) = ( /k 2)vv = /k 2 = n /k 2 YY d'o

et, par suite

ou

2) Partons de l'quation aux valeurs propres cu = u, soit YTYu = n u et multiplions gauche par Y : (YYT)(Y u ) = n (Yu ) ce qui montre que Yu est vecteur propre de YYT avec la valeur propre , donc Yu correspond un vecteur propre Yu = k' v et n = Les vecteurs u et v tant unitaires, 1= v T v = (1/k' 2) u TYTY u = (1/k' 2) u T(YTY u ) = (n/k' 2) u Tc u = (n /k' 2)uTu = n / k' 2 d'o et, par suite Y(YTY u) = n Yu ou

ou

ce qui montre que les axes factoriels de Rp et Rn ( q) sont relis linairement.

exemple : reprenons l'exemple des notes des lves. Nous avions obtenu, pour l'tude dans l'espace des individus :

1 = 2,86

2 = 1,15

3 = 0,98

4 = 0,01

5 = 0,00

A l'aide des relations prcdentes, on peut dduire les valeurs propres : 1 = 25,74 2 = 10,35 3 = 8,82 4 = 0,09 5 = 0,00 (arrondies 2 dcimales)

ainsi que les vecteurs propres v :

Les coordonnes des variables dans les axes factoriels dfinis par les vecteurs v sont donnes par

En calculant YTv , on retrouve ces coordonnes :

Nous savons d'autre part que

ce qui fournit le moyen de calculer zj partir de u :

exemple : reprenons le prcdent exemple et reprsentons graphiquement les coordonnes des points variables dans le plan (v1, v2).

Cercle des corrlations Les coordonnes centres et rduites possdent une proprit intressante : Tout point variable de Rn se trouve sur une hypersphre de rayon donn. Pour expliquer cette proprit, il suffit de calculer la "longueur" du "segment Mj o Mj est un point variable j de coordonnes (Yj1, Yj2, ... Yjn). L'expression euclienne de cette longueur (ou distance euclidienne) est simplement (dfinition par le carr) :

ce qui signifie que tous les points Mj sont sur une hypersphre de rayon n.

La dfinition de la distance est toutefois diffrente ici. La distance entre les deux points et Mj de l'espace Rn est dfinie par son carr

o pi est le poids statistique affect chaque individu. Nous avions convenu de prendre des poids statistiques identiques, soit pi = 1/n de sorte que d2(, Mj) = dE2(,Mj)/n = 1 Donc en prenant cette dfinition de la distance (c'est dire en divisant chaque coordonne Yij par la racine carre de n), tous les points se trouvent sur une hypersphre de rayon 1. En projection sur un plan passant par , les projections des points variables seront donc l'intrieur d'un cercle de rayon 1. Du fait de la dfinition de la distance, ce cercle est appele cercle des corrlations. exemple : reprenons l'exemple prcdent (en divisant les coordonnes par racine carre de 9, soit 3 :

4 - Pratique de l'ACP

Le logiciel Tanagra
Tanagra est un logiciel libre, ouvert et gratuit propos par Ricco RAKOTOMALALA. Il est trs simple utiliser et bien qu'il exite quantit d'autres logiciels, nous prendrons celui-ci comme outil d'analyse. On trouve Tanagra l'adresse suivante : http://eric.univ-lyon2.fr/~ricco/ tanagra/fr/tanagra.html Tanagra peut fonctionner avec le tableur Excel ce qui est assez pratique car, en gnral, les donnes initiales sont dans un tableur. Bien entendu, il faut d'abord installer Tanagra ce qui se fait de manire trs usuelles : tlcharger le logiciel en cliquant sur tlchargement puis sur setup (le logiciel setup_tanagra.exe est alors charg sur votre ordinateur ; le plavcer dans un rpertoire adquat, par exemple C:\tanagra ) puis excuter le programme setup_tanagra.exe. Le logiciel Tanagra s'installe alors automatiquement. On supposera que l'on prend les options par dfaut ce qui donnera lieu un rpertoire tanagra dans C:\Program Files. On vrifiera que dans ce rpertoire, on trouve bien la macro tanagra.xla. Maintenant, dans Excel, il faut installer la macro tanagra.xla ce qui se fait avec le menu "Outils \macro complmentaires". Avec le bouton "Parcourir", il suffit de pointer sur la macro tanagra. xla du rpertoire C:\Program Files\tanagra.La nmacro tant installe, on doit voir un menu Tnagra dans Excel. On pourra se rfrer http://eric.univ-lyon2.fr/~ricco/tanagra/fichiers/ fr_Tanagra_Excel_AddIn.pdf Nous allons dans la suite, reprendre l'exemple des sections prcdentes, celui des notes obtenues par des lves. On commence par lancer Tanagra partir du tableur Excel (notre fichier s'appelle notation.xls). On prendra soin de slectionner auparavant la plage de donnes.

En cliquant sur Execute Tanagra, on lance Tanagra sans problme.

La fentre de droite donne le rsultat du chargement des donnes :

Nous voyons en effet que notre tableau de donnes a bien t charg. Pour obtenir quelques rsultats statistiques, il faut utiliser le composant Define status . reprsent par l'icne

Nous allons dfinir les variables que l'on souhaite traiter et que l'on mettra dans la rubrique Input.

Puis nous visualisons les donnes en se plaant sur Define status 1 et en cliquant sur le bouton droit de la souris sur View.

On constate que notre choix a bien t pris en considration :

On se place dans le menu "Statistics" (fentre du bas) et on fait glisser l'icne "Univariate continuous stat" (nos variables sont continues) sur Define status 1 :

On peut obtenir des rsultats plus dtaills en utilisant l'icne "More Univariate cont stat" :

Passons maintenant l'analyse factorielle en composantes principales : choisissons le menu "Factorial analysis" dans la fentre du bas et faisons glisser l'icne "Principal Component Analysis" sur Define status 1. Dfinissons les paramtres de l'ACP (bouton droit, menu "Parameters"). On choisira 3 axes et le calcul de Cos2 et de CTR (nous expliquerons ces quantits plus loin) :

Puis nous visualisons les rsultats des calculs (bouton droit, menu "View") :

Nous obtenons, dans la fentre de droite plusieurs rsultats :

Dans ce premier tableau, on obtient les valeurs propres de la matrice des corrlations ainsi que l'inertie relative chacun des axes factoriels.L'histogramme n'est trac que pour les trois premiers axes. Les deux autres tableaux seront comme,ts plus loin.

Les rsultats intermdiaires du calcul peuvent tre visualiss avec le menu "Data visualization" (fentre du bas) et l'icne "View Data Set" ( faire glisser sur "Principal Component Analysis".

Nous retrouvons notre tableau de donnes de dpart, puis, pour chacun des trois axes factoriels, les quantits PCA_1_Axis_i qui reprsentent les coordonnes des points infividus dans le rfrentiel des trois premiers axes factoriels.

les quantits PCA_1_CTR_i (voir plus loin)

les quantits PCA_1_COS2_i (voir plus loin)

Notons que l'on peut exporter toutes ces donnes vers un tableur en utilisant le menu "Component/Copy rsults">. Cette commande permet de copier en mmoire les rsultats de la fentre de droite. Il suffit ensuite de les copier dans une feuille de calcul.

Passons maintenant aux reprsentations graphiques. Tout d'abord, reprsentons les individus dans les trois premiers axes factoriels pris deux deux. Pour cel, on choisit le menu "Data visualization" dans la fentre du bas et on fait glisser l'icne "Scatterplot with label" sur Principal Component Analysis :

Dans la lgende, on choisit "Attribute label" et on prend les axes (PCA_1_Axis1, PCA_1_Axis_2), puis (PCA_1_Axis1, PCA_1_Axis_3), puis (PCA_1_Axis_2, PCA_1_Axis_3) :

On retrouve (au signe prs) les rsultats obtenus " la main". On notera que d'autres reprsentations graphiques sont galement possibles ce stade (avec les variables, PCA_1_CTR_i, PCA_1_COS2_i). Passons maintenant au cercle des corrlations. Nous le tracerons dans le plan des deux premiers axes factoriels. Pour cel, nous slectionnons "Principal Component analysis" et nous ce qui donne "Define status 2" avec lequel nous executons "Define status" avec l'icne dfinissons en Input les variables prcdentes et en Target les axes PCA_1_Axis_1 et PCA_1_Axis_2 :

On fait ensuite glisser l'icne "Data visualization/Correlation scatterplot" sur Define status 2. On obtient avec View :

rsultat analogue (au signe prs) de celui obtenu dans la session prcdente.

Les aides l'analyse


Qualit de la reprsentation d'un individu Dans un plan dfini par deux axes factoriels et , un point individu se projette en P(i) dont les coordonnes sont (Yu)i et (Yu)i d'aprs les rsultats des se rsultats des sessions prcdentes

. La proximit de l'individu avec le plan (, ) est mesure par le carr du cosinus que fait le vecteur Wi avec sa projection WP(i). Plus le point i est proche du plan (, ), plus le carr du cosinus est proche de 1.

Mais

et donc

Les cosinus carrs pour chaque axe sont donns dans Tanagra par PCA_1_COS2_i :

Ainsi, pour le plan (1,2), les qualits de reprsentation des individus sont donns dans le tableau suivant :

Nous pouvons ainsi constater que Evelyne est trs loigne du plan (1,2) tandis qu'une proximit peu prs quivalente du plan (1,2) des autres individus est galement constate. Contribution d'un individu l'inertie d'un axe factoriel Elle est dfinie par le rapport

Il rsulte de la dfinition prcdente que la somme de toutes les contributions des individus l'inertie d'un axe est gale 1 :

Tanagra nous fournit le tableau de ces contributions pour chaque axe :

Il est noter que ce tableau fait figurer les CTR en pourcentages. La somme fait donc 100 (et non 1). Selon la dfinition mcanique de l'inertie I = md2 (ici m = 1/n), o d est la distance d'un point l'axe, on peut constater que les contributions importantes sont relatives des individus loigns de l'axe :
q q q

Monique, Jean et Didier sont donc les plus contributifs l'inertie de l'axe 1. Pierre et Evelyne bsont les plus contributifs pour l'axe 2. Evelyne est la plus contributrice pour l'axe 3.

Quid des variables La situation est analogue celle des individus. On peut galement calculer le cos2 et le CTR dfinis de manire analogue.

5 - Reconstitution des donnes


Notre but initial, ne l'oublions pas, tait de remplacer un GRAND tableau de donnes par un tableau plus petit permettant de reconstituer au mieux les donnes initiales. L'ACP ayant t effectue, on dispose donc
q q q

de la matrice Y des donnes centres rduites des vecteurs propres et valeurs propres de la matrice des corrlations : u et ( = 1,...,p) du tableau des coordonnes des points individus

A partir de la relation

,
post-multiplions par uT :

On fait l'approximation suivante : seuls les q premiers axes factoriels tels que

soit notable (80% par exemple)

sont pris en considration. On est conduit l'approximation

avec

Yu

u T q vecteurs p composantes

q vecteurs n composantes

Donc le tableau Y constitu de np nombres est (presque) reconstitu avec q(n+p) nombres.

exemple : reprenons notre exemple standard. En se limitant aux trois premiers axes (q = 3), nous avons :

Les vecteurs propres (pour les trois premiers axes) sont :

et les valeurs propres associes sont 1 = 2,86 Reconstituons le tableau :

2 = 1,17

3 = 0,98

et on obtient

qui reprsente une bonne approximation du tableau Y .

Module C106 : Analyse et fouille des donnes

Analyse en composantes principales (ACP)

Exercices

auteurs : Annie Morin, Miage Rennes, Grard-Michel Cochard, Miage Amiens Date de la dernire modification : 7 octobre 2007

Exercice 1
Trois tableaux de matres ont t nots de 0 10 par six spectateurs. Les notes attribues sont dans le tableau de donnes suivant (tableau transpos) :

On dsire raliser une analyse en composantes principales norme de ce tableau de notes. On donne les deux plus grandes valeurs propres - et les vecteurs propres unitaires associs - de la matrice des corrlations :

1. Donnez les pourcentages d'inertie explique par chacun des trois axes factoriels. 2. Calculez les coefficients de corrlation linaire entre chacune des trois variables et chacune des deux premires composantes principales. Reprsentez le cercle des corrlations. 3. Calculez et prsentez dans un tableau (en utilisant ventuellement le tableur Excel) :
q

le tableau centr rduit partir duquel on effectue l'ACP,

q q q

les deux premiers facteurs, les valeurs des contributions des spectateurs aux deux premiers axes factoriels, les valeurs des cosinus carrs des spectateurs sur les deux premiers axes factoriels.

4. Calculez les coordonnes sur les deux premiers axes factoriels dun nouveau spectateur qui a communiqu ses notes aprs la ralisation de lanalyse : 8 pour le tableau 1, 6 pour le tableau 2 et 5 pour le tableau 3. Quelle est sa position dans le premier plan factoriel ? 5. Peut-on raliser une ACP non norme de ce tableau ? (justifiez votre rponse)

Exercice 2
Le tableau ci-dessous donne les rsultats obtenus partir de 10 essais de laboratoire concernant la charge de rupture y d'un acier en fonction de sa teneur x en carbone :
teneur en carbone x pour 10000 72 60 68 66 64 62 64 70 62 74 charge de rupture y en kg 90 70 72 78 75 75 80 85 70 100

n essai 1 2 3 4 5 6 7 8 9 10

Etudier ce tableau avec les mthode de l'analyse factorielle en composantes principales. 5) On peut effectuer une analyse factorielle non norme dans le cas de cet exemple car les valeurs des variables sont de mme "unit".

Solution de l'exercice 1
1) Les pourcentages d'inertie sont 100*1,65/3 = 54,87% pour la premier axe factoriel et 100*1/3 = 33,33% pour le deuxime axe factoriel. Donc dans le plan dfini par les deux premiers axes factoriels, on a une inertie de 88,20 % ce qui permet une bonne approximation en projection du nuage de points.

2) A partir des vecteurs propres, on peut calculer les composantes des vecteurs variables dans les axes factoriels :

En se limitant aux deux premiers axes factoriels, on obtient la reprsentation suivante avec le cercle des corrlations :

Les corrlations de chaque variable avec les axes factoriels sont donnes dans le tableau ci-dessus. A partir de ce tableau, on peut aussi calculer lers corrlations entre les variables : cor(T1,T2) = 0,337*0,842 - 0,929*0,371 = -0,061 cor(T1,T3) = 0,337*0,907 - 0,929*0 = 0,306 cor(T2,T3) = 0,842*0,907 + 0,371*0 = 0,764 On constate que seules les varaibles T2 et T3 prsentent une certaine corrlation. 3) Effectuons avec un tableur la suite d'oprations classiques :

4) individu supplmentaire (8, 6, 5)

(individu supplmentaire en vert)

Solution de l'exercice 2

Calcul de la matrice des corrlations :

Le calcul des valeurs et des vecteurs propres de C est facile ici. La matrice C-1 est :
1- 0,876 0,876 1-

Le dterminant de cette matrice est (1 - )2 - 0,767 et l'quation rsoudre est (1 - )2 = 0,767 ce qui conduit aux solutions 1 = 1,876 2 = 0,124. ( 93,8%) . :

puis les coordonnes des points individus dans les axes factoriels :

Les composantes des vecteurs variables dans les axes factoriels sont :

On observe bien la forte corrlation entre les deux variables. Le tableau Y peut tre reconstitu partir des coordonnes des points individus YU et du vecteur UT :