Introduction

Marie-Pierre Etienne

ENSAI - CREST

https://marieetienne.github.io/MAF

2024-12-19

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 ? Visualisation
  • Toutes les variables sont-elles utiles ? 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

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

  • un peu de géométrie et d’algèbre linéaire,
  • mesurer la quantité d’information présente dans un jeu de données,
  • 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\).

Un aperçu du type de données

Comprendre les relations entre des variables toutes quantitatives.

Example

Quels sont lens 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}. \]

Comprendre les combinaisons de variables quantitatives qui expliquent les groupes, ou comment visualiser au mieux les différences entre les groupes.

Example Comment visualiser au mieux les différences morpohologiques entre les espèces ?

X_afd <- penguins %>% select(-island, -sex, -year) 
head(X_afd)
# A tibble: 6 × 5
  species bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
  <fct>            <dbl>         <dbl>             <int>       <int>
1 Adelie            39.1          18.7               181        3750
2 Adelie            39.5          17.4               186        3800
3 Adelie            40.3          18                 195        3250
4 Adelie            36.7          19.3               193        3450
5 Adelie            39.3          20.6               190        3650
6 Adelie            38.9          17.8               181        3625

\[ \Xbf = \begin{pmatrix} \class{rouge}{y_1} & x_{1,1} & \ldots & x_{1,p} \\ \vdots & &\vdots \\ \class{rouge}{y_n} & x_{n,1} & \ldots & x_{n,p} \\ \end{pmatrix}, \quad x_{ij}\in\R,\  g_i \in \mathcal{G} =\left \lbrace g_1, \ldots, g_G\right \rbrace. \]

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 méthodes ont beaucoup de points communs
  • 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.

Plan du cours

  • Analyse en composante principale
    • 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
  • Analyse Factorielle Discriminante : AFD
  • Analyse Factorielle des Correspondances : AFC