Introduction

Marie-Pierre Etienne

ENSAI - CREST

https://marieetienne.github.io/MAF

2025-10-13

Un exemple pour commencer

Où l’on commence par parler de manchots

From the palmerpenguins package, data courtesy of Dr. Kristen Gorman and the Palmer Station, Antarctica LTER.

library(palmerpenguins)
data(penguins)
head(penguins, n= 10)
# A tibble: 10 × 8
   species island    bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
   <fct>   <fct>              <dbl>         <dbl>             <int>       <int>
 1 Adelie  Torgersen           39.1          18.7               181        3750
 2 Adelie  Torgersen           39.5          17.4               186        3800
 3 Adelie  Torgersen           40.3          18                 195        3250
 4 Adelie  Torgersen           NA            NA                  NA          NA
 5 Adelie  Torgersen           36.7          19.3               193        3450
 6 Adelie  Torgersen           39.3          20.6               190        3650
 7 Adelie  Torgersen           38.9          17.8               181        3625
 8 Adelie  Torgersen           39.2          19.6               195        4675
 9 Adelie  Torgersen           34.1          18.1               193        3475
10 Adelie  Torgersen           42            20.2               190        4250
# ℹ 2 more variables: sex <fct>, year <int>
penguins <- penguins %>% na.omit() %>% mutate(year=as.factor(year))

Artwork by @allison_horst

Point de vue science des données

  • Comment représenter ces données en perdant le moins d’information possible? Visualisation
  • Toutes les variables sont-elles utiles ? Compression
  • Peut-on mettre en évidence des liens entre variables ? Compression
  • Peut-on mettre en évidence des liens entre individus ? Compression

Point de vue biologique

  • Quelles sont les différences morpholgiques entre espèces, entre sexe et entre les îles ?
  • Existe-t-il des relations morphométriques ?

Représenter c’est déjà comprendre

penguins %>%
  select(species, body_mass_g, ends_with("_mm")) %>% 
  GGally::ggpairs(aes(color = species),
          columns = c("flipper_length_mm", "body_mass_g", 
                      "bill_length_mm", "bill_depth_mm")) +
  scale_colour_manual(values = c("darkorange","purple","cyan4")) +
  scale_fill_manual(values = c("darkorange","purple","cyan4"))

Projection sur un espace à deux dimensions

Le mensonge de la projection

Comment ?

En

  • Trouvant une (ou plusieurs) représentations en 2 dimensions la plus fidèle possible,
  • Faisant apparaître les liens plus complexes entre variables (\(X_3 = X_1 + X_2\))
  • étant capable d’identifier les individus qui se ressemblent globalement

Les données

Mise en forme des données

Toutes les méthodes d’analyse factorielle organisent les données dans un tableau composé de n individus (lignes) et de p colonnes (colonnes).

Une ligne regroupe toutes les caractéristiques d’un individu.

  • Si une caractéristique est quantitative, alors on note dans une colonne la valeur mesurée sur l’individu.
  • Si une caractéristique \(j\) est qualitative,
    • soit on note sa modalité dans la colonne \(j\),
    • soit on utilise la représentation one hot encoding, qui consiste à représenter cette caractéristique qualitative sur autant de colonnes que de modalités et attribuer un \(1\) dans la colonne correspondant à la modalité de l’individu et 0 aux autres.

Données disponibles dans le package palmerpenguins mises à disposition par le Dr. Kristen Gorman et the Palmer Station, Antarctica LTER.

On a mesuré les caractéristiques morphologiques de divers manchots :

Les 3 premières lignes (parmi 333 )

# A tibble: 3 × 8
  species island    bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
  <fct>   <fct>              <dbl>         <dbl>             <int>       <int>
1 Adelie  Torgersen           39.1          18.7               181        3750
2 Adelie  Torgersen           39.5          17.4               186        3800
3 Adelie  Torgersen           40.3          18                 195        3250
# ℹ 2 more variables: sex <fct>, year <fct>
  • species : 3 espèces possibles (Adelie, Chinstrap, Gentoo)

  • island : l’île sur laquelle le mancho a été observé (Biscoe, Dream, Torgersen)

  • bill_length_mm : la longueur du bec,

  • bill_depth_mm : l’épaisseur du bec,

  • flipper_length_mm : la longueur de la nageoire,

  • body_mass_g : le poids du corps.

  • sex : le sexe du manchot (male,female)

  • year : l’année de l’observation

Mise en forme des données

Dans la suite on va noter \({\boldsymbol{X}}\) la matrice des données, \({\boldsymbol{X}}\in {\mathbb{R}}^{n\times p}\).

\(x_{\class{alea}{i}\class{orange}{j}}\) est la valeur de la variable \(\class{orange}{j}\) mesurée pour l’individu \(\class{alea}{i}.\)

\[{\boldsymbol{X}}= \overset{\color{orange}{\begin{matrix}var_1& \ldots \ & \ \ldots \ &\ \ldots\ & \ var_p \end{matrix}}}{\begin{pmatrix} x_{\class{alea}{1}}^{\class{orange}{1}} & \ldots & \ldots &\ldots & x_{\class{alea}{1}}^{\class{orange}{p}}\\ \vdots & & & &\vdots \\ & & x_{\class{alea}{i}}^{\class{orange}{j}} & & \\ \vdots & & & & \vdots \\ x_{\class{alea}{n}}^{\class{orange}{1}} & & & & \ldots x_{\class{alea}{n}}^{\class{orange}{p}}\\ \end{pmatrix}}\]

Ecrire les 2 premières lignes de \(\Xbf\) pour l’exemple des manchots

Comment visualiser au mieux ces données pour faire apparaître les liens entre variables et identifier des resemblances entre individus ?

Voir c’est comprendre : comment représenter l’information contenue dans ce tableau ?

Idée 1 : on représente les liens des variables 2 à 2 – Focus sur les données quantitatives

Voir c’est comprendre : comment représenter l’information contenue dans ce tableau ?

Idée 1 : on a dit que c’était dangereux

Voir c’est comprendre : comment représenter l’information contenue dans ce tableau ?

Objectifs

  1. Représenter sans perdre trop d’information,

Pour cela, on veut pouvoir

  • Quantifier la quantité d’information disponible ou perdue par une représentation
  1. Comprendre quelles sont les informations redondantes (variables liées),
  2. Idéalement des individus éloignés dans le nuage initial, restent éloignés dans la représentation

Formaliser le problème

Deux points de vue complémentaires

Le nuage des individus \(C^n\)

On peut considérer qu’un individu \(i\) est un vecteur \(\class{alea}{\boldsymbol{x}_{i}}\) dans un espace de dimension \(p\). Par convention tous les vecteurs sont des vecteurs colonnes, donc on peut écrire

\[{\boldsymbol{X}}=\begin{pmatrix} \class{alea}{\boldsymbol{x}_{1}}^\top\\ \vdots \\ \class{alea}{\boldsymbol{x}_{n}}^\top\\ \end{pmatrix},\]

L’ensemble des \(n\) vecteurs forme le nuage des individus (ce qu’on représente classiquement).

Le nuage des variables \(C^p\)

On peut considérer qu’une variable \(j\) est un vecteur \(\class{orange}{\boldsymbol{x}^{j}}\) dans un espace de dimension \(n\) et on peut écrire

\[{\boldsymbol{X}}=\begin{pmatrix} \class{orange}{\boldsymbol{x}^{1}} & \ldots & \class{orange}{\boldsymbol{x}^{p}} \end{pmatrix},\]

L’ensemble des \(p\) vecteurs forme le nuage des variables.

Bien sûr les deux nuages sont intimement liés

Un aperçu du type de données

Comprendre les relations entre des variables toute quantitatives.

Example

Quels sont les liens entre les différentes variables morphométriques ?

X_pca <- penguins %>%select(where(is.numeric)) 
head(X_pca)
# A tibble: 6 × 4
  bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
           <dbl>         <dbl>             <int>       <int>
1           39.1          18.7               181        3750
2           39.5          17.4               186        3800
3           40.3          18                 195        3250
4           36.7          19.3               193        3450
5           39.3          20.6               190        3650
6           38.9          17.8               181        3625

\[\Xbf \in \R^{n\times d}; \quad \Xbf = \begin{pmatrix} x_{1,1} & \ldots & x_{1,p} \\ \vdots & &\vdots \\ x_{n,1} & \ldots & x_{n,p} \\ \end{pmatrix}. \]

On souhaite étudier les liens entre deux variables qualitatives.

Example

Comment la répartition entre espèce diffère entre les îles.

X_acm <- penguins %>%select(species, island) 
head(X_acm)
# A tibble: 6 × 2
  species island   
  <fct>   <fct>    
1 Adelie  Torgersen
2 Adelie  Torgersen
3 Adelie  Torgersen
4 Adelie  Torgersen
5 Adelie  Torgersen
6 Adelie  Torgersen

\[\Xbf = \begin{pmatrix} \class{bleu}{a_1} & \class{orange}{b_1} \\ \class{bleu}{\vdots} &\class{orange}{\vdots} \\ \class{bleu}{a_n} & \class{orange}{b_n} \\ \end{pmatrix}, \quad a_{i}\in \mathcal{A}, \ \#\mathcal{A}= p,\quad b_{i}\in \mathcal{B}, \ \#\mathcal{B}= q. \]

Organisation du cours

  • Ces deux méthodes ont beaucoup de points communs et de nombreuses variantes intéressantes
  • Comprendre finement l’ACP permet de bien comprendre toutes les extensions suivantes
  • La mise en oeuvre requiert un peu de pratique car il faut faire des choix avisés.

Objectifs de ce cours

Découvrir des méthodes permettant de

  • Trouver une (ou plusieurs) représentations en 2 dimensions la plus fidèle possible,
  • Faire apparaître les liens entre les différentes variables,
  • Identifier les individus qui se ressemblent.

Les ingrédients

  • une mesure de la quantité d’information présente dans un jeu de données,
  • un peu de géométrie et d’algèbre linéaire,
  • un bon esprit pratique pour bien poser le problème au départ
  • des données bien rangées dans un tableau \(\Xbf\)
    • une ligne \(i\) correspond à un individu
    • une colonne \(j\) à une variable \(X_{ij}\) la valeur de la variable \(j\) mesurée sur l’individu \(i\).

Plan du cours

  • Quantifier l’information
  • Analyse en composantes principales ACP
    • Un exemple d’ACP
    • Comprendre les mécanismes derrière l’ACP (notion d’inertie, distance entre individus, changement de repères, la correlation comme un cosinus)
  • Analyse Factorielle multiple AFM : une extension de l’ACP pour tenir de groupes de variables
  • Analyse Factorielle Discriminante AFD : une extension de l’ACP pour tenir compte de groupes d’individus
  • Analyse Factorielle des Correspondances AFC
  • Analyse des Correspondances multiples ACM : lorsqu’on a plus que deux variables qualitatives