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 correspond à la version 2021-2022. Il est en cours de révision pour la version 2022-2023. Vous devez probablement penser à installer une version plus récente du package qui contient les exercices finalisés !**
44
+
30
45
## Objectifs
31
46
47
+
Le premier module vous a permis de vous familiariser avec la régression linéaire. Vous avez appris à interpréter une partie des résultats proposés par le résumé du modèle ainsi qu'à interpréter les graphiques d'analyses des résidus. Les objectifs de ce tutoriel sont :
48
+
32
49
- Être capable de lire la sortie renvoyée par `summary()` lorsqu'il est appliqué à un objet **lm**.
33
50
- Maîtriser la régression linéaire multiple dans R avec la fonction `lm()`.
34
51
35
-
## Régression linéaire
36
-
37
-
Réalisez une régression linéaire simple sur le jeu de données `df1` de la variable `y` en fonction de la variable `x`.
52
+
## Description des données
38
53
39
-
```{r reglin-init}
40
-
set.seed(42)
54
+
Le tableau de données `fat` traite du pourcentage de masse grasse sur 252 hommes. Les participants à cette étude ont été immergés afin de déterminer leur densité corporelle. Cette méthode bien que très fiable n'est pas des plus simples à mettre en place. Les scientifiques font donc appel à vous afin d'estimer la densité des participants à l'aide de mesures biométriques plus simples à obtenir.
41
55
42
-
reg_lin <- function(x, a, b)
43
-
a * x + b
44
-
45
-
v1 <- seq(from = 5, to = 20, by = 0.25)
46
-
v2 <- v1 + rnorm(length(v1), sd = 0.5)
47
-
48
-
df1 <- dtx(
49
-
x = v2,
50
-
y = reg_lin(v2, 0.5, 0.001) + rnorm(length(v1), sd = 0.5)
51
-
)
52
-
53
-
lm_lin <- lm(data = df1, y ~ x)
54
-
lm_lin_param <- glance(lm_lin)
55
-
lm_lin_result <- tidy(lm_lin)
56
+
```{r, echo = TRUE}
57
+
fat <- read("fat", package = "faraway")
58
+
skimr::skim(fat)
56
59
```
57
60
58
-
Vous avez à votre disposition le graphique suivant pour visualiser les données :
61
+
## Régression linéaire simple
59
62
60
-
```{r}
61
-
chart(data = df1, y ~ x) +
62
-
geom_point()
63
-
```
64
-
65
-
```{r reglin-prep}
66
-
set.seed(42)
67
-
68
-
reg_lin <- function(x, a, b)
69
-
a * x + b
70
-
71
-
v1 <- seq(from = 5, to = 20, by = 0.25)
72
-
v2 <- v1 + rnorm(length(v1), sd = 0.5)
73
-
74
-
df1 <- dtx(
75
-
x = v2,
76
-
y = reg_lin(v2, 0.5, 0.001) + rnorm(length(v1), sd = 0.5)
77
-
)
63
+
Intéressez-vous à la densité (`density`) des participants. Modélisez la densité en fonction du tour de taille (`abdom`). Le graphique ci-dessous vous présente le nuage de point associé au modèle demandé.
78
64
79
-
lm_lin <- lm(data = df1, y ~ x)
80
-
lm_lin_param <- glance(lm_lin)
81
-
lm_lin_result <- tidy(lm_lin)
65
+
```{r, echo=TRUE}
66
+
chart(data = fat, density ~ abdom) +
67
+
geom_point()
82
68
```
83
69
84
-
💬 **Un snippet peut vous aider à réaliser cet exercice.**
70
+
Modélisez la densité (`density`) en fonction du tour de taille (`abdom`) sur les données du tableau `fat`.
x0 = reg_lin_rand(x = x, a = 1.26, b = 2, random = 3.5),
182
-
x1 = reg_lin_rand(x = x, a = 1.5, b = 1, random = 10),
183
-
y = reg_mutli3_rand(x1 = x, x2 = x0, x3 = x1,
184
-
a1 = 0.2, a2 = 0.3, a3 = 1.1, b = 2))
129
+
Tentez de réaliser à présent une régression linéaire multiple afin d'améliorer votre modèle. Réalisez à présent un modèle de la densité (`density`) en fonction du tour de taille (`abdom`) et du tour de hanche (`hip`). Le graphique de la densité en fonction du tour de taille vous a été présenté précédemment. Vous trouverez ci-dessous le graphique de la densité en fonction du tour de hanches.
185
130
186
-
lm_mult <- lm(data = df2, y ~ x + x1)
187
-
lm_mult_coef <- tidy(lm_mult)
188
-
lm_mult_param <- glance(lm_mult)
131
+
```{r, echo = TRUE}
132
+
chart(data = fat, density ~ hip) +
133
+
geom_point()
189
134
```
190
135
191
-
💬 **Un snippet peut vous aider à réaliser cet exercice.**
L'analyse des résidus n'est pas l'objectif de cette séance d'exercice. Prenez cependant le temps de critiquer chaque graphique.
179
+
180
+
```{r}
181
+
chart$residuals(densi_lm2)
182
+
```
183
+
184
+
## Choix du meilleur modèle
185
+
186
+
Vous venez de réaliser deux modèles. Il s'agit d'un cas particulier. Ces deux modèles sont imbriqués. Le premier modèle de la densité en fonction du tour de taille se nomme `densi_lm1` et le second modèle de la densité en fonction du tour de taille et du tour de hanche se nomme `densi_lm2`. Comment pourriez-vous départager ces deux modèles ? Outre l'analyse du résumé des modèles et des résidus, il existe des outils pour départager ces deux modèles. L'ANOVA ci-dessus vous permet de définir qu'il y a une différence significative entre ces deux modèles.
187
+
188
+
```{r, echo = TRUE}
189
+
anova(densi_lm1, densi_lm2)
190
+
```
191
+
192
+
Le critère d'Akaike est une métrique adaptée à la comparaison de modèles. Le meilleur modèle selon le critère d'Akaike est le modèle ayant obtenu la valeur la plus faible.
193
+
194
+
```{r}
195
+
AIC(densi_lm1, densi_lm2)
196
+
```
197
+
198
+
Suite à l'analyse des résumés des deux modèles, l'interprétation des graphiques des résidus et des valeurs du critère d'Akaike, le second modèle est plus performant afin de modéliser la densité des personnes étudiées.
199
+
235
200
## Conclusion
236
201
237
-
Vous venez de terminer votre séance d'exercices relive à la régression multiple.
202
+
Vous venez de terminer votre séance d'exercices relative à la régression multiple.
238
203
239
204
```{r comm_noscore, echo=FALSE}
240
205
question_text(
241
206
"Laissez-nous vos impressions sur ce learnr",
242
207
answer("", TRUE, message = "Pas de commentaires... C'est bien aussi."),
0 commit comments