Skip to content

Commit 76f4cfe

Browse files
committed
Learnrs **B08La_mfa** and **B08Lb_bigd** revised for 2023-2024
1 parent 23e5d44 commit 76f4cfe

File tree

5 files changed

+340
-337
lines changed

5 files changed

+340
-337
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: BioDataScience2
2-
Version: 2023.7.0
2+
Version: 2023.8.0
33
Title: A Series of Learnr Documents for Biological Data Science 2
44
Description: Interactive documents using learnr for studying biological data science (second course).
55
Authors@R: c(

NEWS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# BioDataScience2 2023.8.0
2+
3+
- Learnrs **B08La_mfa** and **B08Lb_bigd** revised for 2023-2024.
4+
15
# BioDataScience2 2023.7.0
26

37
- Learnrs **B07La_pca** and **B07Lb_ca** revised for 2023-2024.

inst/tutorials/B08La_mfa/B08La_mfa.Rmd.inactive renamed to inst/tutorials/B08La_mfa/B08La_mfa.Rmd

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ runtime: shiny_prerendered
1313

1414
```{r setup, include=FALSE}
1515
BioDataScience2::learnr_setup()
16-
SciViews::R("explore")
16+
SciViews::R("explore", lang = "fr")
1717
```
1818

1919
```{r, echo=FALSE}
@@ -28,17 +28,17 @@ BioDataScience2::learnr_server(input, output, session)
2828

2929
## Objectifs
3030

31-
L'Analyse Factorielle Multiple (AFM) est une méthode statistique exploratoire qui permet de travailler avec plusieurs tableaux de données. Cette méthode permet également de faire le lien entre l'analyse en composantes principales (ACP) et l'Analyse factorielle des correspondances (AFC). La première méthode permet de travailler uniquement sur des variables quantitatives et la seconde uniquement sur des variables qualitatives. L'AFM est capable de traiter les deux types de variables simultanément. Cette méthode est par exemple employée en écologie. Sur une station un ensemble de mesures physico-chimiques peuvent être réalisée ainsi qu'un relevé de la faune et/ou de la flore.
31+
L'Analyse Factorielle Multiple (AFM) est une méthode statistique exploratoire qui permet de travailler avec plusieurs tableaux de données. Cette méthode permet également de faire le lien entre l'analyse en composantes principales (ACP) et l'Analyse factorielle des correspondances (AFC). La première méthode permet de travailler uniquement sur des variables quantitatives et la seconde uniquement sur des variables qualitatives. L'AFM est capable de traiter les deux types de variables simultanément. Cette méthode est par exemple employée en écologie. Sur une station un ensemble de mesures physico-chimiques peuvent être réalisées ainsi qu'un relevé de la faune et/ou de la flore.
3232

3333
Il est donc utile de comprendre la logique et l'usage de cette analyse. Ce tutoriel vous permettra de :
3434

3535
- Réaliser de manière guidée une AFM
3636

37-
- Effectuer les graphiques associées à cette analyse
37+
- Effectuer les graphiques liés à cette analyse
3838

3939
- Vous préparer à interpréter par vous-même les résultats de vos AFM
4040

41-
Avant toute chose, assurez vous d'avoir bien compris le contenu de la [section 8.1](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2022/analyse-factorielle-multiple-afm.html) du cours de SDD II.
41+
Avant toute chose, assurez vous d'avoir bien compris le contenu de la [section 8.1](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2023/analyse-factorielle-multiple-afm.html) du cours de SDD II.
4242

4343
## Étude de composition floristique
4444

@@ -65,36 +65,36 @@ Les 24 sites sélectionnés pour cette étude sont situés dans le nord de la Fi
6565
| **Humdepth** | épaisseur de la couche d'humus | cm |
6666
| **pH** | pH du sol | \- |
6767

68-
Ces données sont disponible depuis `varechem` dans le package {vegan} et nous en réaliserons un tableau nommé `envir`.
68+
Ces données sont disponibles depuis `varechem` dans le package {vegan} et nous en réaliserons un tableau nommé `envir`.
6969

7070
```{r, echo=TRUE}
7171
read("varechem", package = "vegan") %>.%
72-
srename(., station = .rownames) %->%
72+
srename(., station = .rownames) ->
7373
envir
7474
head(envir)
7575
```
7676

77-
Les scientifiques ont également réalisé un relevé floristique (en excluant *Pinus sylvestris* du relevé). On y observe une couverture en pourcentage pour chaque station de chacune des 44 espèces étudiées. Ces données sont également disponible depuis `varespec` dans le package {vegan} que nous lirons dans la variable `spec`.
77+
Les scientifiques ont également réalisé un relevé floristique (en excluant *Pinus sylvestris* du relevé). On y observe une couverture en pourcentage pour chaque station de chacune des 44 espèces étudiées. Ces données sont disponibles depuis `varespec` dans le package {vegan} que nous lirons dans la variable `spec`.
7878

7979
```{r, echo=TRUE}
8080
read("varespec", package = "vegan") %>.%
81-
srename(., station = .rownames) %->%
81+
srename(., station = .rownames) ->
8282
spec
8383
head(spec)
8484
```
8585

86-
Les données mises à disposition proviennent de l'étude suivante [Väre, H., Ohtonen, R. and Oksanen, J. (1995) Effects of reindeer grazing on understorey vegetation in dry Pinus sylvestris forests. Journal of Vegetation Science 6, 523--530](https://www.researchgate.net/publication/227830523_Effects_of_reindeer_grazing_on_vegetation_in_dry_Pinus_sylvestris_forests).
86+
Les données mises à disposition proviennent de l'étude suivante [Väre, H., Ohtonen, R. and Oksanen, J. (1995) Effects of reindeer grazing on understorey vegetation in dry *Pinus sylvestris* forests. Journal of Vegetation Science 6, 523--530](https://www.researchgate.net/publication/227830523_Effects_of_reindeer_grazing_on_vegetation_in_dry_Pinus_sylvestris_forests).
8787

8888
## Préparation du tableau de données
8989

9090
La première étape consiste dans la réalisation d'un tableau de données unique. Vous allez donc combiner le tableau `envir` avec le tableau `spec` en un seul objet nommé `vare` en spécifiant la colonne similaire entre ces deux tableaux qui est la variable `station` et qui servira de point de référence à la fusion. Affichez ensuite les premières lignes du tableau `vare` avec la fonction `head()`.
9191

9292
```{r join}
9393
read("varechem", package = "vegan") %>.%
94-
srename(., station = .rownames) %->%
94+
srename(., station = .rownames) ->
9595
envir
9696
read("varespec", package = "vegan") %>.%
97-
srename(., station = .rownames) %->%
97+
srename(., station = .rownames) ->
9898
spec
9999
```
100100

@@ -124,10 +124,10 @@ Il va encore falloir convertir la variable `station` en nom de ligne grâce à l
124124

125125
```{r rowname}
126126
read("varechem", package = "vegan") %>.%
127-
srename(., station = .rownames) %->%
127+
srename(., station = .rownames) ->
128128
envir
129129
read("varespec", package = "vegan") %>.%
130-
srename(., station = .rownames) %->%
130+
srename(., station = .rownames) ->
131131
spec
132132
133133
vare <- sleft_join(envir , spec, by = "station")
@@ -155,7 +155,7 @@ rownames(vare)
155155
```
156156

157157
```{r rowname_h2-check}
158-
grade_code("Bravo ! Vous venez de convertir la colonne station en nom de lignes. Cette astuce peut être utile dans certain cas. Il y a également la fonction opposée `rownames_to_column()`. Tout est prêt pour réaliser l'AFM à présent.")
158+
grade_code("Bravo ! Vous venez de convertir la colonne station en nom de lignes. Cette astuce peut être utile dans certain cas. Il y a également la fonction inverse `rownames_to_column()`. Tout est prêt pour réaliser l'AFM à présent.")
159159
```
160160

161161
## Réalisation de l'AFM
@@ -164,28 +164,28 @@ L'AFM peut s'obtenir grâce à la fonction `mfa()`. Cette dernière requiert l'u
164164

165165
1. Le nombre **n** de colonnes constituant le groupe
166166
2. Le type des variables qui composent le groupe. Vous avez quatre possibilités :
167-
- **std** : Ce sont des variables quantitatives que l'on souhaite standardiser et les traiter par une ACP.
167+
- **std** : variables quantitatives que l'on souhaite standardiser et traiter par une ACP
168168

169-
- **num** : Ce sont des variables quantitatives continues que l'on ne souhaite pas standardiser et les traiter par une ACP.
169+
- **num** : variables quantitatives continues que l'on ne souhaite traiter par une ACP sans les standardiser
170170

171-
- **fact** : Ce sont des variables qualitatives facteurs associées à des tableaux de contingences qu'on traite par une AFC.
171+
- **fact** : variables qualitatives facteurs associées à des tableaux de contingences qu'on traite par une AFC
172172

173-
- **cnt** : Ce sont des variables quantitatives de type dénombrements qu'on traite par une AFC.
173+
- **cnt** : variables quantitatives de type dénombrements qu'on traite par une AFC
174174
3. Le nom à donner au groupe
175175

176176
Le tableau `vare` est composé de quatorze variables associées à des mesures physico-chimiques et 44 variables liées à des relevés floristiques. Votre formule doit comprendre les éléments suivants pour que votre analyse soit la plus proche possible de celle que les auteurs ont réalisée dans la publication :
177177

178178
- Le premier bloc doit se nommer **physico**, être traité par une ACP et les variables doivent être standardisées.
179179
- Le second bloc doit se nommer **flore**, être traité par une ACP et les variables ne doivent pas être standardisées.
180180

181-
Réalisez l'AFM demandée en utilisant le tableau `vare` puis affichez un résume de l'objet `vare_mfa` obtenu avec la fonction `summary()`
181+
Réalisez l'AFM demandée en utilisant le tableau `vare` puis affichez un résumé de l'objet `vare_mfa` obtenu avec la fonction `summary()`
182182

183183
```{r varemfa}
184184
read("varechem", package = "vegan") %>.%
185-
srename(., station = .rownames) %->%
185+
srename(., station = .rownames) ->
186186
envir
187187
read("varespec", package = "vegan") %>.%
188-
srename(., station = .rownames) %->%
188+
srename(., station = .rownames) ->
189189
spec
190190
vare <- sleft_join(envir , spec, by = "station")
191191
vare <- column_to_rownames(vare, var = "station")
@@ -215,7 +215,7 @@ summary(vare_mfa)
215215
```
216216

217217
```{r mfa_h3-check}
218-
grade_code("Le résumé de votre analyse est complexe. Intéressez-vous tout particulièrement à la part de variance de chaque axe. Ces informations vous seront utile pour répondre à la question suivante.")
218+
grade_code("Le résumé de votre analyse est complexe. Intéressez-vous en premier lieu à la part de variance représentée sur chaque axe. Cette information vous sera utile pour répondre à la question suivante.")
219219
```
220220

221221
```{r variance_quiz}
@@ -224,21 +224,21 @@ question("Quelle est la proportion de la variance cumulée sur les deux premiers
224224
answer("23%"),
225225
answer("34%"),
226226
correct = "Bien joué ! Les deux premiers axes de l'AFM expriment 58% de la variance. Gardez à l'esprit que cette valeur est assez faible. Il serait aussi intéressant de considérer les trois premiers axes qui expriment 68% de la variance totale.",
227-
incorrect = "Oups, ce n'est pas la bonne réponse. Afin de trouver la bonne réponse, intéressez-vous au tableau `Eigenvalues`",
227+
incorrect = "Oups, ce n'est pas la bonne réponse. Afin de trouver la bonne réponse, relisez le tableau `Eigenvalues` de votre analyse",
228228
allow_retry = TRUE
229229
)
230230
```
231231

232232
### Graphique des éboulis
233233

234-
Réalisez un graphique des éboulis sur l'objet `vare_mfa` que vous avez réalisé précédemment.
234+
Réalisez un graphique des éboulis sur l'objet `vare_mfa` que vous avez créé plus haut.
235235

236236
```{r vare_mfa}
237237
read("varechem", package = "vegan") %>.%
238-
srename(., station = .rownames) %->%
238+
srename(., station = .rownames) ->
239239
envir
240240
read("varespec", package = "vegan") %>.%
241-
srename(., station = .rownames) %->%
241+
srename(., station = .rownames) ->
242242
spec
243243
244244
vare <- sleft_join(envir , spec, by = "station")
@@ -263,7 +263,7 @@ chart$scree(vare_mfa)
263263
```
264264

265265
```{r scree_h2-check}
266-
grade_code("Ce graphique des éboulis permet de voir la part de variance exprimée sur chaque composante principale. Nous voyons bien que le premier axe reprend une très grande part de variance. On observe après un saut p pour le troisième axe est une diminution progressive de la variance exprimée sur les axes suivants.")
266+
grade_code("Ce graphique des éboulis permet de visualiser la part de variance exprimée sur chaque composante principale. Nous voyons bien que le premier axe reprend une très grande part de variance. On observe un saut pour le troisième axe et une diminution progressive de la variance exprimée sur les axes suivants.")
267267
```
268268

269269
### Représentation des variables
@@ -286,7 +286,7 @@ chart$loadings(vare_mfa, choices = c(1, 2))
286286
```
287287

288288
```{r loadings_h2-check}
289-
grade_code("Ce graphique est assez chargé car il combine les vecteurs du groupe \"physico\" et du groupe \"flore\". Il s'analyse comme pour une ACP via la visualisation de l'importance des variables intiales dans le plan de l'AFM sous forme de vecteurs. Il est indispensable pour interpréter le graphique suivant qui répartit les observations dans le même plan. La norme (longueur) du vecteur indique si la variable est bien représentée dans ce plan ou non. Plus la norme du vecteur se rapproche de un, matérialisé par le cercle, mieux c'est. Celles aux normes trop faibles ne sont pas considérées dans l'analyse, pour ce plan-là en tous cas. Ensuite, les variables qui pointent dans la même direction sont corrélées positivement. Les variables qui pointent dans le sens opposé sont inversément corrélées. Les vecteurs orthogonaux correspondent à des variables non ou très faiblement corrélées entre elles.")
289+
grade_code("Ce graphique est assez chargé car il combine les vecteurs du groupe \"physico\" et du groupe \"flore\". Il s'analyse comme pour une ACP via la visualisation de l'importance des variables intiales dans le plan de l'AFM sous forme de vecteurs. Il est indispensable pour interpréter le graphique suivant qui répartit les observations dans le même plan. La norme (longueur) du vecteur indique si la variable est bien représentée dans ce plan ou non. Plus la norme du vecteur se rapproche de l'unité, matérialisée par le cercle, mieux c'est. Les vecteurs aux normes trop faibles ne sont pas considérés dans l'analyse, pour ce plan-là en tous cas. Ensuite, les variables qui pointent dans la même direction sont corrélées positivement. Les variables qui pointent dans le sens opposé sont inversément corrélées. Les vecteurs orthogonaux correspondent à des variables non ou très faiblement corrélées entre elles.")
290290
```
291291

292292
### Représentation des plans des ACP
@@ -309,7 +309,7 @@ chart$axes(vare_mfa, choices = c(1, 2))
309309
```
310310

311311
```{r axes_h2-check}
312-
grade_code("Ce graphique est similaire au précédent. Il s'interprète de la même façon. Cependant, on ne s'intéresse plus à la projection de chaque variable initiale mais des plans des ACP pour chaque groupe de variables. La première dimension du groupe \"flore\" pointe dans la même direction que la seconde dimension du groupe \"physico\". Il y a donc un forte corrélation entre ces deux plans. On obtient le même résultat pour le premier axe de \"physico\" et du second axe de \"flore\". Les normes des vecteurs sont proche de 1 pour chacune des ACP. Les deux ACP sont représentées correctement dans l'AFM.")
312+
grade_code("Ce graphique est similaire au précédent. Il s'interprète de la même façon. Cependant, on ne s'intéresse plus à la projection de chaque variable initiale mais des plans des ACP pour chaque groupe de variables. La première dimension du groupe \"flore\" pointe dans la même direction que la seconde dimension du groupe \"physico\". Il y a donc un forte corrélation entre ces deux plans. On obtient le même résultat pour le premier axe de \"physico\" et du second axe de \"flore\". Les normes des vecteurs sont proche de un pour chacune des ACP. Les deux ACP sont représentées correctement dans l'AFM.")
313313
```
314314

315315
### Représentation des individus
@@ -332,19 +332,19 @@ chart$scores(vare_mfa, choices = c(1, 2))
332332
```
333333

334334
```{r scores_h2-check}
335-
grade_code("La forme du nuage de points et surtout des clusters sont à rechercher ici. Nous pouvons voir par exemple un regroupement des stations 5, 6 et 7. On retrouve également un groupe particulier composé des stations 2, 3, 4, 9, 10, 11 et 12. Attention, les numéros des stations ne sont pas ici une indication de la proximité des stations.")
335+
grade_code("La forme du nuage de points et la présence de différents groupes sont à observer ici. Nous pouvons voir, par exemple, un regroupement des stations 5, 6 et 7. On retrouve également un groupe particulier composé des stations 2, 3, 4, 9, 10, 11 et 12. Attention, les numéros des stations ne sont pas ici une indication de leur proximité les unes des autres.")
336336
```
337337

338338
## Interprétation de l'AFM
339339

340-
La représentation des variables ainsi que la représentation de stations sont deux graphiques complémentaires afin d'interpréter l'AFM. Gardez à l'esprit que la part de variance exprimée par les deux premiers axes reste relativement faible avec 58%.
340+
La représentation des variables ainsi que la représentation de stations sont deux graphiques complémentaires qui permettent d'interpréter l'AFM. Gardez à l'esprit que la part de variance exprimée par les deux premiers axes reste relativement faible avec 58%.
341341

342342
```{r}
343343
read("varechem", package = "vegan") %>.%
344-
srename(., station = .rownames) %->%
344+
srename(., station = .rownames) ->
345345
envir
346346
read("varespec", package = "vegan") %>.%
347-
srename(., station = .rownames) %->%
347+
srename(., station = .rownames) ->
348348
spec
349349
350350
vare <- sleft_join(envir , spec, by = "station")
@@ -359,9 +359,9 @@ chart$scores(vare_mfa, choices = c(1, 2))
359359
chart$loadings(vare_mfa, choices = c(1, 2))
360360
```
361361

362-
Les stations 2, 3, 4, 9, 10, 11 et 12 sont des stations particulières qui ne sont pas des zones de pâturages. On retrouve dans ces stations une dominance de *Cladina stellaris* alors que cet espèce est très peu présente dans les zones de pâturages. Les zones de pâturages sont caractérisée par une haute concentration en azote. Les stations 5, 6 et 7 sont des zones de pâturages avec une forte teneur en azote et une présence massive de *Cladina arbuscala*.
362+
Les stations 2, 3, 4, 9, 10, 11 et 12 sont des stations particulières qui ne sont pas des zones de pâturages. On retrouve dans ces stations une dominance de *Cladina stellaris* alors que cette espèce est très peu présente dans les zones de pâturages. Les zones de pâturages sont caractérisées par une haute concentration en azote. Les stations 5, 6 et 7 sont des zones de pâturages avec une forte teneur en azote et une présence massive de *Cladina arbuscala*.
363363

364-
Nous n'irons pas plus loin dans l'interprétation de cette AFM et vous laissons la possibilité de lire la publication liée à cette étude. Les scientifiques ont réalisé une NMDS en fait, pas une AFM, mais les résultats obtenus sont assez proches.
364+
Nous n'irons pas plus loin dans l'interprétation de cette AFM et vous laissons la possibilité de lire la publication liée à cette étude. Les scientifiques ont réalisé une NMDS en fait, pas une AFM, mais les résultats obtenus sont assez proches. Nous étudierons la MDS et la NMDS dans le module suivant du cours.
365365

366366
## Conclusion
367367

0 commit comments

Comments
 (0)