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 sur la régression linéaire 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/?iframe=wp.sciviews.org/sdd-umons-2022/correlation.html). Les objectifs de ce tutoriel sont :
48
+
Ce tutoriel sur la régression linéaire 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/?iframe=wp.sciviews.org/sdd-umons-2023/correlation.html). Les objectifs de ce tutoriel sont :
49
49
50
50
- Revoir la corrélation et les indices de Pearson et Spearman
51
51
52
-
-Maîtriser la régression linéaire dans R, en particulier la fonction `lm()`.
52
+
-Découvrir la régression linéaire dans R, en particulier la fonction `lm()`.
53
53
54
54
<!-- TODO: paramétriser un modèle, c'est super-important! -->
55
55
56
56
## Biométrie des crabes
57
57
58
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.
59
59
60
-
```{r, echo = TRUE}
60
+
```{r, echo=TRUE}
61
61
crabs <- read("crabs", package = "MASS")
62
62
skimr::skim(crabs)
63
63
```
@@ -94,7 +94,7 @@ plot(crabs_corr, type = "upper")
94
94
```
95
95
96
96
```{r corr1_h3-check}
97
-
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.")
97
+
grade_code("Vous vous rappelez 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.")
98
98
```
99
99
100
100
Répondez à la question ci-dessous.
@@ -112,13 +112,17 @@ question("Quelles sont les combinaisons de variables les plus corrélées ? (sé
112
112
try_again_button = "Resoumettre une réponse")
113
113
```
114
114
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éressantes av ec nos données.*
116
+
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 !!!- -->
118
+
115
119
## Taureaux reproducteurs
116
120
117
-
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.
121
+
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)`. 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.
118
122
119
123
Débutez votre analyse par réaliser un 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é.")
141
145
```
142
146
143
-
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.
147
+
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).*
- Utiliser la fonction `lm()`afin d'obtenir un modèle de régression linéaire simple.
42
+
- Utiliser la fonction `lm()`pour obtenir un modèle de régression linéaire simple
39
43
40
-
- Étudier le résumé du modèle linéaire
44
+
- Étudier le résumé et le graphique du modèle linéaire
41
45
42
-
- Être capable de réaliser une analyse des résidus
46
+
- Paramétriser l'équation de la régression linéaire
47
+
48
+
- Découvrir l'analyse des résidus du modèle
43
49
44
50
## Description des données
45
51
46
-
Des scientifiques s'intéressent à deux variétés de riz cultivées en Turquie. Ils ont l'objectif de mettre en place un outil capable sur base d'analyse d'image de classer des grains de riz.
52
+
Des ingénieurs agronomes s'intéressent à deux variétés de riz cultivées en Turquie. Ils ont pour objectif de mettre en place un outil capable, sur base d'analyse d'image, de classer des grains de riz. Les dimensions mesurées sur les images ne sont pas calibrées et sont exprimées en pixels. Nous rajoutons cette information dans `rice`.
units = list(area = "pixels²", major_axis_length = "pixels")
59
+
)
50
60
```
51
61
52
-
Vous avez à disposition le tableau `rice`qui comprend les variables suivantes `r names(rice)`. Consultez la page d'aide afin d'en apprendre davantage.
62
+
Vous avez à disposition le tableau `rice`constitué des variables suivantes `r names(rice)`. Consultez la page d'aide avec `?BioDataScience2::rice` afin d'en apprendre davantage.
53
63
54
-
Votre objectif est de réaliser une régression linéaire de la variable `area` sur à la variable `major_axis_length`. Vous devrez ensuite analyser le résumé de cette régression et utilser les outils de diagnostic des résidus.
64
+
Votre objectif est de réaliser une régression linéaire de la variable `area` sur à la variable `major_axis_length`. Vous devrez ensuite analyser le résumé de cette régression et utiliser les outils de diagnostic des résidus.
55
65
56
-
Débutez cette analyse par proposer un nuage de point de la variable `area` en fonction de la variable `major_axis_length`.
66
+
Débutez cette analyse en réalisant un nuage de point de la variable `area` en fonction de la variable `major_axis_length` pour voir comment se présentent les données.
grade_code("Bien joué ! Vous avez réalisé un nuage de points afin de visualiser vos données avant de modéliser. C'est une bonne habitude à prendre.")
86
+
grade_code("Ce graphique en nuage de points est un pré-requis indispensable pour visualiser vos données avant de modéliser. C'est une bonne habitude à prendre que de l'étudier systématiquement avant de faire un régression. Vous noterez que le nuage de point s'étire le long d'une droite... C'est plutôt bon signe, non ?")
87
+
```
88
+
89
+
Nous pouvons continuer la description des données avec une matrice de corrélation de Pearson :
Nous voyons que `area` est raisonnablement bien corrélé à `major_axis_length`, même si ce n'est pas la corrélation la plus forte. Ensuite une description générale des données, notamment pour voir comment elles se répartissent et s'il y a des valeurs manquantes, complète notre description du jeu de données.
97
+
98
+
```{r, echo=TRUE}
99
+
skimr::skim(rice)
100
+
```
101
+
102
+
79
103
## Modélisation
80
104
81
105
Réalisez à présent la régression linéaire demandée de la variable `area` en fonction de la variable `major_axis_length`du tableau `rice`.
82
106
83
-
```{r rice_lm_h2, exercise = TRUE}
107
+
```{r rice_lm_h2, exercise=TRUE}
84
108
rice_lm <- lm(data = ___, ___ ~ ___)
85
109
# Résumé de la régression linéaire
86
-
summary(___)
110
+
summary(___) |>
111
+
tabularise()
87
112
# Graphique de la régression
88
113
chart(___)
89
114
```
90
115
91
116
```{r rice_lm_h2-hint-1}
92
117
rice_lm <- lm(data = rice, ___ ~ ___)
93
118
# Résumé de la régression linéaire
94
-
summary(rice_lm)
119
+
summary(rice_lm) |>
120
+
tabularise()
95
121
# Graphique de la régression
96
122
chart(rice_lm)
97
123
@@ -102,13 +128,14 @@ chart(rice_lm)
102
128
## Solution ##
103
129
rice_lm <- lm(data = rice, area ~ major_axis_length)
grade_code("Vous avez calculé votre objet `lm_rice`. Vous l'avez résumé et représenté graphiquement. Vous avez du matériel à examiner pour déterminer si cette régression tient la route.")
112
139
```
113
140
114
141
```{r qu_lm}
@@ -122,7 +149,7 @@ quiz(
122
149
answer(sprintf("%.2f", lm_result$statistic[2])),
123
150
answer(sprintf("%.2f", lm_param$r.squared[1])),
124
151
allow_retry = TRUE, random_answer_order = TRUE,
125
-
correct = "Bien joué ! Vous savez analyser le tableau des résultats.",
152
+
correct = "Vous semblez comprendre ce qu'il y a dans le tableau des résultats.",
126
153
incorrect = "Oups, il semble que vous avez mal lu le tableau résumé de la régression linéaire.",
127
154
submit_button = "Soumettre une réponse",
128
155
try_again_button = "Resoumettre une réponse"),
@@ -135,21 +162,39 @@ quiz(
135
162
answer(sprintf("%.2f", lm_result$statistic[2])),
136
163
answer(sprintf("%.2f", lm_param$r.squared[1])),
137
164
allow_retry = TRUE, random_answer_order = TRUE,
138
-
correct = "Bien joué ! Vous savez analyser le tableau des résultats.",
165
+
correct = "Vous avez repéré les valeurs estimées des deux paramètres du modèle, pente et ordonnée à l'origine. Un aspect très important est la paramétrisation du modèle.",
139
166
incorrect = "Oups, il semble que vous avez mal lu le tableau résumé de la régression linéaire.",
140
167
submit_button = "Soumettre une réponse",
141
168
try_again_button = "Resoumettre une réponse")
142
169
)
143
170
```
144
171
172
+
### Paramétrisation du modèle
173
+
174
+
Une fois que vous avez les estimateurs des différents paramètres de votre modèle, vous pouvez placer ces valeurs dans son équation. Cette étape importante se nomme la **paramétrisation** du modèle. Dans la SciViews Box 2023, vous avez des outils pour vous y aider. La fonction `eq__()` extrait l'équation du modèle et son argument `use_coefs = TRUE` indique de remplacer les paramètres par les valeurs estimées. Ainsi, pour obtenir cette équation, vous pouvez écrire un chunk en ligne `` `r eq__(rice_lm, use_coefs = TRUE)` `` à l'intérieur de balises Markdown d'équation dite "display" (équation sur sa propre ligne, hors texte, par opposition à l'équation "inline", directement dans le texte). Cela s'écrit comme suit :
175
+
176
+
- à une nouvelle ligne, vous entrez deux dollars `$$`, c'est la balise Markdown d'entrée d'une équation
177
+
- à la ligne suivante, vous écrivez le chunk en ligne `` `r eq__(...)` `` qui viendra placer le contenu de l'équation calculé par R lors du rendu du document
178
+
- à la troisième ligne, vous fermer le balisage d'équation à nouveau avec deux dollars `$$` et prenez soin d'encader le tout par deux lignes vide (une au dessus de la balise d'entrée, et une au dessous de la balise de sortie)
Notez que vous contrôlez le nombre de chiffres derrière la virgule pour chaque estimation à l'aide de l'argument supplémentaire `coef_digits =` qui accepte un entier (même nombre de chiffres derrière la virgule pour tous les estimateurs), ou un vecteur d'entiers pour varier la précision de chaque estimateur successif. Notez aussi que `eq__()` ne remplace pas encore les noms des variables par les labels. L'équation ci-dessus a été obtenue à l'aide de `` `r eq__(rice_lm, use_coefs = TRUE, coef_digits = c(0, 2))` ``.
187
+
188
+
Maintenant que les aspects techniques sont expliqués, concentrez-vous sur cette équation *Comparez le modèle paramétrisé avec son équation générale qui est présentée dans le tableau résumé plus haut. Assurez-vous d'avoir bien compris la logique de la paramétrisation pour passer de l'un à l'autre avant de passer à la suite.*
189
+
145
190
## Analyse des résidus
146
191
147
-
Vous avez à votre disposition l'objet `rice_lm` que vous avez réalisé précédemment. Proposez quatre graphiques afin d'étudier la distribution des résidus, le graphique quantile-quantile des résidus, la position et l'échelle des résidus et la distance de Cook des résidus.
192
+
Vous avez à votre disposition l'objet `rice_lm` que vous avez créé précédemment. Construisez quatre graphiques afin d'étudier (1) la distribution générale des résidus, (2) le graphique quantile-quantile des résidus, (3) la position et l'échelle des résidus et (4) la distance de Cook des résidus.
148
193
149
-
```{r resid_h2, exercise = TRUE}
150
-
# distribution des résidus
194
+
```{r resid_h2, exercise=TRUE}
195
+
# Distribution des résidus
151
196
chart$___(___)
152
-
# graphique quantile-quantile
197
+
# Graphique quantile-quantile
153
198
chart$___(___)
154
199
# Position et échelle des résidus
155
200
chart$___(___)
@@ -158,16 +203,25 @@ chart$___(___)
158
203
```
159
204
160
205
```{r resid_h2-hint-1}
161
-
# Consultez la page d'aide `modelit::chart.lm()`
206
+
# Consultez la page d'aide `?modelit::chart.lm`
207
+
208
+
# Distribution des résidus
209
+
chart$___(___)
210
+
# Graphique quantile-quantile
211
+
chart$___(___)
212
+
# Position et échelle des résidus
213
+
chart$___(___)
214
+
# Distance de Cook
215
+
chart$___(___)
162
216
163
217
#### ATTENTION: Hint suivant = solution !####
164
218
```
165
219
166
220
```{r resid_h2-solution}
167
221
## Solution ##
168
-
# distribution des résidus
222
+
# Distribution des résidus
169
223
chart$resfitted(rice_lm)
170
-
# graphique quantile-quantile
224
+
# Graphique quantile-quantile
171
225
chart$qqplot(rice_lm)
172
226
# Position et echelle des résidus
173
227
chart$scalelocation(rice_lm)
@@ -176,7 +230,7 @@ chart$cooksd(rice_lm)
176
230
```
177
231
178
232
```{r resid_h2-check}
179
-
grade_code("Bravo ! Vous avez réalisé les quatres graphiques les plus courants de l'analyse des résidus. Saurez-vous à présent répondre à la question suivante.")
233
+
grade_code("Ce sont les quatre graphiques les plus courants de l'analyse des résidus. Êtes-vous capable à présent de répondre à la question qui suit ?")
180
234
```
181
235
182
236
```{r qu_resid}
@@ -195,7 +249,7 @@ question("Sélectionnez parmi les éléments suivants les affirmations vraies.",
195
249
196
250
## Conclusion
197
251
198
-
Vous progressez dans votre apprentissage. Vous êtes à présent capable de réaliser une régression linéaire dans R, d'étudier le résumé de l'objet créé et d'analyser les résidus en lien avec cette régression.
252
+
Vous progressez dans votre apprentissage. Vous venez de découvrir comment réaliser une régression linéaire simple dans R, d'en produire un tableau résumé et une visualisation graphique. Vous avez abordé la paramétrisation de l'équation du modèle et vous avez entrepris une première approche de l'analyse des résidus du modèle.
0 commit comments