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
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`.
53
+
@Cinar_Koklu_2019 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. Une copie de leurs données est disponible dans `rice` du package `BioDataScience2`. Les dimensions mesurées sur les images ne sont pas calibrées et sont exprimées en pixels. Nous rajoutons cette information dans notre jeu de données à l'aide de `labelise()`.
units = list(area = "pixels²", major_axis_length = "pixels")
59
+
units = list(area = "pixels^2", major_axis_length = "pixels")
61
60
)
62
61
```
63
62
64
-
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.
63
+
Vous avez à disposition le tableau `rice` constitué des variables suivantes :
65
64
66
-
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.
65
+
`r paste0("<code>", names(rice), "</code>")`
67
66
68
-
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.
67
+
Consultez la page d'aide avec `?BioDataScience2::rice` et la publication (référence en fin de document et dans la page d'aide) pour en apprendre davantage.
68
+
69
+
Votre objectif est de réaliser une régression linéaire de la variable `area` en fonction de `major_axis_length`, parce que vous soupçonnez cette relation d'être importante pour discriminer les deux variétés de riz plus tard. Vous devrez ensuite analyser le résumé de cette régression et utiliser les outils de diagnostic des résidus.
70
+
71
+
Débutez cette analyse en réalisant un nuage de point de `area` en fonction de `major_axis_length` pour voir comment se présentent les données.
69
72
70
73
```{r np_h2, exercise=TRUE}
71
74
chart(data = ___, ___ ~ ___) ___
@@ -101,6 +104,7 @@ Nous voyons que `area` est raisonnablement bien corrélé à `major_axis_length`
101
104
skimr::skim(rice)
102
105
```
103
106
107
+
Les distributions des deux variables sont univariées et les moyennes assez proches des médianes, ce qui est bon signe (symétrie). Il n'y a pas de données manquantes. Avec `r nrow(rice)`, nous avons un nombre bien suffisant de cas pour réaliser notre régression linéaire.
104
108
105
109
## Modélisation
106
110
@@ -137,7 +141,7 @@ chart(rice_lm)
137
141
```
138
142
139
143
```{r rice_lm_h2-check}
140
-
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.")
144
+
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. Avec un R^2 de 0.815, la régression est bonne, mais pouvez-vous repérer des éléments importants dans le tableau via le Quiz ci-dessous ?")
141
145
```
142
146
143
147
```{r qu_lm}
@@ -171,73 +175,96 @@ quiz(
171
175
)
172
176
```
173
177
174
-
### Paramétrisation du modèle
178
+
#### Paramétrisation du modèle
179
+
180
+
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.
181
+
182
+
##### Comment faire en pratique ?
175
183
176
-
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 :
184
+
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 :
177
185
178
-
- à une nouvelle ligne, vous entrez deux dollars `$$`, c'est la balise Markdown d'entrée d'une équation
186
+
- à une nouvelle ligne, vous entrez deux dollars `$$`, c'est la balise Markdown d'entrée d'une équation "display"
179
187
- à 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
180
-
- à 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 audessus de la balise d'entrée, et une audessous de la balise de sortie)
188
+
- à la troisième ligne, vous fermez le balisage d'équation à nouveau avec deux dollars `$$` et prenez soin d'encadrer le tout par deux lignes vides (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))` ``.
196
+
**Astuce:** vous contrôlez le nombre de chiffres derrière la virgule pour chaque estimateur à l'aide de l'argument supplémentaire `coef_digits =` qui accepte un nombre 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. Il est important de limiter les valeurs à un nombre de chiffres **significatifs** par rapport au calcul qui est réalisé. Ne jamais conserver un grand nombre de décimales inutiles dans les équations ! L'équation ci-dessus a été obtenue à l'aide de `` `r eq__(rice_lm, use_coefs = TRUE, coef_digits = c(0, 1))` ``.
197
+
198
+
##### Compréhension de la paramétrisation du modèle
199
+
200
+
Maintenant que les aspects techniques sont expliqués, concentrez-vous sur le contenu de cette dernière équation et sa signification.
201
+
202
+
- Rappelez-vous que $Y = \hat{Y} + \epsilon$, les valeurs de la variable réponse $Y$ sont égales à leurs valeurs estimées par le modèle notées $\hat{Y}$ (on prononce "I grec chapeau" en français, ou "waïe hat" en anglais) additionnées des résidus $\epsilon$ et
203
+
204
+
- $\epsilon \sim \mathcal{N}(0, \sigma)$. les résidus forment la composante statistique du modèle et suivent une distribution Normale de moyenne nulle et d'écart type constant $\sigma$.
189
205
190
-
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.*
206
+
- Comparez l'équation du modèle paramétrisé avec l'équation générale du modèle 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'une à l'autre avant de passer à la suite.**
207
+
208
+
Pour vous faciliter la comparaison, l'équation générale du modèle est reproduite ci-dessous avec `` `r eq__(rice_lm)` `` :
209
+
210
+
$$
211
+
`r eq__(rice_lm)`
212
+
$$
191
213
192
214
## Analyse des résidus
193
215
194
-
Le graphique et le tableau ci-dessous vous permettent d'obtenir des informations sur l'objet `rice_lm` que vous avez calculé précédemment
216
+
Le graphique et le tableau ci-dessous vous rappellent les informations importantes de votre régression `rice_lm`.
195
217
196
218
```{r, echo=TRUE}
197
-
# Graphique de votre objet `lm`
219
+
# Graphique de la régression `rice_lm`
198
220
chart(rice_lm)
199
-
# Tableau relatif à la paramétrisation du modèle
221
+
# Tableau résumé court de la régression `rice_lm`
200
222
tabularise$tidy(rice_lm)
201
223
```
202
224
203
-
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.
225
+
Vous avez toujours à disposition l'objet `rice_lm`. Construisez quatre graphiques afin d'étudier :
226
+
227
+
- les résidus par rapport aux valeurs prédites de `area`,
228
+
- la distribution des résidus via un graphique quantile-quantile,
229
+
- l'échelle et la position position des résidus par rapport à `area` et
230
+
- l'a distance de Cook des résidus'effet de levier des observations.
204
231
205
232
```{r resid_h2, exercise=TRUE}
206
-
# Distribution des résidus
233
+
# Résidus en fonction des valeurs prédites de area
207
234
chart$___(___)
208
235
# Graphique quantile-quantile
209
236
chart$___(___)
210
-
# Position et échelle des résidus
237
+
# Echelle et position des résidus
211
238
chart$___(___)
212
-
# Distance de Cook
239
+
# Effet de levier
213
240
chart$___(___)
214
241
```
215
242
216
243
```{r resid_h2-hint-1}
217
244
# Consultez la page d'aide `?modelit::chart.lm`
218
245
219
-
# Distribution des résidus
246
+
# Résidus en fonction des valeurs prédites de area
220
247
chart$___(___)
221
248
# Graphique quantile-quantile
222
249
chart$___(___)
223
-
# Position et échelle des résidus
250
+
# Echelle et position des résidus
224
251
chart$___(___)
225
-
# Distance de Cook
252
+
# Effet de levier
226
253
chart$___(___)
227
254
228
255
#### ATTENTION: Hint suivant = solution !####
229
256
```
230
257
231
258
```{r resid_h2-solution}
232
259
## Solution ##
233
-
# Distribution des résidus
260
+
# Résidus en fonction des valeurs prédites de area
234
261
chart$resfitted(rice_lm)
235
262
# Graphique quantile-quantile
236
263
chart$qqplot(rice_lm)
237
-
# Position et echelle des résidus
264
+
# Echelle et position des résidus
238
265
chart$scalelocation(rice_lm)
239
-
# Distance de Cook
240
-
chart$cooksd(rice_lm)
266
+
# Effet de levier
267
+
chart$resleverage(rice_lm)
241
268
```
242
269
243
270
```{r resid_h2-check}
@@ -246,18 +273,22 @@ grade_code("Ce sont les quatre graphiques les plus courants de l'analyse des ré
246
273
247
274
```{r qu_resid}
248
275
question("Sélectionnez parmi les éléments suivants les affirmations vraies.",
249
-
answer("Aucune valeur n'influence trop fortement la régression linéaire.", correct = TRUE, message = "La régression linéaire est très influencée par les valeurs extrêmes. La distance de cook est parfaite pour étudier ces valeurs extrêmes."),
250
-
answer("On observe autant de résidus positifs que négatifs.", correct = TRUE, message = "La distribution des résidus montre permet d'observer qu'il y a autant de résidus positifs que négatifs. La répartition des résidus est homogène tout le long de l'axe X (les valeurs prédites)."),
251
-
answer("Les résidus suivent une distribution normale.", correct = TRUE, message = "Le graphique quantile-quantile permet d'étudier la distribution normale. On observe que les résidus les plus faible et les plus élévé s'éloigne de la droite. Il serait intéressant de tenter des transformations mathématique sur les variables pour rendre la distribution des résidus noramle."),
252
-
answer("Les résidus positif et négatif ont des valeurs similaires dans l'absolu.", correct = TRUE, message = "La position et l'échelle des résidus permet dd superposer les résidus positifs et négatifs. On peut observer que la courbe bleue est presque horizontale."),
incorrect = "Oups, il semble que vous avez mal interpété les graphiques ci-dessus. C'est très complexe d'étudier les graphiques de diagnostic.",
255
-
allow_retry = TRUE, random_answer_order = TRUE,
276
+
answer("Les résidus sont contenus et se répartissent de manière équilibrée et linéaire.", correct = TRUE, message = "**Graphique1** La répartition des résidus sur le premier graphique permet d'observer sur l'axe des ordonnées des valeurs entre - 2000 et +2000 pour les résidus, par rapport à un plage plus élevée pour les valeurs prédites de 10000 à 17000. Les résidus sont donc, comparativement, raisonnables. La répartition des résidus est homogène autour de l'axe horizontal à zéro et il n'y a pas de dérive non linéaire (la courbe de tendance générale en bleu est pratiquement linéaire et reste proche de zéro)."),
277
+
answer("Les résidus suivent une distribution Normale.", correct = TRUE, message = "<br/><br/>**Graphique 2** Le graphique quantile-quantile permet de vérifier si la distribution des résidus est Normale. On observe que les résidus les plus faibles et les plus élevés ne s'éloigne de la droite de référence que très légèrement. La distribution des résidus est donc Normale ou proche de la Normale."),
278
+
answer("Il y a homoscédasticité des résidus.", correct = TRUE, message = "<br/><br/>**Graphique 3** La position et l'échelle des résidus sur le graphique 3, en représentant leur valeur absolue sur l'axe des ordonnées, superpose les résidus négatifs sur les résidus positifs. Cette représentation est la meilleure pour vérifier l'homoscédasticité, c'est-à-dire, la variance homogène en fonction des valeurs prédites sur l'axe des abscisses. La courbe de tendance en bleu est horizontale, ce qui le confirme. Nous avons bien ici homoscédasticité des résidus."),
279
+
answer("Aucune valeur n'influence trop fortement la régression linéaire.", correct = TRUE, message = "<br/><br/>**Graphique 4** La régression linéaire par les moindres carrés est très influencée par les valeurs extrêmes. L'effet de levier quantifie l'impact de chaque observation sur la position de la droite de régression. La distance de Cook (taille des points sur le quatrième graphique) mets en évidence les valeurs extrêmes. Ici, le graphique 4 présente un comportement sain du point de vue des observations potentiellement influentes ou extrêmes."),
280
+
correct = "Vous avez sélectionné les affirmations correctes.",
281
+
incorrect = "Oups, il semble que vous avez mal interpété les graphiques ci-dessus. Observez bien, relisez la section correspondante du cours et retentez l'exercice.",
282
+
allow_retry = TRUE, random_answer_order = FALSE,
256
283
submit_button = "Soumettre une réponse",
257
284
try_again_button = "Resoumettre une réponse"
258
285
)
259
286
```
260
287
288
+
L'analyse des résidus est importante pour déterminer la validité de votre modèle, mais ce n'est pas une tâche facile. Au début, ces graphiques ne paraissent pas des plus clairs. Vous apprendrez par la pratique et en faisant d'autres exercices dans la suite du cours.
289
+
290
+
Ici, le nombre important d'observations donne une réponse claire... et de plus, les résidus sont pratiquement parfaits. Retenez ceci comme un exemple d'excellents résultats. Avec moins de points (voyez par exemple le cas des cerisiers noirs développé dans le cours) il faut bien aiguiser son œil pour discerner les résultats corrects ou acceptables de ceux qui invalident votre modèle.
291
+
261
292
## Conclusion
262
293
263
294
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