Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

TP1:

Analyse en Composantes Principales


avec R.

Licence: SSD -Fst Tanger- Anneée universitaire: 2023/2024.

1 Objectif du TP et étude de cas


Objectif du TP

L’objectif de ce TP est de mettre en pratique, à l’aide du langage R, la


méthode ACP telle que vue en cours. À l’aide d’un exemple numérique,
nous allons effectuer pas à pas les différents calculs permettant de réaliser
l’ACP.
Au-delà des calculs et code R, le deuxième objectif du TP est d’aborder
plus précisément les interprétations que nous pouvons faire une fois
les différents axes factoriels déterminés et les nuages de points pro-
jetés dans l’espace réduit. Pour nous aider dans cette analyse, nous
pouvons calculer plusieurs mesures permettant d’apprécier la qualité de
représentations des points dans le plan factoriel.

Étude de cas
Analyse en composantes principales (ACP) avec FactoMineR sur les
données relatives à la qualité de la vie dans 18 grandes métropoles
américaines.

Importation de données et manipulation de variables.


Remplacer ”/U sers/pro/Documents/Exemple ACP/V illeU SA.csv”
par le chemin d’accès sur votre ordinateur au fichier ”V illeU SA.csv”.

1
1 V _ USA <- read . table ( " / Users / pro / Documents / Exemple _ ACP / VilleUSA . csv "
, header = TRUE , sep = " ; " , dec = " . " , row . names =1 , check . names = FALSE ,
2 fileEncoding = " latin1 " , s t r i n g s A s F a c t o r s = TRUE )

Résumé des variables pour contrôler que tout est ok.


Il est important de s’assurer que l’importation a bien été effectuée, et
notamment que les variables quantitatives sont bien considérées comme
quantitatives et les variables qualitatives bien considérées comme quali-
tatives

1 summary ( V _ USA )

Installation des packages nécessaires et regroupement des librairies


utilisées.

1 # # Installations des packages


2 install . packages ( " FactoMineR " )
3 install . packages ( " corrplot " )
4 install . packages ( " ggplot2 " )
5 install . packages ( " factoextra " )
6 # # Chargement des bibliotheques
7 library ( FactoMineR )
8 library ( corrplot )
9 library ( ggplot2 )
10 library ( factoextra )

L’ACP avec tous les éléments (18 lignes et 10 variables) actifs.


• PCA centrée réduite par défaut (pour ne pas réduire et utiliser la
covariance scale.unit = FALSE)
• PCA avec graphe par défaut (pour ne pas afficher le graphe graph
= FALSE)

• ncp = nb de dimensions gardé dans le résultat final

1 res _ USA <- PCA ( V _ USA , ncp = 10 , graph = TRUE )

• On peut obtenir un résumé des principaux résultats en utilisant la


fonction summary.
• Nous demandons ici à avoir les résultats sur les 2 premières dimen-
sions pour éviter d’avoir des tableaux trop grands (par défaut, la
fonction retourne les résultats des 3 premières dimensions).

1 summary ( res _ USA , ncp =2)

2
Pour imprimer les résultats dans un fichier :
• Indiquer l’emplacement ou vous voulez enregistrer ce fichier

1 summary ( res _ USA , file = " / Users / pro / Documents / Exemple _ ACP / Result . txt "
)

Interprétation des sorties d’une ACP

On fait ici l’interprétation numérique des contributions et qualités de


représentations des variables et des individus

Affichage des valeurs propres (eigenvalues).


• La somme des ”eigenvalues” égale le nombre d’axes (ici 10).
• Une ”eigenvalue” > 1 a plus d’information (d’inertie) qu’une vari-
able d’origine.

1 eig . val <- get _ eigenvalue ( res _ USA )


2 eig . val

Si on veut afficher les coordonnées des variables sur les axes principaux

1 head ( res _ USA $ var $ coord , n =6)


2 # # seulemnt les 6 premieres variables .

Si on veut afficher la qualité de la représentation des variables sur les


axes principaux

1 head ( res _ USA $ var $ cos2 , n =10)

Si on veut afficher la contribution des individus dans le calcul des axes.

1 head ( res _ USA $ ind $ contrib , n =10)

Visualisation de pourcentage d’inertie des axes

• Le package ”factoextra” peut être utilisé pour améliorer les


représentations graphiques de base du package ”FactoMineR”
• le diagramme en ”éboulis” des valeurs propres.

3
1 library ( " factoextra " ) # si c ’ est pas deja activee
2 fviz _ eig ( res _ USA , addlabels = TRUE , ylim = c (0 ,35) )

Affichage de graphe des variables

1 plot ( res _ USA , choix = " var " , axes = 1:2 , new . plot = F )

Affichage de graphe des individus avec coloriage des individus en fonction


de leur modalité.

1 plot ( res _ USA , choix = " ind " , habillage = 11 , axes = 1:2 , new . plot =
F , cex = 0.5)

Qualité de la représentation
Visualiser la qualité de la représentation avec Corrplot.

Visualiser la qualité de la représentation des variables avec Corrplot

1 library ( corrplot )
2 corrplot ( res _ USA $ var $ cos2 , is . corr = FALSE )

Visualiser la qualité de la représentation des individus avec Corrplot

1 corrplot ( res _ USA $ ind $ cos2 , is . corr = FALSE )

Visualisation avec diagramme en barres


Qualité des variables: Total cos2 des variables pour Dim.1 et Dim.2

1 # # Visualisation avec fviz _ cos2 () ( factoextra )


2 fviz _ cos2 ( res _ USA , choice = " var " , axes = 1:2)

Qualité des individus: Total cos2 des individus pour Dim.1 et Dim.2

1 fviz _ cos2 ( res _ USA , choice = " ind " , axes = 1:2)

Mise en couleurs avec la fonction fviz pca var()


Coloration des variables en fonction de leur qualité de la représentation
.

1 fviz _ pca _ var ( res _ USA , col . var = " cos2 " , gradient . cols = c ( " #00 AFBB " ,
" # E7B800 " , " # FC4E07 " ) , # du bleu ( cos2 faible ) au rouge ( fort )
en passant par le jaune ( moyen ) select . var =
2 list ( cos2 = 0.6) , # Pour visualiser les variables avec cos2 >= 0.6
repel = TRUE ) # Avoid text overlapping

4
Coloration des individus en fonction de leur qualité de la représentation
.

1 fviz _ pca _ ind ( res _ USA , col . ind = " cos2 " , gradient . cols = c ( " #00 AFBB " ,
" # E7B800 " , " # FC4E07 " ) , select . ind = list ( cos2 = 0.5) , # Pour
visualiser les individus avec cos2 >= 0.5
2 repel = TRUE ) # Avoid text overlapping ( slow if many points )

Pour changer la taille des individus en fonction de leur cos2

1 fviz _ pca _ ind ( res _ USA , pointsize = " cos2 " , pointshape = 21 , # 22 =
carre , 24 = triangle , etc . fill = "# E7B800 " ,
2 repel = TRUE ) # Avoid text overlapping ( slow if many points )

Contribution des variables et des individus


Visualiser la qualité de la contribution des variables avec Corrplot.

1 corrplot ( res _ USA $ var $ contrib , is . corr = FALSE )

Visualiser la qualité de la contribution des individus avec Corrplot.

1 corrplot ( res _ USA $ ind $ contrib , is . corr = FALSE )

Visualisation avec fviz contrib() (diagramme en barres)

Contribution des variables sur l’axe 1

1 fviz _ contrib ( res _ USA , choice = " var " , axes = 1)

Contribution des variables sur les axes 1 et 2

1 fviz _ contrib ( res _ USA , choice = " var " , axes = 1:2 , top = 10) # ## les 10
variables les plus contributives

Contribution des individus sur les axes 1 et 2

1 fviz _ contrib ( res _ USA , choice = " ind " , axes = 1:2)

Mise en couleurs mixte (contrib et cos2) du plan factoriel


• quels sont les individus les plus contributifs ?

• quels sont les individus les mieux représentés ?

5
1 fviz _ pca _ ind ( res _ USA , col . ind = " cos2 " , pointsize = " contrib " ,
2 gradient . cols = c ( " #00 AFBB " , " # E7B800 " , " # FC4E07 " ) , axes = c (2 ,8) , #
faire varier les axes pour voir repel = TRUE )
3 # Avoid text overlapping ( slow if many points )

Plan factoriel avec les variables et les points

1 fviz _ pca _ biplot ( res . villeUS . pca , repel = TRUE , col . var =
2 " #2 E9FDF " , col . ind = " #696969 " )

Travail à réaliser.
• Téléchargez le fichier VilleUSA.csv sur votre disque dur.
• Faire l’ACP en utilisant les commandes ci-dessus et commenter les
diffrentes sorties graphiques et numériques.

Vous aimerez peut-être aussi