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
- Appréhender la classification hiérarchique et le dendrogramme.
40
39
41
-
- Maîtriser l'utilisation de la fonction `hclust`.
40
+
- Maîtriser l'utilisation de la fonction `hclust`.
42
41
43
42
- Être capable d’effectuer un regroupement pertinent des individus d’un jeu de données multivarié à l’aide de ces techniques.
44
43
45
44
Vous devez avoir étudié le contenu du [module 5](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2020/hierarchique.html) du cours.
46
45
47
-
## Abondance d'espèces de poissons
46
+
## Communautés piscicoles de rivière
48
47
49
-
Des scientifiques ont réalisé des mesures d'abondance d'espèces de poissons et des mesures physico-chimiques sur 30 stations différentes.
48
+
L'abondance de diverses espèces de poissons, ainsi que les conditions physico-chimiques associées sont mesurées sur 30 stations différentes le long du Doubs, une rivière qui s'écoule en Suisse et en France.
50
49
51
-
L'objet `doubs` du package `ade4` est une liste qui contient 4 jeux de donnnées. Dans un premier temps, vous allez vous intéresser aux données sur l'abondance de 27 espèces de poissons sur les 30 sites. Ces données, présentent dans l'objet `fish`, sont présentées ci-dessous.
50
+
Dans un premier temps, vous allez vous intéresser aux données sur l'abondance de 27 espèces de poissons sur les 30 sites (dans `fish`).
52
51
53
52
```{r}
54
53
head(fish)
@@ -57,26 +56,26 @@ head(fish)
57
56
### Choix de l'indice
58
57
59
58
```{r qu_indice1}
60
-
question("À partir des données du tableau présenté ci-dessus, vous souhaitez réaliser un matrice de distance avec l'indice le plus adapté. Quel indice choississez vous ? (plusieurs réponses peuvent être sélectionnés)",
61
-
answer("Indice de Bray-Curtis", correct = TRUE),
62
-
answer("Indice de Canberra", correct = TRUE),
63
-
answer("Distance Euclidienne"),
64
-
answer("Indice de Manhattan"),
65
-
allow_retry = TRUE, random_answer_order = TRUE)
59
+
question("À partir des données du tableau présenté ci-dessus, vous souhaitez réaliser un matrice de distance avec l'indice le plus adapté. Quel indice pourriez-vous choisir ? (plusieurs réponses peuvent être sélectionnés)",
60
+
answer("Indice de Bray-Curtis", correct = TRUE),
61
+
answer("Indice de Canberra", correct = TRUE),
62
+
answer("Distance Euclidienne"),
63
+
answer("Indice de Manhattan"),
64
+
allow_retry = TRUE, random_answer_order = TRUE)
66
65
```
67
66
68
67
### Indice de Bray-Curtis
69
68
70
-
A partir des données contenues dans`fish`, calculez la matrice de distances en utilisant l'indice de Bray_Curtis utilisé par défaut dans la fonction `vegdist()`.
69
+
A partir du jeu de données`fish`, calculez la matrice de distances en utilisant l'indice de Bray-Curtis utilisé par défaut dans la fonction `vegdist()`.
71
70
72
-
```{r bray_h2, exercise = TRUE}
73
-
fish_dist <- <- ___(___)
71
+
```{r bray_h2, exercise=TRUE}
72
+
fish_dist <- ___(___)
74
73
# Afficher la matrice de distances arrondie à 2 décimales
75
74
___(___, ___)
76
75
```
77
76
78
77
```{r bray_h2-hint-1}
79
-
enviro_dist <- vegan::vegdist(DF)
78
+
fish_dist <- vegan::vegdist(DF)
80
79
# Afficher la matrice de distances arrondie à 2 décimales
81
80
round(OBJECT_DIST, ___)
82
81
@@ -90,21 +89,21 @@ round(fish_dist, 2)
90
89
```
91
90
92
91
```{r bray_h2-check}
93
-
grade_code("Bravo ! Vous venez de réaliser votre première matrice de distances. Savez-vous qu'il existe d'autres indices ? Vous pouvez facilement changer de methode de calcul en utilisant l'argument `method =` de la fonction `vegdist()` en précisant entre guillements l'indice que vous souhaitez utiliser ("canberra" pour l'indice de Canberra, "euclidean" pour la distance Euclidienne et "manhattan" pour la distance de Manhattan.)")
92
+
grade_code("Vous venez de réaliser votre première matrice de distances. L'argument `method =` de la fonction `vegdist()` précise la métrique utilisée : \"canberra\" pour l'indice de Canberra, \"euclidean\" pour la distance Euclidienne et \"manhattan\" pour la distance de Manhattan.")
94
93
```
95
94
96
95
### Indice de Canberra
97
96
98
-
A partir des données contenues dans `fish`, calculez la matrice de distances en utilisant l'indice de Canberra pour l'argument `method =` dans la fonction `vegdist()`.
97
+
A partir des mêmes données dans `fish`, calculez la matrice de distances en utilisant cette fois l'indice de Canberra.
99
98
100
-
```{r canberra_h2, exercise = TRUE}
101
-
fish_dist <- <- ___(___, ___)
99
+
```{r canberra_h2, exercise=TRUE}
100
+
fish_dist <- ___(___, ___)
102
101
# Afficher la matrice de distances arrondie à 2 décimales
103
102
___(___, ___)
104
103
```
105
104
106
105
```{r canberra_h2-hint-1}
107
-
enviro_dist <- vegan::vegdist(DF, method = ___)
106
+
fish_dist <- vegan::vegdist(DF, method = ___)
108
107
# Afficher la matrice de distances arrondie à 2 décimales
109
108
round(OBJECT_DIST, ___)
110
109
@@ -118,26 +117,24 @@ round(fish_dist, 2)
118
117
```
119
118
120
119
```{r canberra_h2-check}
121
-
grade_code("Facile non ! Notez aussi que les matrices de distances ne sont pas prévues pour être imprimées et visualisées telles quelles. Ils constituent la première étape vers une représentation utile à l’aide de la classification hiérarchisée. Réprésentation qui sera abordée un peu plus loin dans ce learnr !")
120
+
grade_code("Rappelez-vous que ces matrices de distances ne sont pas prévues pour être imprimées et visualisées telles quelles. Elles constituent la première étape vers une représentation utile, par exemple, un dendrogramme obtenu par classification hiérarchique ascendante.")
122
121
```
123
122
124
123
## Données environnementales
125
124
126
-
En plus des données sur l'abondance de 27 espèces de poisson, l'objet `doubs` du package `ade4` contient également les données portant sur les mesures environnementales. Le tableau présenté ci-dessous comprend 30 sites d'échantillonages avec 11 mesures environnementales.
127
-
128
-
Voici une courte description des variables étudiées (en anglais). Ces informations proviennent de la page d'aide `?ade4::doubs`
125
+
En plus des données sur l'abondance de 27 espèces de poissons, les données environnementales sont à votre disposition dans `enviro`. Onze mesures ont été réalisées sur chacune des 30 stations (voir `?ade4::doubs` pour plus de détails).
129
126
130
-
- dfs : distance from the source (km * 10),
131
-
- alt : altitude (m),
132
-
- slo : (log(x + 1) where x is the slope (per mil * 100),
133
-
- flo : minimum average stream flow (m3/s * 100),
134
-
-pH : pH,
135
-
- har : total hardness of water (mg/l of Calcium),
136
-
- pho : phosphates (mg/l * 100),
137
-
- nit : nitrates (mg/l * 100),
138
-
- amm : ammonia nitrogen (mg/l * 100),
139
-
- oxy : dissolved oxygen (mg/l * 10),
140
-
- bdo : biological demand for oxygen (mg/l * 10)
127
+
-**dfs\ :** distance depuis la source (km * 10),
128
+
-**alt\ :** altitude (m),
129
+
-**slo\ :** pente du sol de la rivière transformée en `log(x + 1)`,
130
+
-**flo\ :** flux moyen minimum (m^3^/s * 100),
131
+
-**pH\ :** pH de l'eau,
132
+
-**har\ :** dureté totale de l'eau (mg Ca^++^/L),
133
+
-**pho\ :** phosphates (mg/L * 100),
134
+
-**nit\ :** nitrates (mg/L * 100),
135
+
-**amm\ :** azote ammoniacal (mg/L * 100),
136
+
-**oxy\ :** oxygène dissout (mg/L * 10),
137
+
-**bdo\ :** demande biologique en oxygène (mg/L * 10)
141
138
142
139
```{r}
143
140
head(enviro)
@@ -146,12 +143,12 @@ head(enviro)
146
143
### Choix de l'indice
147
144
148
145
```{r qu_indice2}
149
-
question("Vous souhaitez réaliser un matrice de distances sur les données présentent dans ce tableau. Quels sont les indices le plus adapté.?",
150
-
answer("Indice de Bray-Curtis"),
151
-
answer("Indice de Canberra"),
152
-
answer("Distance Euclidienne", correct = TRUE),
153
-
answer("Indice de Manhattan", correct = TRUE),
154
-
allow_retry = TRUE, random_answer_order = TRUE)
146
+
question("Vous souhaitez réaliser un matrice de distances sur les données présentent dans ce tableau. Quels sont les indices les plus adaptés ?",
147
+
answer("Indice de Bray-Curtis"),
148
+
answer("Indice de Canberra"),
149
+
answer("Distance Euclidienne", correct = TRUE),
150
+
answer("Indice de Manhattan", correct = TRUE),
151
+
allow_retry = TRUE, random_answer_order = TRUE)
155
152
```
156
153
157
154
### Distance Euclidienne 1
@@ -179,35 +176,35 @@ round(enviro_dist, 2)
179
176
```
180
177
181
178
```{r euclidean1_h2-check}
182
-
grade_code("Très bien ! Mais les unités respectives de vos variables n'ont pas été considérées. L'altidude en (m) ou la concentration en nitrates (mg/l * 100), par exemple, ne sont pas mesurées dans les mêmes unités. Le risque est alors de donner plus de poids aux valeurs élevées. Il est donc préférable de commencer par standardiser le tableau (moyenne de zéro et écart type de un) selon les colonnes avant d’effectuer le calcul. La fonction `scale()` permet de le faire et c'est ce que vous allez réaliser dans l'exercice suivant.")
179
+
grade_code("Mais ici, nous n'avons pas tenu compte du fiat que les variables sont mesurées dans des unités différentes. Rappelez-vous toujours de standardiser d'abord ce genre de données (moyenne = 0, écart type = 1).")
183
180
```
184
181
185
182
### Distance Euclidienne 2
186
183
187
-
Calculez une nouvelle matrice de distances, mais cette fois après avoir standardisé les données avec la fonction `scale()`. Convertisser ensuite la matrice obtenue avec la fonction `as_tibble()` avant de procéder au calcul de la matrice de distances en utilisant la distance Euclidienne.
184
+
Calculez une nouvelle matrice de distances, mais cette fois après avoir standardisé les données avec la fonction `scale()`. Convertissez ensuite la matrice obtenue avec la fonction `as_tibble()` avant de procéder au calcul de la matrice de distances en utilisant la distance Euclidienne.
# Afficher la matrice de distances arrondie à 2 décimales
224
-
round(enviro_dist, 2)
220
+
# Afficher les premières valeurs de la matrice
221
+
head(enviro_dist)
225
222
```
226
223
227
224
```{r euclidean2_h2-check}
228
-
grade_code("Félicitiation, vous gérez vraiment bien les matrices de distances. Vous pourriez aussi essayer une autre méthode sur ces données standardisées comme la distance de Manhattan en utilisant `method = "manhattan"`.")
225
+
grade_code("Vous pourriez aussi essayer une autre méthode sur ces données standardisées comme la distance de Manhattan en utilisant `method = \"manhattan\"`.")
229
226
```
230
227
231
-
## Classification hiérarchique
228
+
## Classification hiérarchique
232
229
233
-
Maintenant que vous maitrisez le calcule des matrices de distances, vous pouvez obtenir facilement une matrice de distances entre toutes les paires de stations présentent dans le jeu de données `enviro`. Vous pouvez dès lors essayer de les regrouper en fonction de leur ressemblance.
234
-
Vous allez maintenant apprendre à représenter graphiquement ces regroupements en utilisant un **dendrogramme**.
230
+
Maintenant que vous pouvez calculer vos matrices de distances, passez à l'étape suivante et réalisez une classification hiérarchique ascendante, et puis un dendrogramme.
Réprésentez avec la fonction `plot()` le dendrogramme que vous venez de calculer dans l'exercice précédant. Matérialisez ensuite sur ce graphique une coupure en traçant un trait horizontal rouge avec la fonction `abline()` à une hauteur de 8. Vous avez à disposition l'objet `enviro_clust`.
303
+
Représentez avec la fonction `plot()` le dendrogramme que vous venez de calculer dans l'exercice précédant. Matérialisez ensuite sur ce graphique une coupure en traçant un trait horizontal rouge avec la fonction `abline()` à une hauteur de 8. Vous avez à disposition l'objet `enviro_clust`.
0 commit comments