You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
L'Analyse Factorielle des Correspondances (AFC) est une variante de l'Analyse en Composantes Principales (ACP) qui permet de traiter les variables qualitatives. Ce tutoriel vous permettra de :
53
+
54
+
- Réaliser de manière guidée une AFC
55
+
56
+
- Effectuer les graphiques associés à cette analyse
57
+
58
+
- Vous préparez à interpréter par vous-même les résultats de vos AFC
59
+
60
+
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-2022/acp-afc.html) du cours et en particulier la [section 7.3](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2022/analyse-factorielle-des-correspondances.html).
61
+
62
+
## Les macroinvertébrés de la Loire (France)
63
+
64
+
La Loire est un cours d'eau qui prend sa source dans le Massif central pour se jeter dans l'atlantique proche de Nantes. On dénombre 38 stations de mesures couvrant plus de 800km du fleuve de la source jusqu'à 200 km de son embouchure.
labs(y = "Altitude [m]", x = "Distance à la source [km]") +
71
+
ggrepel::geom_label_repel()
72
+
```
73
+
74
+
Une chute rapide de l'altitude est observée de la source à 250km de cette dernière. Ensuite, la diminution est linéaire jusqu'à la dernière station située à 10 m d'altitude. On peut observer un saut de plus de 50 km et de 150m d'altitude entre la station 8 (Serre de la Fare) et la station 9 (Vorey).
75
+
76
+
Les chercheurs ont dénombré 40 espèces d'invertébrés présentées ci-dessous.
Proposez un graphique intéressant afin de visualiser les dénombrements des espèces réalisés par les chercheurs. Sélectionner les colonnes intéressantes à l'aide de leur position. Votre tableau se nomme `invert`.
grade_code("Ce graphique est peu lisible. Il y a des stations ou la même espèce a été observée plus de 200 fois. Il va falloir appliquer une transformation sur les données.")
123
+
```
124
+
125
+
Le graphique précédent nous permet d'observer de grandes disparités entre les espèces. Vous allez devoir appliquer une modification mathématique afin de transformer les observations et de réduire les écarts entre les observations. Votre tableau comprend 41 colonnes dont la première est caractère. Il n'est donc pas possible de réaliser l'instruction suivante : DF \<- log1p(DF). Il n'est pas question d'écrire un `smutate()` avec 41 fois DF \<- smutate(DF, varx = log1p(varx),...). Il est possible de le faire bien plus simplement en utilisant par exemple `across()` au sein de la fonction `smutate()`. La fonction `across()` requiert les colonnes d'intérêt que vous pouvez spécifier par leur position. Un exemple pourrait être DF \<- smutate(DF, across(1:15, log)).
126
+
127
+
Vous avez à présent toutes les connaissances afin de transformer vos variables numériques avec la fonction `log1p()` et puis d'afficher le même graphique que précédemment.
TODO: ce tutoriel doit encore être écrit. Vous devez probablement penser à installer une version plus récente du package qui contient les exercices finalisés !
grade_code("Vous venez d'ajouter à votre liste de fonction utile, la fonction across. N'hésitez pas à consulter la page d'aide de cette fonction. La transformation log+1 fut très efficace afin de réduire les écarts entre les observations. On observe par exemple que *Hydropsyche contubernalis* (E26) et Hydropsyche exocellata (E28) sont des espèces présentes dans de très nombreuses stations.")
170
+
```
171
+
172
+
## AFC
173
+
174
+
Calculez à présent votre AFC avec la fonction `ca()` et nommez votre objet `invert_ca`. La variable `Station` ne doit pas être employée dans l'AFC. Nous vous proposons de débuter par retirer la variable Station et la placer comme nom des lignes du tableau invert2 avec la fonction `column_to_rownames()`. Consultez la page d'aide de cette fonction afin d'en connaitre les arguments.
175
+
176
+
```{r ca_h3, exercise = TRUE}
177
+
# Conversion de la colonne Station en nom de lignes
178
+
invert2 <- ___(___, var = ___)
179
+
# Calcul de l'AFC
180
+
___ <- ___(___)
181
+
# Affichage du résumé
182
+
summary(___, rows = FALSE, columns = FALSE)
183
+
```
184
+
185
+
```{r ca_h3-hint-1}
186
+
# Conversion de la colonne Station en nom de lignes
187
+
invert2 <- ___(invert2, var = "")
188
+
# Calcul de l'AFC
189
+
___ <- ___(invert2)
190
+
# Affichage du résumé
191
+
summary(___, rows = FALSE, columns = FALSE)
192
+
```
193
+
194
+
```{r ca_h3-hint-2}
195
+
# Conversion de la colonne Station en nom de lignes
196
+
invert2 <- column_to_rownames(invert2, var = "Station")
197
+
# Calcul de l'AFC
198
+
___ <- ___(invert2)
199
+
# Affichage du résumé
200
+
summary(____, rows = FALSE, columns = FALSE)
201
+
202
+
#### ATTENTION: Hint suivant = solution !####
203
+
```
204
+
205
+
```{r ca_h3-solution}
206
+
## Solutions
207
+
# Conversion de la colonne Station en nom de lignes
208
+
invert2 <- column_to_rownames(invert2, var = "Station")
209
+
# Calcul de l'AFC
210
+
invert_ca <- ca(invert2)
211
+
# Affichage du résumé
212
+
summary(invert_ca, rows = FALSE, columns = FALSE)
213
+
```
214
+
215
+
```{r ca_h3-check}
216
+
grade_code("La fonction column_to_rownames() a son inverse qui est rownames_to_column(). Ajoutez ces deux fonctions à votre boite à outils des fonctions utiles. Concernant le résumé de votre AFC, notez que les deux premières dimensions ne capture que 31 % de la Variabilité totale.")
217
+
```
218
+
219
+
Réalisez à présent le graphique des éboulis et la carte (biplot) de votre objet `invert_ca`
grade_code("La part de la variance exprimée par l'AFC est faible avec à peine plus de 30%. On peut néanmoins observer des éléments intéressants. Nous observons la forme typique du fer à cheval lors de la réalisation d'un transect. Certaines espèces de trichoptères comme *Agapetus delicatulus*, *Philopotamus montanus* ou encore *Plectrocnemia geniculata*, et de coléoptère comme *Limnius perrisi* ou *Esolus angustatus* sont plus présente dans les stations de plus haute altitude (S1-S3).")
247
+
```
248
+
249
+
## Conclusion
250
+
251
+
Cette AFC nous a permis d'y voir plus clair entre les différentes stations et les espèces qui y vivent. Sans rien connaître sur ces espèces, nous avons pu mettre en évidence une certaine tendance.
252
+
253
+
Maintenant que vous avez compris la logique, que vous maitriser les méthodes pour de préparer vos données et que vous êtes capable d'écrire le code permettant de réaliser une AFC, vous pouvez appliquer cette technique par vous-même (assignation GitHub dans le cours).
254
+
255
+
```{r comm_noscore, echo=FALSE}
256
+
question_text(
257
+
"Laissez-nous vos impressions sur cet outil pédagogique",
258
+
answer("", TRUE, message = "Pas de commentaires... C'est bien aussi."),
0 commit comments