Skip to content

Commit ed28f19

Browse files
committed
B01La_reg_lin revised
1 parent cbee740 commit ed28f19

File tree

3 files changed

+1284
-19
lines changed

3 files changed

+1284
-19
lines changed

inst/tutorials/B00La_refresh/B00La_refresh.Rmd

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ runtime: shiny_prerendered
1515
```{r setup, include=FALSE}
1616
BioDataScience2::learnr_setup()
1717
SciViews::R("model", "infer", lang = "fr")
18-
#ajout temporaire
19-
library(tabularise)
18+
2019
# datasets
2120
## crabs
2221
crabs <- read("crabs", package = "MASS")

inst/tutorials/B01La_reg_lin/B01La_reg_lin.Rmd

Lines changed: 52 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ runtime: shiny_prerendered
1515
```{r setup, include=FALSE}
1616
BioDataScience2::learnr_setup()
1717
SciViews::R("model", lang = "fr")
18-
# Ajout temporaire
19-
library(tabularise)
18+
2019
# crabs
2120
crabs <- read("crabs", package = "MASS")
2221
@@ -54,7 +53,7 @@ Ce tutoriel sur la régression linéaire débute par un rappel sur la corrélati
5453

5554
- Paramétrer l'équation d'une régression linéaire.
5655

57-
## Biométrie des crabes
56+
## Biométrie de crabes
5857

5958
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.
6059

@@ -63,9 +62,9 @@ crabs <- read("crabs", package = "MASS")
6362
skimr::skim(crabs)
6463
```
6564

66-
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`.
6766

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`).
6968

7069
```{r corr1_h3, exercise=TRUE, exercise.lines=3}
7170
crabs_corr <- correlation(sselect(___, ___:___),
@@ -113,18 +112,25 @@ question("Quelles sont les combinaisons de variables les plus corrélées ? (sé
113112
try_again_button = "Resoumettre une réponse")
114113
```
115114

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.*
117116

118117
<!-- 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 !!!- -->
119118

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+
120123
## Taureaux reproducteurs
121124

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 :
122126

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>")`
124128

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).
126130

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.
128134

129135
```{r bull_np_h2, exercise=TRUE}
130136
chart(data = ___, ___ ___ ___) +
@@ -145,36 +151,65 @@ chart(data = bull, weight ~ age) +
145151
```
146152

147153
```{r bull_np_h2-check}
148-
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)
149163
```
150164

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.
152179

153180
```{r bull_lm_h2, exercise=TRUE, exercise.lines=2}
154181
bull_lm <- lm(data = ___, ___ ~ ___)
182+
# Tableau résumé de la régression linéaire
155183
summary(___) |>
156184
tabularise()
185+
# Graphique de la régression
186+
___(___)
157187
```
158188

159189
```{r bull_lm_h2-hint-1}
160-
161190
bull_lm <- lm(data = ___, ___ ~ age)
191+
# Tableau résumé de la régression linéaire
162192
summary(___) |>
163193
tabularise()
194+
# Graphique de la régression
195+
chart(___)
164196
165197
#### ATTENTION: Hint suivant = solution !####
166198
```
167199

168200
```{r bull_lm_h2-solution}
169201
## Solution ##
170202
bull_lm <- lm(data = bull, weight ~ age)
203+
# Tableau résumé de la régression linéaire
171204
summary(bull_lm) |>
172205
tabularise()
206+
# Graphique de la régression
207+
chart(bull_lm)
173208
```
174209

175210
```{r bull_lm_h2-check}
176211
177-
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.")
178213
```
179214

180215
Suite à votre analyse, répondez aux questions suivantes :
@@ -190,7 +225,7 @@ quiz(
190225
answer(sprintf("%.2f", lm_result$statistic[2])),
191226
answer(sprintf("%.2f", lm_param$r.squared[1])),
192227
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.",
194229
incorrect = "Oups, il semble que vous avez mal lu le tableau résumé de la régression linéaire.",
195230
submit_button = "Soumettre une réponse",
196231
try_again_button = "Resoumettre une réponse"),
@@ -207,7 +242,7 @@ quiz(
207242
incorrect = "Ce n'est pas correct. Regardez plus attentivement vos résultats.",
208243
submit_button = "Soumettre une réponse",
209244
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% ?",
211246
answer("oui", correct = TRUE),
212247
answer("non"),
213248
allow_retry = TRUE,
@@ -236,12 +271,12 @@ question(text = "Sélectionnez parmi les propositions suivantes l'équation para
236271
allow_retry = TRUE,
237272
submit_button = "Soumettre une réponse",
238273
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.")
240275
```
241276

242277
## Conclusion
243278

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.
245280

246281
```{r comm_noscore, echo=FALSE}
247282
question_text(

0 commit comments

Comments
 (0)