Chapitre 4 L’ACP

4.1 Principe de l’ACP

4.1.1 Type de données

On dispose d’un tableau de \(n\) lignes et \(p\) colonnes actives qui sont uniquement des variables quantitatives (au sens large, des binaires codées 0/1 ou des variables ordinales passent).

4.1.2 Objectifs

Une ACP peut permettre de :

  • Résumer l’information.
  • Identifier les corrélations entre variables actives.
  • Identifier les proximités entre les individus.

4.1.3 Méthode

L’ACP va déterminer, dans un espace à \(p\) dimensions (sous l’hypothèse qu’aucune des variables n’est une combinaison linéaire des autres), l’axe le long duquel les points représentant les individus sont les plus “étalés”. Cet axe \(F_1\) est une combinaison linéaire des variables de départ.

Dans l’exemple graphique ci-dessous et en 2D, la dispersion des points est essentiellement le long de l’axe bleu. L’axe rouge est orthogonal au bleu. Dans le repère \((O, x, y)\), la variance est à peu près équivalente sur \(x\) et sur \(y\). A l’inverse, dans le repère constitué des axes de couleur, la variance est portée essentiellement sur le bleu tandis que le rouge ne porte qu’une faible partie de l’inertie du nuage de point. En gros, l’axe bleu est la première composante principale, généralement notée \(PC_1\) ou \(F_1\), et le rouge \(PC_2\) ou \(F_2\).

Ce changement de repère peut être visualisé ainsi :

Dans ce nouveau repère, l’essentiel de la dispersion des points peut être “résumé” par leur position sur \(F_1\).

La variance du nuage de points caractérise sa dispersion. C’est la moyenne, sur l’ensemble des points, des carrés des distances au centre d’inertie du nuage. D’après le théorème de Pythagore, elle peut être décomposée en composantes orthogonales car \(d^2=d_1^2+d_2^2\).

\(V={\frac 1n}\sum _{{i=1}}^{n}(d_{i})^{2}\\ ={\frac 1n}\sum _{{i=1}}^{n}[(d_{1i})^{2}+(d_{2i})^{2}]\\ ={\frac 1n}\sum _{{i=1}}^{n}(d_{1i})^{2}+{\frac 1n}\sum _{{i=1}}^{n}(d_{2i})^{2}\\ =V_1+V_2\)

Lors du changement de repère, on a conservé la variance totale du nuage de points, mais au lieu d’être répartie également entre les variables \(x\) et \(y\), elle est concentrée sur \(F_1\).

Pour un nombre de variables \(p>2\), on généralise. \(F_1\) est l’axe qui porte le plus d’inertie, puis \(F_2\) est, dans le sous-espace orthogonal à \(F_1\), celui qui porte le plus d’inertie, et ainsi de suite. Le nombre total d’axes est \(p\) (sauf à avoir des variables qui sont des combinaisons linéaires les unes des autres, ce qui intervient par exemple quand la somme des colonnes fait 100%).

Faire une ACP revient donc à effectuer un changement de repère. Dans notre dataframe de départ, chaque colonne peut être vue comme une coordonnée de chacun des individus. Ce n’est pas un repère orthonormé car les variables sont plus ou moins corrélées les unes aux autres. Quand on représente le nuage de points dans le repère \((O, F_1, F_2)\), les axes sont indépendants (corrélation nulle).

En d’autres termes, l’ACP consiste à construire un nouvel espace vectoriel orthonormé (les variables construites sont non-corrélées 2 à 2) de même dimension que l’espace de départ, mais où l’inertie sera concentrée sur les premiers axes factoriels. Mathématiquement, cela conduit à diagonaliser la matrice de variance-covariance ; les valeurs propres correspondent à la part de l’inertie totale portée par chaque axe factoriel.

4.1.4 Centrer - réduire ?

Si l’on a des variables de dispersion (variance) très différentes, ou d’unités différentes, en général il fait centrer (retrancher la moyenne) et réduire (diviser par l’écart-type) chacune des variables avant d’effectuer l’ACP. Dans ce cas chacune des variables a la même importance (variance de 1) \(\Rightarrow\) l’inertie du nuage vaut \(p\).

C’est l’option par défaut dans la fonction PCA de FactoMineR (scale.unit = TRUE), qui réalise donc une ACP dite “normée”.

Note : Les espaces des variables et des individus ne sont pas les mêmes en ACP \(\Rightarrow\) on ne peut pas les représenter simultanément. Dans les autres analyses, on le peut.

4.2 L’ACP avec FactoMiner

4.2.2 Exemple

4.2.2.1 Données utilisées

  • Données communales téléchargées sur Géoïdd et converties en format .csv (attention aux valeurs N/A ou autres dans le fichier Excel qui peuvent parasiter l’importation de données).
  • Les individus statistiques sont les communes (lignes) et les variables (colonnes) différents indicateurs décrivant ces communes.
  • Objectif : voir quels indicateurs différencient le plus les communes, et quelles sont les communes qui s’écartent le plus de la moyenne.
  • Utilisation de variables qualitatives supplémentaires pour compléter la description (présence d’un agenda21 et d’un PPRN).

4.2.2.2 Importation et exploration rapide

Les données sont dans le fichier ACP.csv.

Le fait d’affecter les code géographiques comme row.names du dataframe permet de mieux identifier les individus sur les graphiques (et les sorties) par la suite.

ATTENTION, certaines fonctions du package dplyr du tidyverse, comme mutate, suppriment les noms des lignes.

Matrice de corrélations sur les variables quantitatives :

##              Densite tx_emploi part_artif part_proprio ind_vieill
## Densite         1.00      0.09       0.68        -0.35      -0.06
## tx_emploi       0.09      1.00       0.25        -0.34       0.07
## part_artif      0.68      0.25       1.00        -0.48      -0.10
## part_proprio   -0.35     -0.34      -0.48         1.00       0.03
## ind_vieill     -0.06      0.07      -0.10         0.03       1.00

Tableau croisé sur les variables qualitatives :

##               
##                0 - Absence de PPRN 1 - PPRN prescrit 2 - PPRN approuvé
##   Agenda21  0                21768              2321              8306
##   Agenda21  1                 2916               136              1063
##   Agenda21  NA                   0                 0                 0

On remarque dans un premier temps que les corrélations ne sont pas très élevées entre les variables. La corrélation la plus élevée est celle entre la densité de population et la part de terres artificialisées. Le lien entre les variables PPRN et Agenda21 est peu évident avec le tableau de fréquences.

On peut utiliser les fonctions vues dans le module 3 pour explorer les données :

4.2.2.3 Réaliser l’ACP

Pour voir l’aide : ?PCA.

On voit que par défaut les variables sont centrées - réduites et que les valeurs manquantes sont remplacées par la moyenne de la colonne à laquelle elles appartiennent. Il est important de se questionner sur la pertinence de ces options “par défaut”.

Réalisation de l’ACP :

La fonction PCA retourne un objet de type liste (de liste), qui contient toutes les informations nécessaires à l’interprétation des résultats et leur utilisation : on y retrouve notamment, pour les individus et pour les variables, sur chacun des axes :

  • Les coordonnées factorielles (coord).
  • La qualité de représentation (cos2) sur chaque axe.
  • La contribution à la formation de l’axe (c’est à dire la part de variance de l’axe portée par l’individu / la variable).

Pour accéder aux résultats de l’ACP, on peut voir les objets contenus dans cette liste :

## [1] "eig"       "var"       "ind"       "svd"       "quali.sup" "call"

Chacun de ces sous-objets (par exemple acp$ind) contient à son tour des éléments :

## [1] "coord"   "cos2"    "contrib" "dist"

Pour tout visualiser d’un coup, on peut utiliser la fonction str :

L’élément eig donne les valeurs propres de la matrice de variance-covariance, autrement dit la part d’inertie portée par chacun des axes factoriels. Pour accéder aux coordonnées factorielles des individus, on apppelle l’élément coord de l’élément ind de l’objet acp.

Contributions des individus à chacun des axes :