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
Copy file name to clipboardExpand all lines: inst/tutorials/B01La_reg_lin/B01La_reg_lin.Rmd
+52-17Lines changed: 52 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -15,8 +15,7 @@ runtime: shiny_prerendered
15
15
```{r setup, include=FALSE}
16
16
BioDataScience2::learnr_setup()
17
17
SciViews::R("model", lang = "fr")
18
-
# Ajout temporaire
19
-
library(tabularise)
18
+
20
19
# crabs
21
20
crabs <- read("crabs", package = "MASS")
22
21
@@ -54,7 +53,7 @@ Ce tutoriel sur la régression linéaire débute par un rappel sur la corrélati
54
53
55
54
- Paramétrer l'équation d'une régression linéaire.
56
55
57
-
## Biométrie des crabes
56
+
## Biométrie de crabes
58
57
59
58
Cinq mesures morphologiques ont été étudiées sur 200 crabes. On retrouve quatre groupes composés de 50 individus, soit des crabes bleu mâles et femelles et des crabes orange mâles et femelles.
La fonction `skimr::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.
65
+
La fonction `skimr::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 avec `?MASS:crabs`.
67
66
68
-
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`).
67
+
Réalisez une matrice de corrélation avec le coefficient de corrélation de Pearson sur ce jeu de données. 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`).
69
68
70
69
```{r corr1_h3, exercise=TRUE, exercise.lines=3}
71
70
crabs_corr <- correlation(sselect(___, ___:___),
@@ -113,18 +112,25 @@ question("Quelles sont les combinaisons de variables les plus corrélées ? (sé
113
112
try_again_button = "Resoumettre une réponse")
114
113
```
115
114
116
-
*L'analyse de la corrélation est utile comme première approche afin de déterminer si une régression linéaire est intéressantes av ec nos données.*
115
+
*L'analyse de la corrélation est utile comme première approche afin de déterminer si une régression linéaire est intéressante avec nos données.*
117
116
118
117
<!-- PhG: je ne comprend pas du tout pourquoi on fait de la corrélation sur crabs, et puis on passe à la régression sur bull. C'est décousu et cela n'a aucun sens. Comment les étudiants penvent comprendre la logique d'une analyse autour d'une régression linéaire sur base de problèmes aussi peu construits !!!- -->
119
118
119
+
<!-- J'essaie de faire une petite explication quand même pour justifier ceci... -->
120
+
121
+
Nous pourrions effectuer différentes régressions linéaires sur ce jeu de données, mais nous proposons dans la section suivante de travailler plutôt avec d'autres données que vous n'avez encore jamais rencontrées auparavant pour rendre l'exercice plus proche de la réalité pratique.
122
+
120
123
## Taureaux reproducteurs
121
124
125
+
L'association wallonne de l'élevage dispose de plusieurs centres d'insémination. Elle possède un recensement des différents taureaux reproducteurs. Vous avez à votre disposition le jeu de données `bull` qui comprend les variables suivantes :
122
126
123
-
L'association wallonne de l'élevage dispose de plusieurs centres d'insémination. Elle possède 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)`.
127
+
`r paste0("<code>", names(bull), "</code>")`
124
128
125
-
Elle souhaite que vous réalisiez une régression linéaire de la masse en fonction de l'âge. Elle vous demande de vous intéressez uniquement aux individus de moins de 40 mois.
129
+
Votre objectif sera de réaliser une régression linéaire de la masse des taureaux (mesurée en kg) en fonction de leur âge (en mois).
126
130
127
-
Débutez votre analyse par réaliser un nuage de point de la masse en fonction de l'âge des taureaux.
131
+
#### Description des données
132
+
133
+
Toute analyse commence par la description des données, surtout si elles sont nouvelles pour vous ! Commencez donc en réalisant un graphique en nuage de point de la masse en fonction de l'âge des taureaux.
grade_code("Bravo ! Vous avez réalisé le nuage de points souhaité.")
154
+
grade_code("Vous avez réalisé le nuage de points souhaité.")
155
+
```
156
+
157
+
Le plus important ici à noter est la forme du nuage de points. S'étire t'il en diagonale le long d'une droite ? C'est évidemment indispensable pour que les données conviennent à une régression linéaire. Vous pouvez aussi observer l'étalement des points, la présence de différents patchs qui suggèreraient peut-être l'existence de sous-populations, ou encore les valeurs extrêmes qui vous pousseraient à investiguer plus à fond (individus abberants, erreurs de mesure ou d'encodage des données, par exemple). Dans notre cas, le nuage de point s'étire linéairement et il n'y a pas d'autres problèmes détectés.
158
+
159
+
Vous complétez la description des données avec un tableau général via `skimr::skim()` et par une matrice de corrélation entre les trois variables quantitatives présentes :
160
+
161
+
```{r, echo=TRUE}
162
+
skimr::skim(bull)
149
163
```
150
164
151
-
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. *Souvenez-vous que `tabularise()` est une nouvelle fonction qui permet de réaliser un tableau propre des résultats (nous l'avons découvert dans le learnr précédent).*
165
+
Le tableau contient deux variables qualitatives et trois variables quantitatives avec `r nrow(bull)` taureaux qui ont été mesurés et il n'y a pas de valeurs manquantes. La quantité de données disponibles est acceptable pour une régression linéaire. Les distributions de l'âge et de la masse montrent qu'il y a plus de données pour les faibles valeurs, la distribution dans la plage d'âges étudiée -entre 13 et 40 mois- n'est pas homogène, mais sans que cela ne soit dramatique (cela se voit aussi sur le graphique, plus haut, avec comparativement un peu moins de données pour des âges de 30 à 40 mois).
166
+
167
+
```{r, echo=TRUE}
168
+
correlation(num_vars(bull)) |>
169
+
tabularise()
170
+
```
171
+
172
+
Toutes les corrélations sont positives et élevées. La corrélation entre la masse et l'âge est la plus forte.
173
+
174
+
*Souvenez-vous que `tabularise()` est une nouvelle fonction qui permet de réaliser un tableau propre des résultats (nous l'avons découvert dans le learnr précédent).*
175
+
176
+
#### Modèle de la masse des taureaux en fonction de leur âge
177
+
178
+
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 de nos taureaux.
grade_code("Vous avez réalisé votre première régression linéaire. Analysez le tableau issu de ce modèle et répondez aux questions qui suivent.")
212
+
grade_code("Vous avez réalisé votre première régression linéaire. Analysez le tableau et le graphique issus de ce modèle et répondez aux questions qui suivent.")
178
213
```
179
214
180
215
Suite à votre analyse, répondez aux questions suivantes :
@@ -190,7 +225,7 @@ quiz(
190
225
answer(sprintf("%.2f", lm_result$statistic[2])),
191
226
answer(sprintf("%.2f", lm_param$r.squared[1])),
192
227
allow_retry = TRUE, random_answer_order = TRUE,
193
-
correct = "Bien joué ! Vous savez analyser le tableau des résultats.",
228
+
correct = "Vous pouvez repérer des éléments clés dans le tableau des résultats.",
194
229
incorrect = "Oups, il semble que vous avez mal lu le tableau résumé de la régression linéaire.",
195
230
submit_button = "Soumettre une réponse",
196
231
try_again_button = "Resoumettre une réponse"),
@@ -207,7 +242,7 @@ quiz(
207
242
incorrect = "Ce n'est pas correct. Regardez plus attentivement vos résultats.",
208
243
submit_button = "Soumettre une réponse",
209
244
try_again_button = "Resoumettre une réponse"),
210
-
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% ?",
245
+
question(text = "Est ce que la valeur de l'ordonnée à l'origine est significativement différente de zéro au seuil alpha de 5% ?",
211
246
answer("oui", correct = TRUE),
212
247
answer("non"),
213
248
allow_retry = TRUE,
@@ -236,12 +271,12 @@ question(text = "Sélectionnez parmi les propositions suivantes l'équation para
236
271
allow_retry = TRUE,
237
272
submit_button = "Soumettre une réponse",
238
273
try_again_button = "Resoumettre une réponse",
239
-
correct = "Bien joué ! Maintenant que tu as montré ta capacité à choisir la bonne équation paramétrée du modèle. On te donne une astuce. La fonction equation() du package {tabularise} te permet d'obtenir une équation latex du modèle.")
274
+
correct = "Vous avez démontré votre capacité à choisir la bonne équation paramétrée du modèle dans la liste. Dans le learnr suivant, vous apprendrez à générer une telle équation.")
240
275
```
241
276
242
277
## Conclusion
243
278
244
-
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.
279
+
Votre auto-évaluation concernant la régression linéaire dans R (première partie) est terminée. Il est temps de revenir au syllabus et d'aborder la section relative à l'**Analyse des résidus** qui feront l'objet du prochain learnr et que vous retravaillerez encore avec des exercices pratiques tout au long du module et après.
0 commit comments