Skip to content

Commit 0154f93

Browse files
New tutorial B07La_pca
1 parent b4fddb4 commit 0154f93

File tree

1 file changed

+102
-11
lines changed

1 file changed

+102
-11
lines changed

devel/tutorials/B07La_pca/B07La_pca.Rmd

Lines changed: 102 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ author: "Guyliann Engels & Philippe Grosjean"
44
description: "**SDD II Module 7** : Analyse en Composantes Principales (ACP)"
55
tutorial:
66
id: "B07La_pca"
7-
version: 0.0.9999/___
7+
version: 0.1.0/6
88
output:
99
learnr::tutorial:
1010
progressive: true
@@ -15,8 +15,6 @@ runtime: shiny_prerendered
1515
BioDataScience2::learnr_setup()
1616
# Package utile
1717
SciViews::R()
18-
# Preparation of the dataset ------
19-
penguins <- read("penguins", package = "palmerpenguins", lang = "fr")
2018
2119
# Functions utiles
2220
# pca for SciViews, version 1.0.0
@@ -214,7 +212,13 @@ chart.pcomp <- function(data, choices = 1L:2L, name = deparse(substitute(data)),
214212
autoplot.pcomp(data, choices = choices, name = name, ..., type = type, env = env)
215213
class(chart.pcomp) <- c("function", "subsettable_type")
216214
215+
# Preparation of the dataset ------
216+
penguins <- read("penguins", package = "palmerpenguins", lang = "fr") %>.%
217+
drop_na(., bill_length_mm)
217218
219+
penguins %>.%
220+
select(., 3:6) %>.%
221+
pca(., scale = TRUE) -> penguins_pca
218222
```
219223

220224
```{r, echo=FALSE}
@@ -231,24 +235,38 @@ BioDataScience2::learnr_server(input, output, session)
231235

232236
L'Analyse en Composantes Principales (ACP) est une méthode des statistiques exploratoires très utilisée dans le domaine de la biologie et de l'écologie. Il est donc primordial de comprendre cette analyse.
233237

238+
234239
Le tutoriel learnr sur l'analyse en composantes principales que vous vous apprêtez à réaliser vous permettra de\ :
235240

236-
- ___
241+
- Réaliser une ACP ainsi que les graphiques associées à cette analyse
242+
243+
- Interpréter les résultats de l'ACP
237244

238245
Avant toute chose, assurez vous d'avoir bien compris le contenu du [module 7](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2020/acp-afc.html) du cours et en particulier la [section 7.1](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2020/analyse-en-composantes-principales.html).
239246

240247
## Manchôts de l'Antarctique
241248

249+
Trois espèces de manchots ont été étudié sur en Antarctique entre 2007 et 2009 par le Docteur Kristen Gorman de la base antarctique Palmer. Les manchots ont été étudié sur l'île du Rêve (`Dream`), sur l'île de Torgersen (`Torgersen`) et sur îles Biscoe (`Biscoe`). Les espèces étudiées sont les manchots Papou (*Pygoscelis papua* (Forster, 1781), `Gentoo`), les manchots Adélie (*Pygoscelis adlidae* (Hombron & Jacquinot, 1841), `Adelie`) et les manchots à jugulaire (Pygoscelis antarcticus (Forster, 1781), `Chinstrap`).
250+
251+
242252
```{r}
243253
penguins <- read("penguins", package = "palmerpenguins") # importation des données
244254
skimr::skim(penguins)
245255
```
246256

257+
On dénombre les 3 variables facteurs concernant les espèces étudiées, les îles étudiées et le sexe des individus. On dénombre 4 variables biométriques la longueur du bec (mm), la hauteur du bec (mm), la longueur de la nageoire (mm) et la masse (g). Les années de mesures sont recensées dans la variable `year`.
258+
247259
```{r}
248260
naniar::vis_miss(penguins) # Visualisation des données
249-
penguins <- drop_na(penguins) # Eliminer les lignes vides
261+
penguins <- drop_na(penguins, bill_length_mm) # Eliminer les lignes vides
250262
```
251263

264+
Le graphique met en avant les variables qui comprennent des valeurs manquantes. La variable sexe ne sera pas utilisée dans cette analyse. Nous ne supprimons que les valeurs manquantes pour les 4 variables biométriques.
265+
266+
### Matrice de la corrélation de Pearson
267+
268+
Débutez par réaliser un graphique de la matrice de corrélation de Pearson. Vous devez donc sélectionner uniquement les variables numériques. Vous avez donc à disposition le jeu de données `penguins`.
269+
252270
```{r corplot_h2, exercise=TRUE}
253271
peng_corr <- ___(penguins[___:___])
254272
plot(___)
@@ -270,17 +288,23 @@ plot(peng_corr)
270288
grade_code("Ce graphique est très intéressant pour visualiser les corrélations entre les différentes variables numériques. Par défaut, la fonction utilise la méthode de Pearson qui met en avant les corrélations linéaires.")
271289
```
272290

291+
### ACP
292+
293+
Calculez une analyse en composantes principales sur le jeu de données `penguins`. Sélectionnez uniquement les variables numériques et intéressantes. L'année de la mesure n'est pas une variable intéressante pour réaliser l'ACP. Les variables biométriques ont des unités différentes. Il est plus judicieux de standardiser les valeurs.
294+
273295
```{r pca_h2, exercise=TRUE}
274296
___ %>.%
275297
___(., ___:___) %>.%
276298
pca(., scale = ___) -> penguins_pca
299+
# Résumé de l'objet pca
277300
summary(penguins_pca)
278301
```
279302

280303
```{r pca_h2-hint-1}
281304
___ %>.%
282305
select(., ___:___) %>.%
283306
pca(., scale = TRUE) -> penguins_pca
307+
# Résumé de l'objet pca
284308
summary(penguins_pca)
285309
#### ATTENTION: Hint suivant = solution !####
286310
```
@@ -289,39 +313,106 @@ summary(penguins_pca)
289313
penguins %>.%
290314
select(., 3:6) %>.%
291315
pca(., scale = TRUE) -> penguins_pca
316+
# Résumé de l'objet pca
292317
summary(penguins_pca)
293318
```
294319

295320
```{r pca_h2-check}
296-
grade_code("Ce graphique est très intéressant pour visualiser les corrélations entre les différentes variables numériques. Par défaut, la fonction utilise la méthode de Pearson qui met en avant les corrélations linéaires.")
321+
grade_code("La fonction summary() sur un objet `pca` permet de prendre connaissance de la distribution des variances entre les différents composantes principales dans le premier tableau. Il permet aussi de connaitre l’importante des variables initiales sur les axes de l’ACP grâce au second tableau. Prenez le temps de lire ce tableau pour répondre à la question suivante.")
297322
```
298323

324+
299325
```{r variante_quiz}
300326
question("Quelle est la proportion cumulée de la variance des deux premières composantes principales de cette analyse en composante principale ?",
301327
answer("0.686"),
302328
answer("0.0922"),
303329
answer("0.881", correct = TRUE),
304330
allow_retry = TRUE,
305-
correct = "C'est exact ! La variance cumulée des deux premiers axes correspond à 0.881. Ces deux premiers axes proposent une bonne part de la variance.",
331+
correct = "C'est exact ! La variance cumulée des deux premiers axes correspond à 0.881. Ces deux premiers axes proposent une bonne part de la variance. La première composante comprend plus de 0.69% de la variance.",
306332
incorrect = "La proportion de la variance et la proportion de la variance cumulée se trouve dans le tableau `Importance of components`."
307333
)
308334
```
309335

310-
```{r, eval=FALSE, echo = TRUE}
336+
### Graphique des éboulis
337+
338+
Réalisez un graphique des éboulis sur l'objet `penguins_pca` que vous avez réalisé précédemment.
339+
340+
```{r scree_h2, exercise=TRUE}
341+
chart$___(___)
342+
```
343+
344+
```{r scree_h2-hint-1}
345+
chart$___(penguins_pca)
346+
#### ATTENTION: Hint suivant = solution !####
347+
```
348+
349+
```{r scree_h2-solution}
311350
chart$scree(penguins_pca)
351+
```
352+
```{r scree_h2-check}
353+
grade_code("Vous venez de réaliser le graphique des éboulis associé à votre analyse en composantes principales. Ce graphique permet de voir la part de variance exprimée par chaque composante principale.")
354+
```
355+
356+
### Représentation des variables dans l'espace
357+
358+
Réalisez un graphique permettant de visualiser les variables dans l'espace selon les 2 premières composantes principales.
359+
360+
```{r loadings_h2, exercise=TRUE}
361+
chart$___(___ , choices = c(___, ___))
362+
```
363+
364+
```{r loadings_h2-hint-1}
365+
chart$___(penguins_pca, choices = c(___, ___))
366+
#### ATTENTION: Hint suivant = solution !####
367+
```
368+
369+
```{r loadings_h2-solution}
312370
chart$loadings(penguins_pca, choices = c(1, 2))
313-
chart$scores(penguins_pca, choices = c(1, 2))
371+
```
372+
373+
```{r loadings_h2-check}
374+
grade_code("Ce graphique permet de visualiser l'importance des variables grâce aux vecteurs. Ce graphique est indispensable pour interpréter le graphique suivant qui répartit les observations sur le plan formé pour la première et la seconde composante principale. Les vecteurs qui pointent dans la même direction sont corrélées comme la longueur de la nageoire et la masse des manchots. Les vecteurs qui pointent dans le sens opposé sont inversément corrélés. Les vecteurs orthogonaux ne sont pas corrélées comme la hauteur du bec des manchots et leurs masses.")
375+
```
376+
377+
### Représentation des individus dans l'espace
378+
379+
Réalisez un graphique permettant de visualiser les individus dans l'espace selon les 2 premières composantes principales. Ajoutez les trois espèces via les labels. Ajoutez en plus des ellipses de confiance à 95% pour discerner les trois espèces.
314380

315-
chart$scores(peng_pca, choices = c(1, 2), labels = peng$species) +
381+
```{r scores_h2, exercise=TRUE}
382+
chart$___(___, choices = c(___, ___), labels = penguins$species) +
383+
___()
384+
```
385+
386+
```{r scores_h2-hint-1}
387+
chart$___(penguins_pca, choices = c(___, ___), labels = penguins$species) +
316388
stat_ellipse()
389+
#### ATTENTION: Hint suivant = solution !####
390+
```
317391

318-
chart$scores(peng_pca, choices = c(2, 3), labels = peng$species) +
392+
```{r scores_h2-solution}
393+
chart$scores(penguins_pca, choices = c(1, 2), labels = penguins$species) +
319394
stat_ellipse()
320395
```
321396

397+
```{r scores_h2-check}
398+
grade_code("Ce graphique peut s'interpréter grâce au graphique précédent qui proposait une clé de lecture de graphique que vous venez de réaliser. Les manchôts `Chinstrap` ont des becs plus long que les manchots `Adelie`. Les manchots `Gentoo` sont plus gros que les manchots `Adelie` et `Chinstrap`.")
399+
```
400+
322401

323402
## Interprétation de l'ACP
324403

404+
L'analyse en composantes principales a permis de séparer les 3 espèces de manchots grâce à 4 variables numériques (masse, longueur des nageoires, longueur du bec, hauteur du bec). L'interprétation d'une ACP n'est pas simple à réaliser. Il faut pouvoir utiliser tous les graphiques et les tableaux réalisés durant ce tutoriel afin d'interpréter judicieusement votre ACP. L'objectif de cette étude était de dissocier les 3 espèces de manchots.
405+
406+
Les deux premières composantes principales comprennent plus de 80% de la variance. La masse et la longueur de la nageoire sont les variables les plus influentes de la première composante principale. La seconde composante principale est influencée par la longueur du bec et la hauteur du bec des manchots.
407+
408+
```{r}
409+
a <- chart$loadings(penguins_pca, choices = c(1, 2))
410+
b <- chart$scores(penguins_pca, choices = c(1, 2), labels = penguins$species) +
411+
stat_ellipse()
412+
combine_charts(list(a,b))
413+
```
414+
415+
Les manchots Papou (`Gentoo`) sont des manchots plus lourd et avec une longueur de nageoire plus importante que les manchots Adélie (`Adelie`) et les manchots à jugulaire (`Chinstrap`). Les manchots à jugulaire ont un bec plus long. Ce qui permet de les dissocier des manchots Adélie.
325416

326417
## Conclusion
327418

0 commit comments

Comments
 (0)