Module C106
Analyse et fouille de données
Analyse en Composantes Principales (ACP)
Introduction Etude dans Rp Etude dans Rn Pratique de l'ACP Reconstitution du tableau des données Exercices
Gérard-Michel Cochard
[email protected]
Ch3 - Analyse factorielle en composantes principales
1 - Introduction Les statistiques fournissent généralement leurs conclusions brutes sous forme de tableaux de données. Ces tableaux sont multidimensionnels et comportent de très nombreuses données. Un regard sur de tels tableaux montre immédiatement la difficulté d'en tirer des enseignements pertinents. L'analyse en composantes principales (ACP) a pour objet d'en tirer des tendances. Plus concrètement, l'ACP se donne pour objectif de "réduire" le nombre de données afin d'en faciliter l'interprétation. Dans une ACP, un tableau de données est du type "individus x variables" et se présente sous forme d'une matrice rectangulaire à n lignes et p colonnes :
Ceci conduit à deux interprétations géométriques possibles :
La matrice R peut être analysée suivant les lignes qui q ui représentent les individus ou suivant les colonnes qui représentent les variables. Un individu est représenté par un point dans un espace à p dimensions et on peut, dans cet espace Rp rechercher les ressemblances entre individus. Une variable est représentée 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 p oints (avec p coordonnées) 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 problème de base est le suivant su ivant : le tableau contient nxp données; ce nombre pe ut être très grand et d'un tel t el tableau il est difficile de tirer des informations pertinentes, d’où l’objectif suivant : Chercher une collection de données peu importantes en nombre permettant de reconstituer (le mieux possible) le tableau R Supposons que l’on ait pu trouver 2 vecteurs u et v tels que R = u v T , alors, avec peu d'éléments on peut en engendrer beaucoup .
Ch3 - Analyse factorielle en composantes principales
1 - Introduction Les statistiques fournissent généralement leurs conclusions brutes sous forme de tableaux de données. Ces tableaux sont multidimensionnels et comportent de très nombreuses données. Un regard sur de tels tableaux montre immédiatement la difficulté d'en tirer des enseignements pertinents. L'analyse en composantes principales (ACP) a pour objet d'en tirer des tendances. Plus concrètement, l'ACP se donne pour objectif de "réduire" le nombre de données afin d'en faciliter l'interprétation. Dans une ACP, un tableau de données est du type "individus x variables" et se présente sous forme d'une matrice rectangulaire à n lignes et p colonnes :
Ceci conduit à deux interprétations géométriques possibles :
La matrice R peut être analysée suivant les lignes qui q ui représentent les individus ou suivant les colonnes qui représentent les variables. Un individu est représenté par un point dans un espace à p dimensions et on peut, dans cet espace Rp rechercher les ressemblances entre individus. Une variable est représentée 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 p oints (avec p coordonnées) 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 problème de base est le suivant su ivant : le tableau contient nxp données; ce nombre pe ut être très grand et d'un tel t el tableau il est difficile de tirer des informations pertinentes, d’où l’objectif suivant : Chercher une collection de données peu importantes en nombre permettant de reconstituer (le mieux possible) le tableau R Supposons que l’on ait pu trouver 2 vecteurs u et v tels que R = u v T , alors, avec peu d'éléments on peut en engendrer beaucoup .
La matrice R peut être analysée suivant les lignes qui q ui représentent les individus ou suivant les colonnes qui représentent les variables. Un individu est représenté par un point dans un espace à p dimensions et on peut, dans cet espace Rp rechercher les ressemblances entre individus. Une variable est représentée 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 p oints (avec p coordonnées) 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 problème de base est le suivant su ivant : le tableau contient nxp données; ce nombre pe ut être très grand et d'un tel t el tableau il est difficile de tirer des informations pertinentes, d’où l’objectif suivant : Chercher une collection de données peu importantes en nombre permettant de reconstituer (le mieux possible) le tableau R Supposons que l’on ait pu trouver 2 vecteurs u et v tels que R = u v T , alors, avec peu d'éléments on peut en engendrer beaucoup .
vecteur-colonne
vecteur-colonne
reconstitution du tableau R à n composantes à p composantes
Le tableau R à np éléments est reconstitué à partir de n (éléments de u) et p (éléments de v ) nombres : n + p -->np Malheureusement, il n'est pas possible de trouver u et v tels que R = uv T . Cependant il est possible de trouver u1 u2 . . . . . . . uq et v 1 v 2 . . . . . . . v q tels que R = u1 v 1T + u2v 2T + u3v 3T + ............ + uqv qT + E où E est une erreur supposée négligeable. R est alors reconstitué par q.(n +p) nombres. p ossède 100 000 éléments ; avec l’approximation q = 10, on réduit à 11 000 éléments exemple 1 : n = 1000 individus et p = 100 variables : R possède Précisons 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 à l’origine. C'est pourquoi il est intéressant de pratiquer un changement d'origine: nouvelle origine = centre de gravité du nuage
vecteur-colonne
vecteur-colonne
reconstitution du tableau R à n composantes à p composantes
Le tableau R à np éléments est reconstitué à partir de n (éléments de u) et p (éléments de v ) nombres : n + p -->np Malheureusement, il n'est pas possible de trouver u et v tels que R = uv T . Cependant il est possible de trouver u1 u2 . . . . . . . uq et v 1 v 2 . . . . . . . v q tels que R = u1 v 1T + u2v 2T + u3v 3T + ............ + uqv qT + E où E est une erreur supposée négligeable. R est alors reconstitué par q.(n +p) nombres. p ossède 100 000 éléments ; avec l’approximation q = 10, on réduit à 11 000 éléments exemple 1 : n = 1000 individus et p = 100 variables : R possède Précisons 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 à l’origine. C'est pourquoi il est intéressant de pratiquer un changement d'origine: nouvelle origine = centre de gravité du nuage
On peut aussi mettre les valeurs des variables "à la même é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 normées, ce q ui veut dire que l'on utilise des variables centrées et réduites. exemple : Le tableau suivant représente des notes obtenues par des élèves dans diverses matières (l'exemple est emprunté à F.G. Carpentier, université de Brest ). Ce tableau nous s ervira d'exemple pour l'ensemble du chapitre. Nous notons qu'il contient 45 valeurs numériques (n = 9, p = 5).
Déterminons le tableau Y. Les calculs peuvent être faits facilement avec un tableur.
On peut aussi mettre les valeurs des variables "à la même é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 normées, ce q ui veut dire que l'on utilise des variables centrées et réduites. exemple : Le tableau suivant représente des notes obtenues par des élèves dans diverses matières (l'exemple est emprunté à F.G. Carpentier, université de Brest ). Ce tableau nous s ervira d'exemple pour l'ensemble du chapitre. Nous notons qu'il contient 45 valeurs numériques (n = 9, p = 5).
Déterminons le tableau Y. Les calculs peuvent être faits facilement avec un tableur.
soit
soit
2 - Etude dans
Rp
Notion d'axe factoriel En travaillant désormais avec les coordonnées 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 définissant q axes. Chaque axe est défini par q coordonnées, soit qp nombres. Chaque point du nuage est défini dans Rq par q coordonnées, soit nq nombres. Donc au total, le nuage est défini par nq + qp = (n + p)q nombres
Il y a plusieurs façons (une infinité en fait) de trouver un système 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 définis par les vecteurs orthonormés u1 , u2 , ..................., uq
car u est unitaire α
car u et u sont orthogonaux (α ≠ β) α
β
2 - Etude dans
Rp
Notion d'axe factoriel En travaillant désormais avec les coordonnées 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 définissant q axes. Chaque axe est défini par q coordonnées, soit qp nombres. Chaque point du nuage est défini dans Rq par q coordonnées, soit nq nombres. Donc au total, le nuage est défini par nq + qp = (n + p)q nombres
Il y a plusieurs façons (une infinité en fait) de trouver un système 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 définis par les vecteurs orthonormés u1 , u2 , ..................., uq
car u est unitaire α
car u et u sont orthogonaux (α ≠ β) α
β
Recherche des axes factoriels Intéressons-nous d'abord au premier axe factoriel F 1 : il passe par l’origine Ω et ajuste au mieux le nuage. Ceci signifie que la somme des carrés des distances des points à F1 est minimale ou encore que la somme des carrés des projections sur F 1 est maximale.
On cherche donc à déterminer un vecteur u
tel que
soit maximum
avec
Pour la détermination de
, effectuons les calculs suivants :
Recherche des axes factoriels Intéressons-nous d'abord au premier axe factoriel F 1 : il passe par l’origine Ω et ajuste au mieux le nuage. Ceci signifie que la somme des carrés des distances des points à F1 est minimale ou encore que la somme des carrés des projections sur F 1 est maximale.
On cherche donc à déterminer un vecteur u
tel que
soit maximum
avec
Pour la détermination de
, effectuons les calculs suivants :
et
donc M = (Yu)T (Yu) = uT YT Y u = uT Cu où C est proportionnelle à la matrice des corrélations. En effet Cij = donc, en posant cij = cor(Ri, R j), on a M = nuT cu où c représente la matrice des corrélations (matrice pxp). On démontre que c possède p valeurs propres λ positives : on les numérote par ordre décroissant : α
λ1 > λ2 > λ3 > ... > λp
A chaque valeur propre λα correspond un vecteur propre u . Tous les vecteurs propres u sont orthogonaux. α
α
Résultats mathématiques (non démontrés mais admis ici) : q
q
q
q
le 1er axe factoriel est déterminé par le vecteur propre u 1 relatif à la valeur propre λ1 (la plus grande) le 2ème axe factoriel est déterminé par le vecteur propre u 2 relatif à la valeur propre λ 2 le 3ème axe factoriel est déterminé par le vecteur propre u 3 relatif à la valeur propre λ 3 etc........
En définitive, la recherche des axes factoriels se résume à la recherche des valeurs et vecteurs propres de la matrice des corrélations c. Notons une propriété intéressante : la matrice c ne possède que des "1" sur sa diagonale et on sait que Trace(c) = somme des valeurs propres. On doit donc avoir
et
donc M = (Yu)T (Yu) = uT YT Y u = uT Cu où C est proportionnelle à la matrice des corrélations. En effet Cij = donc, en posant cij = cor(Ri, R j), on a M = nuT cu où c représente la matrice des corrélations (matrice pxp). On démontre que c possède p valeurs propres λ positives : on les numérote par ordre décroissant : α
λ1 > λ2 > λ3 > ... > λp
A chaque valeur propre λα correspond un vecteur propre u . Tous les vecteurs propres u sont orthogonaux. α
α
Résultats mathématiques (non démontrés mais admis ici) : q
q
q
q
le 1er axe factoriel est déterminé par le vecteur propre u 1 relatif à la valeur propre λ1 (la plus grande) le 2ème axe factoriel est déterminé par le vecteur propre u 2 relatif à la valeur propre λ 2 le 3ème axe factoriel est déterminé par le vecteur propre u 3 relatif à la valeur propre λ 3 etc........
En définitive, la recherche des axes factoriels se résume à la recherche des valeurs et vecteurs propres de la matrice des corrélations c. Notons une propriété intéressante : la matrice c ne possède 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é
appelée inertie du nuage par rapport à l'axe défini par le vecteur ua détermine l'importance de l'axe dans la description du phénomène. On l'exprime usuellement en pourcentage. Dans les axes factoriels principaux, les coordonnées des points individus sont donnés par les colonnes de la matrice YU où U est la matrice obtenue en juxtaposant les coordonnées des vecteurs uα :
La valeur de la quantité
appelée inertie du nuage par rapport à l'axe défini par le vecteur ua détermine l'importance de l'axe dans la description du phénomène. On l'exprime usuellement en pourcentage. Dans les axes factoriels principaux, les coordonnées des points individus sont donnés par les colonnes de la matrice YU où U est la matrice obtenue en juxtaposant les coordonnées des vecteurs uα :
exemple : reprenons l'exemple des notes d'élèves :
Calculons la matrice des corrélations :
Le calcul des valeurs propres et vecteurs propres peut s'opérer avec le logiciel Scilab : les valeurs propres sont, par ordre décroissant (et arrondies à deux décimales) λ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 décrits par ces trois axes ce qui signifie que l'on peut prendre q = 3.
exemple : reprenons l'exemple des notes d'élèves :
Calculons la matrice des corrélations :
Le calcul des valeurs propres et vecteurs propres peut s'opérer avec le logiciel Scilab : les valeurs propres sont, par ordre décroissant (et arrondies à deux décimales) λ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 décrits par ces trois axes ce qui signifie que l'on peut prendre q = 3.
Les vecteurs propres correspondants sont :
Il est intéressant 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 coordonnées des points individus dans le plan considéré, il faut effectuer le produit matriciel suivant :
Individus supplémentaires
Les vecteurs propres correspondants sont :
Il est intéressant 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 coordonnées des points individus dans le plan considéré, il faut effectuer le produit matriciel suivant :
Individus supplémentaires
Les individus supplémentaires sont ajoutés après analyse. On ne recommence donc pas l'analyse mais on peut intégrer les nouveaux invidus en calculant leurs coordonnées réduites et en les introduisant dans les diagrammes. En particulier, on peut introduire des individus de "référence" ou illustratifs.
Les individus supplémentaires sont ajoutés après analyse. On ne recommence donc pas l'analyse mais on peut intégrer les nouveaux invidus en calculant leurs coordonnées réduites et en les introduisant dans les diagrammes. En particulier, on peut introduire des individus de "référence" ou illustratifs.
3 - Etude dans
Rn
Dans Rn on considère un nuage de p points. Les axes factoriels, dont les vecteurs unitaires sont notés ici v α, sont recherchés de manière analogue au procédé décrit pour Rp. On cherche à rendre maximale la quantité M' = (Yv)T (Yv) = v T YYT v Pour cela, on diagonalise la matrice YYT qui est une matrice carrée nxn. Les valeurs propres sont : µ1 > µ2 > µ3 > ... > µn. Les vecteurs propres associés sont : v 1 v 2 v 3 ... v n . . Ils définissent 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 µα : α
YYT v α =µα vα 1) Multiplions à gauche par YT : YT( YYT v α) = µ YT v α
α
ou
(YT Y)( YT v )=µ (YT v ) ou encore c( YT v α) = (µα/n)( YT v α) avec c, α
α
α
matrice des corrélations, ce qui montre que YT v est vecteur propre de c avec la valeur propre µ /n . α
α
Donc µ = nλ et YT v =k u où k est un coefficient de proportionnalité. α
α
α
α α
α
Les vecteurs u et v α sont unitaires, donc α
1=
Τ
= (1/k 2)
Τ
Τ
= (1/k 2)
Τ YY ( Τ
) = (1/k 2)
Τ(µ
)=(
/k 2)
Τ
/k 2
λ /k
2
3 - Etude dans
Rn
Dans Rn on considère un nuage de p points. Les axes factoriels, dont les vecteurs unitaires sont notés ici v α, sont recherchés de manière analogue au procédé décrit pour Rp. On cherche à rendre maximale la quantité M' = (Yv)T (Yv) = v T YYT v Pour cela, on diagonalise la matrice YYT qui est une matrice carrée nxn. Les valeurs propres sont : µ1 > µ2 > µ3 > ... > µn. Les vecteurs propres associés sont : v 1 v 2 v 3 ... v n . . Ils définissent 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 µα : α
YYT v α =µα vα 1) Multiplions à gauche par YT : YT( YYT v α) = µ YT v α
ou
α
(YT Y)( YT v )=µ (YT v ) ou encore c( YT v α) = (µα/n)( YT v α) avec c, α
α
α
matrice des corrélations, ce qui montre que YT v est vecteur propre de c avec la valeur propre µ /n . α
α
Donc µ = nλ et YT v =k u où k est un coefficient de proportionnalité. α
α
α
α α
α
Les vecteurs u et v α sont unitaires, donc α
1 = uαΤuα = (1/k 2)v αΤ Τv α = (1/k 2)v αΤ YY ( Τv α) = (1/k 2)v αΤ(µα vα) = ( µ α/k 2)v αΤvα = µ α/k 2 = nλ /k 2 α α α α α α α YY d'où
et, par suite
ou
2) Partons de l'équation aux valeurs propres cuα = λ uα, soit YT Yuα = nλ uα et multiplions à gauche par Y : α
Y( YT Y uα) = nλ Yu α
α
ou
α
(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 T YT Y u = (1/k' 2) u T (YT Y u ) = (n/k' 2) u T c u = (nλ /k' 2)uαT uα = nλ / k' 2 α
d'où
α
α
α
α
α
α
α
α
α
α
et, par suite
ou
ce qui montre que les axes factoriels de Rp et
Rn
(α ≤ q) sont reliés linéairement.
α
α
α
α
exemple : reprenons l'exemple des notes des élèves. 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 précédentes, on peut déduire les valeurs propres µα : µ1 = 25,74
µ2 = 10,35
µ3 = 8,82
µ4 = 0,09
µ5 = 0,00
(arrondies à 2 décimales)
ainsi que les vecteurs propres v α :
Les coordonnées des variables dans les axes factoriels définis par les vecteurs v α sont données par
En calculant YT v , on retrouve ces coordonnées : α
Nous savons d'autre part que
ce qui fournit le moyen de calculer z j à partir de u : α
α
exemple : reprenons le précédent exemple et représentons graphiquement les coordonnées des points variables dans le plan (v 1, v 2).
Cercle des corrélations Les coordonnées centrées et réduites possèdent une propriété intéressante : Tout point variable de Rn se trouve sur une hypersphère de rayon donné. Pour expliquer cette propriété, il suffit de calculer la "longueur" du "segment ΩMj où Mj est un point variable j de coordonnées (Y j1, Y j2, ... Y jn). L'expression euclienne de cette longueur (ou distance euclidienne) est simplement (définition par le carré) :
ce qui signifie que tous les points M j sont sur une hypersphère de rayon n.
La définition de la distance est toutefois différente ici. La distance entre les deux points Ω et M j de l'espace Rn est définie 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(Ω, M j) = dE2(Ω,M j)/n = 1 Donc en prenant cette définition de la distance (c'est à dire en divisant chaque coordonnée Yij par la racine carrée de n), tous les points se trouvent sur une hypersphère de rayon 1. En projection sur un plan passant par Ω, les projections des points variables seront donc à l'intérieur d'un cercle de rayon 1. Du fait de la définition de la distance, ce cercle est appelée cercle des corrélations. exemple : reprenons l'exemple précédent (en divisant les coordonnées par racine carrée 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 très 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 général, les données initiales sont dans un tableur. Bien entendu, il faut d'abord installer Tanagra ce qui se fait de manière très usuelles : télécharger le logiciel en cliquant sur téléchargement puis sur setup (le logiciel setup_tanagra.exe est alors chargé sur votre ordinateur ; le plavcer dans un répertoire adéquat, par exemple C:\tanagra ) puis exécuter le programme setup_tanagra.exe. Le logiciel Tanagra s'installe alors automatiquement. On supposera que l'on prend les options par défaut ce qui donnera lieu à un répertoire tanagra dans C:\Program Files. On vérifiera que dans ce répertoire, 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 complémentaires". Avec le bouton "Parcourir", il suffit de pointer sur la macro tanagra. xla du répertoire C:\Program Files\tanagra.La nmacro étant installée, on doit voir un menu Tnagra dans Excel. On pourra se référer à http://eric.univ-lyon2.fr/~ricco/tanagra/fichiers/ fr_Tanagra_Excel_AddIn.pdf Nous allons dans la suite, reprendre l'exemple des sections précédentes, celui des notes obtenues par des élèves. On commence par lancer Tanagra à partir du tableur Excel (notre fichier s'appelle notation.xls). On prendra soin de sélectionner auparavant la plage de données.
En cliquant sur Execute Tanagra, on lance Tanagra sans problème.
La fenêtre de droite donne le résultat du chargement des données :
Nous voyons en effet que notre tableau de données a bien été chargé. Pour obtenir quelques résultats statistiques, il faut utiliser le composant Define status représenté par l'icône .
Nous allons définir les variables que l'on souhaite traiter et que l'on mettra dans la rubrique Input.
Puis nous visualisons les données en se plaçant 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 considération :
On se place dans le menu "Statistics" (fenêtre du bas) et on fait glisser l'icône "Univariate continuous stat" (nos variables sont continues) sur Define status 1 :
On peut obtenir des résultats plus détaillés en utilisant l'icône "More Univariate cont stat" :
Passons maintenant à l'analyse factorielle en composantes principales : choisissons le menu "Factorial analysis" dans la fenêtre du bas et faisons glisser l'icône "Principal Component Analysis" sur Define status 1. Définissons les paramètres de l'ACP (bouton droit, menu "Parameters"). On choisira 3 axes et le calcul de Cos2 et de CTR (nous expliquerons ces quantités plus loin) :
Puis nous visualisons les résultats des calculs (bouton droit, menu "View") :
Nous obtenons, dans la fenêtre de droite plusieurs résultats :
Dans ce premier tableau, on obtient les valeurs propres de la matrice des corrélations 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,tés plus loin.
Les résultats intermédiaires du calcul peuvent être visualisés avec le menu "Data visualization" (fenêtre du bas) et l'icône "View Data Set" (à faire glisser sur "Principal Component Analysis".
Nous retrouvons notre tableau de données de départ, puis, pour chacun des trois axes factoriels, les quantités PCA_1_Axis_i qui représentent les coordonnées des points infividus dans le référentiel des trois premiers axes factoriels.
les quantités PCA_1_CTR_i (voir plus loin)
les quantités PCA_1_COS2_i (voir plus loin)
Notons que l'on peut exporter toutes ces données vers un tableur en utilisant le menu "Component/Copy résults">. Cette commande permet de copier en mémoire les résultats de la fenêtre de droite. Il suffit ensuite de les copier dans une feuille de calcul.
Passons maintenant aux représentations graphiques. Tout d'abord, représentons les individus dans les trois premiers axes factoriels pris deux à deux. Pour celà, on choisit le menu "Data visualization" dans la fenêtre du bas et on fait glisser l'icône "Scatterplot with label" sur Principal Component Analysis :
Dans la légende, 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 près) les résultats obtenus "à la main". On notera que d'autres représentations graphiques sont également possibles à ce stade (avec les variables, PCA_1_CTR_i, PCA_1_COS2_i). Passons maintenant au cercle des corrélations. Nous le tracerons dans le plan des deux premiers axes factoriels. Pour celà, nous sélectionnons "Principal Component analysis" et nous executons "Define status" avec l'icône ce qui donne "Define status 2" avec lequel nous définissons en Input les variables précédentes et en Target les axes PCA_1_Axis_1 et PCA_1_Axis_2 :
On fait ensuite glisser l'icône "Data visualization/Correlation scatterplot" sur Define status 2. On obtient avec View :
résultat analogue (au signe près) de celui obtenu dans la session précédente.
Les aides à l'analyse Qualité de la représentation d'un individu
Dans un plan défini par deux axes factoriels α et β, un point individu se projette en P(i) dont les coordonnées sont (Yuα)i et (Yuβ)i d'après les résultats des se résultats des sessions précédentes
. La proximité de l'individu avec le plan (α, β) est mesurée 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 carrés pour chaque axe sont donnés dans Tanagra par PCA_1_COS2_i :
Ainsi, pour le plan (1,2), les qualités de représentation des individus sont donnés dans le tableau suivant :
Nous pouvons ainsi constater que Evelyne est très éloignée du plan (1,2) tandis qu'une proximité à peu près équivalente du plan (1,2) des autres individus est également constatée. Contribution d'un individu à l'inertie d'un axe factoriel
Elle est définie par le rapport
Il résulte de la définition précdente 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 définition mécanique 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 éloignés 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 définis de manière analogue.
5 - Reconstitution des données Notre but initial, ne l'oublions pas, était de remplacer un GRAND tableau de données par un tableau plus petit permettant de reconstituer au mieux les données initiales. L'ACP ayant été effectuée, on dispose donc q q
q
de la matrice Y des données centrées réduites des vecteurs propres et valeurs propres de la matrice des corrélations : u et λ (α = 1,...,p) α
α
du tableau des coordonnées des points individus
A partir de la relation ,
post-multiplions par uαT :
On fait l'approximation suivante : seuls les q premiers axes factoriels tels que
soit notable (80% par exemple)
sont pris en considération. On est conduit à l'approximation
avec
Yu
α
q vecteurs à n composantes
u T α
q vecteurs à p 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 associées sont λ1 = 2,86 Reconstituons le tableau :
λ2
= 1,17
λ3
= 0,98
et on obtient
qui représente une bonne approximation du tableau Y .
Module C106 : Analyse et fouille des données
Analyse en composantes principales (ACP)
Exercices
auteurs : Annie Morin, Miage Rennes, Gérard-Michel Cochard, Miage Amiens Date de la dernière modification : 7 octobre 2007
Exercice 1 Trois tableaux de maîtres ont été notés de 0 à 10 par six spectateurs. Les notes attribuées sont dans le tableau de données suivant (tableau transposé) :
On désire réaliser une analyse en composantes principales normée de ce tableau de notes. On donne les deux plus grandes valeurs propres - et les vecteurs propres unitaires associés - de la matrice des corrélations :
1. Donnez les pourcentages d'inertie expliquée par chacun des trois axes factoriels. 2. Calculez les coefficients de corrélation linéaire entre chacune des trois variables et chacune des deux premières composantes principales. Représentez le cercle des corrélations. 3. Calculez et présentez dans un tableau (en utilisant éventuellement le tableur Excel®) : q
le tableau centré réduit à 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 carrés des spectateurs sur les deux premiers axes factoriels.
4. Calculez les coordonnées sur les deux premiers axes factoriels d’un nouveau spectateur qui a communiqué ses notes après la réalisation de l’analyse : 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 réaliser une ACP non normée de ce tableau ? (justifiez votre réponse)
Exercice 2 Le tableau ci-dessous donne les résultats obtenus à partir de 10 essais de laboratoire concernant la charge de rupture y d'un acier en fonction de sa teneur x en carbone :
n° essai
teneur en carbone x pour 10000
charge de rupture y en kg
1
72
90
2
60
70
3
68
72
4
66
78
5
64
75
6
62
75
7
64
80
8
70
85
9
62
70
10
74
100
Etudier ce tableau avec les méthode de l'analyse factorielle en composantes principales. 5) On peut effectuer une analyse factorielle non normée dans le cas de cet exemple car les valeurs des variables sont de même "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 deuxième axe factoriel. Donc dans le plan défini 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 représentation suivante avec le cercle des corrélations :
Les corrélations de chaque variable avec les axes factoriels sont données dans le tableau ci-dessus. A partir de ce tableau, on peut aussi calculer lers corrélations 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 présentent une certaine corrélation. 3) Effectuons avec un tableur la suite d'opérations classiques :
4) individu supplémentaire (8, 6, 5)
(individu supplémentaire en vert)
Solution de l'exercice 2
Calcul de la matrice des corrélations :
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 déterminant de cette matrice est (1 - λ)2 - 0,767 et l'équation à résoudre est (1 - λ)2 = 0,767 ce qui conduit aux solutions λ1 = 1,876 ετ λ2 = 0,124. Λε ποιδσ ιµπορταντ δε λα πρεµιρε ϖαλευρ προπρε (ινερτιε 93,8%)
µοντρε θυε λε προβλµε εστ πρατιθυεµεντ λιναιρε. Ον εν δδυιτ λεσ ϖεχτευρσ προπρεσ :
puis les coordonnées des points individus dans les axes factoriels :
Les composantes des vecteurs variables dans les axes factoriels sont :
On observe bien la forte corrélation entre les deux variables. Le tableau Y peut être reconstitué à partir des coordonnées des points individus YU et du vecteur UT :