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
Ce tutoriel s'intéresse à la régression linéaire. Il débute par un rappel sur la corrélation et les corrélogrammes. Cette matière est détaillée dans le module 12 de [science des données I](https://wp.sciviews.org/sdd-umons). Les objectifs de ce tutoriel sont :
49
+
32
50
- Revoir la corrélation et les indices de Pearson et Spearman
33
51
34
52
- Maîtriser la régression linéaire dans R, en particulier la fonction `lm()`.
35
53
36
-
## Corrélation
37
-
38
-
```{r correlation-init}
39
-
set.seed(43)
40
-
min <- 5
41
-
max <- 15
42
-
43
-
df <- dtx(
44
-
x = seq(from = min, to = max, by = 0.25),
45
-
y = x*2 + rnorm(length(x), sd = 0.5),
46
-
z = 2^x + rnorm(length(x), sd = 50),
47
-
a = sin(x) + rnorm(length(x), sd = 0.25),
48
-
id = paste0("A", 1:length(x))
49
-
)
50
-
```
54
+
## Biométrie des crabes
51
55
52
-
Vous avez à disposition le jeu de données `df` qui comprend les `r length(names(df))` variables suivantes : `r names(df)`.
56
+
Cinq mesures morphologiques ont été étudiées sur 200 crabes. On retrouve quatre groupes composés de 50 individus. On retrouve les crabes bleu mâles et femelles et les crabes orange mâles et femelles.
53
57
54
-
```{r}
55
-
summary(df)
58
+
```{r, echo = TRUE}
59
+
crabs <- read("crabs", package = "MASS")
60
+
skimr::skim(crabs)
56
61
```
57
62
58
-
- Réalisez une matrice de corrélation avec l'indice de Pearson.
63
+
La fonction `skim()` vous permet d'obtenir de nombreuses informations sur le tableau `crabs`. N'hésitez pas à consulter la page d'aide du jeu de données pour en apprendre davantage.
59
64
60
-
```{r correlation-prep}
61
-
set.seed(43)
62
-
min <- 5
63
-
max <- 15
65
+
C'est à vous de jouer ! Réalisez une matrice de corrélation avec l'indice de Pearson. N'utilisez que les variables pertinentes. Sélectionnez ces variables sur base de leur nom. Affichez un corrélogramme avec la partie supérieure uniquement (`upper`).
64
66
65
-
df <- dtx(
66
-
x = seq(from = min, to = max, by = 0.25),
67
-
y = x*2 + rnorm(length(x), sd = 0.5),
68
-
z = 2^x + rnorm(length(x), sd = 50),
69
-
a = sin(x) + rnorm(length(x), sd = 0.25),
70
-
id = paste0("A", 1:length(x))
71
-
)
72
-
73
-
#correlation(df[1:4])
74
-
#correlation(df[1:4], method = "spearman")
75
-
```
76
-
77
-
💬 *Un snippet peut vous aider à réaliser cet exercice.*
correlation(DF[, INDEX_EXPRESSION], use = "complete.obs", method = "pearson")
86
-
73
+
crabs_corr <- correlation(sselect(___, ___:___), use = "complete.obs", method = "pearson")
74
+
plot(crabs_corr, type = ___)
87
75
# Relisez le chapitre 12 du livre science des données 1 <https://wp.sciviewg/sdd-umons/>
88
76
```
89
77
90
78
```{r corr1_h3-hint-2}
91
-
correlation(df[, ___:___], use = "complete.obs", method = "pearson")
92
-
79
+
correlation(sselect(crabs, ___:___), use = "complete.obs", method = "pearson")
80
+
plot(crabs_corr, type = "upper")
93
81
#### ATTENTION: Hint suivant = solution !####
94
82
```
95
83
96
84
```{r corr1_h3-solution}
97
85
## Solution ##
98
-
correlation(df[, 1:4], use = "complete.obs", method = "pearson")
86
+
crabs_corr <- correlation(sselect(crabs, front:depth), use = "complete.obs", method = "pearson")
87
+
plot(crabs_corr, type = "upper")
99
88
```
100
89
101
90
```{r corr1_h3-check}
102
-
grade_code("Vous avez compris comment réaliser une matrice de corrélation.")
91
+
grade_code("Vous avez compris comment réaliser une matrice de corrélation et un corrélogramme. Présenter une matrice de corrélation sous la forme d'un graphique, c'est quand même plus convivial.")
103
92
```
104
93
105
94
Répondez à la question ci-dessous.
106
95
107
-
```{r qu_corr1}
108
-
question("Quelles sont les combinaisons de variables les plus corrélées ?",
109
-
answer("x-y", correct = TRUE),
110
-
answer("x-z"),
111
-
answer("x-a"),
112
-
answer("y-z"),
113
-
answer("y-a"),
114
-
answer("z-a"),
115
-
allow_retry = TRUE, random_answer_order = TRUE)
96
+
```{r qu_corr}
97
+
question("Quelles sont les combinaisons de variables les plus corrélées ? (sélectionnez donc les deux variables)",
98
+
answer("front", correct = TRUE),
99
+
answer("width"),
100
+
answer("depth", correct = TRUE),
101
+
answer("rear"),
102
+
answer("lenght"),
103
+
type = "multiple",
104
+
allow_retry = TRUE, random_answer_order = TRUE,
105
+
submit_button = "Soumettre une réponse",
106
+
try_again_button = "Resoumettre une réponse")
116
107
```
117
108
118
-
- Réalisez une matrice de corrélation avec la méthode de Spearman.
119
-
120
-
💬 **Un snippet peut vous aider à réaliser cet exercice.**
correlation(___[, ___:___], use = ___, method = ___)
124
-
```
111
+
L'association wallonne de l'élevage dispose de plusieurs centres d'insémination. Ils ont un recensement des différents taureaux reproducteurs. Vous avez à votre disposition le jeu de données `bull` qui comprend les variables suivantes : `r names(bull)`. Il souhaite que vous réalisiez une régression linéaire de la masse en fonction de l'âge. Il vous demande de vous intéressez uniquement au plus individus de moins de 40 mois.
___(correlation(___[,___:___], use = ___, method = ___), ___ = ___)
170
-
```
171
-
172
-
```{r corr3_h3-hint-1}
173
-
plot(correlation(___[,___:___], use = ___, method = ___), type = ____)
174
-
```
175
-
176
-
```{r corr3_h3-hint-2}
177
-
plot(correlation(___[,___:____], use = ___, method = ___), type = "upper")
127
+
```{r bull_np_h2-solution}
128
+
chart(data = bull, weight ~ age) +
129
+
geom_point()
178
130
179
131
#### ATTENTION: Hint suivant = solution !####
180
132
```
181
133
182
-
```{r corr3_h3-solution}
183
-
plot(correlation(df[, 2:4], use = "complete.obs", method = "pearson"), type = "upper")
184
-
```
185
-
186
-
```{r corr3_h3-check}
187
-
grade_code("Présenter une matrice de corrélation sous la forme d'un graphique, c'est quand même plus convivial.")
188
-
```
189
-
190
-
## Régression linéaire
191
-
192
-
```{r reglin1_init}
193
-
set.seed(42)
194
-
x <- seq(from = 5, to = 15, by = 0.25)
195
-
a <- x * 1.0 + 3 + rnorm(sd = 0.5, n = length(x))
196
-
b <- x * 1.1 + 3 + rnorm(sd = 0.5, n = length(x))
197
-
c <- x * 1.2 + 3 + rnorm(sd = 0.5, n = length(x))
198
-
area <- as.factor(rep(c("a", "b", "c"), each = length(x)))
199
-
200
-
maize <- dtx(
201
-
x = c(x, x, x),
202
-
value = c(a, b, c),
203
-
area = area
204
-
)
205
-
206
-
lm_reg <- lm(data = maize, value ~ x)
207
-
208
-
lm_param <- glance(lm_reg)
209
-
lm_result <- tidy(lm_reg)
210
-
```
211
-
212
-
Réalisez la régression linéaire de `value` en fonction de `x` sur le jeu de données `maize` (des données dont il n'est pas important de connaître l'origine ni la signification pour l'exercice, et mesurées sur des plans de maïs). Le graphique en nuage de points permet de visualiser les données.
213
-
214
-
```{r}
215
-
chart(data = maize, value ~ x) +
216
-
geom_point()
217
-
```
218
-
219
-
```{r reglin1-prep}
220
-
set.seed(42)
221
-
x <- seq(from = 5, to = 15, by = 0.25)
222
-
a <- x * 1.0 + 3 + rnorm(sd = 0.5, n = length(x))
223
-
b <- x * 1.1 + 3 + rnorm(sd = 0.5, n = length(x))
224
-
c <- x * 1.2 + 3 + rnorm(sd = 0.5, n = length(x))
225
-
area <- as.factor(rep(c("a", "b", "c"), each = length(x)))
226
-
227
-
maize <- dtx(
228
-
x = c(x, x, x),
229
-
value = c(a, b, c),
230
-
area = area
231
-
)
134
+
```{r bull_np_h2-check}
135
+
grade_code("Bravo ! Vous avez réalisez le nuage de points souhaité.")
232
136
```
233
137
234
-
💬 **Un snippet peut vous aider à réaliser cet exercice.**
138
+
Complétez à présent les instructions ci-dessous afin de réaliser une régression linéaire de la masse en fonction de l'âge.
correct = "Bien joué ! Vous savez analyser le tableau des résultats.",
187
+
incorrect = "Oups, il semble que vous avez mal lu le tableau résumé de la régression linéaire.",
188
+
submit_button = "Soumettre une réponse",
189
+
try_again_button = "Resoumettre une réponse"),
278
190
question(text = "Est ce que la valeur de l'ordonnée à l'origne est significativement différente de zéro au seuil alpha de 5% ?",
279
191
answer("oui", correct = TRUE),
280
192
answer("non"),
281
-
allow_retry = TRUE),
193
+
allow_retry = TRUE,
194
+
submit_button = "Soumettre une réponse",
195
+
try_again_button = "Resoumettre une réponse"),
282
196
question(
283
197
text = "Est ce que la valeur de la pente est significativement différente de zéro au seuil alpha de 5% ?",
284
198
answer("oui", correct = TRUE),
285
199
answer("non"),
286
-
allow_retry = TRUE)
200
+
allow_retry = TRUE,
201
+
submit_button = "Soumettre une réponse",
202
+
try_again_button = "Resoumettre une réponse")
287
203
)
288
204
```
289
205
290
206
## Conclusion
291
207
292
-
Votre auto-évaluation concernant la régression linéaires dans R (première partie) arrive à son terme. Il est temps de revenir au syllabus et de poursuivre vers des exercices pratiques maintenant.
208
+
Votre auto-évaluation concernant la régression linéaire dans R (première partie) arrive à son terme. Il est temps de revenir au syllabus et de poursuivre vers des exercices pratiques maintenant.
0 commit comments