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 !**
34
-
35
67
## Objectifs
36
68
37
-
- ...
69
+
- Réaliser et interpréter des modèles linéaires généralisés pertinents
70
+
- Comparer les modèles obtenus
71
+
72
+
## Indiens diabétiques
73
+
74
+
Les données que vous allez traiter dans ce tutoriel portent sur les cas de diabète chez les descendants des Indiens Pimas en Arizona. La prévalence de diabète de type 2 est particulièrement élevée chez ces individus.
75
+
76
+
Les jeux de données employés sont proposés dans le package {MASS}. Deux ensembles de données sont associés `Pima.tr2` et `Pima.te`. Les noms des variables ont été renommés afin d'être plus explicites. De plus, des labels et des unités ont été ajoutés.
triceps = "Épaisseur du pli cutané au niveau du triceps",
94
+
bmi = "Indice de masse corporelle",
95
+
dpf = "Indice du risque génétique lié au diabète",
96
+
diabete = "Diabètes",
97
+
age = "Age"
98
+
),
99
+
units = c(
100
+
glucose = "mg/dL",
101
+
diastolic = "mmHg",
102
+
triceps = "mm",
103
+
bmi = "kg/m^2",
104
+
age = "Année"
105
+
)
106
+
)
107
+
```
108
+
109
+
La mesure du glucose dans le plasma sanguin est obtenue à la suite d'un test d'hyperglycémie provoquée. Cet examen est utilisé pour évaluer la capacité du corps à réguler le taux de sucre dans le sang après la prise d'une quantité précise de glucose. Plusieurs prises de sang sont réalisées au début de l'examen, puis après 60 minutes et enfin après 120 minutes. Les valeurs du tableau correspondent à la mesure après 120 minutes.
110
+
111
+
Des informations complémentaires sur ces données peuvent être trouvées via la page d'aide de `Pima.te` ou `Pima.tr2` (`?MASS::Pima.te`)
112
+
113
+
## Exploration des données
114
+
115
+
L'Indice du risque génétique lié au diabète (DPF, Diabetes pedigree function) estime la probabilité d'avoir du diabète en fonction de l'âge de l'individu et des antécédents familiaux. Débutez votre analyse par réaliser un histogramme de la variable `dpf`. Utilisez les facettes afin de séparer les individus diabètes, des individus sains. Remplacez le label par défaut de l'axe y par "Effectifs".
116
+
117
+
```{r histo_h2, exercise = TRUE}
118
+
chart(___) +
119
+
___ +
120
+
ylab(___)
121
+
```
122
+
123
+
```{r histo_h2-hint-1}
124
+
chart(data = pima, ___) +
125
+
geom_histogram() +
126
+
ylab(___)
127
+
#### ATTENTION: Hint suivant = solution !####
128
+
```
129
+
130
+
```{r histo_h2-solution}
131
+
## Solution ##
132
+
chart(data = pima, ~dpf|diabete) +
133
+
geom_histogram() +
134
+
ylab("Effectifs")
135
+
```
136
+
137
+
```{r histo_h2-check}
138
+
grade_code("Vous venez de réaliser votre graphique. On observe qu'il y a plus d'individus sains que de personnes malades dans les données. Par contre, on n'observe pas de différence marquée entre les deux groupes d'individus.")
139
+
```
140
+
141
+
Réalisez à présent un graphique en violon du diabète en fonction de l'indice de masse corporelle. Les violons doivent être à l'horizontale. Ce graphique est à réaliser en 2 lignes uniquement.
142
+
143
+
```{r violin_h2, exercise=TRUE, exercise.lines=2}
144
+
chart(___) +
145
+
___
146
+
```
147
+
148
+
```{r violin_h2-hint-1}
149
+
chart() +
150
+
geom_violin()
151
+
#### ATTENTION: Hint suivant = solution !####
152
+
```
153
+
154
+
```{r violin_h2-solution}
155
+
## Solution ##
156
+
chart(data = pima, diabete ~ bmi) +
157
+
geom_violin()
158
+
```
159
+
160
+
```{r violin_h2-check}
161
+
grade_code("Vous venez de réaliser votre second graphique. Vous avez placé les violons à l'horizontal en inversant la formule que vous avez l'habitude d'employer pour ce type de graphique. On observe que les personnes diabétiques ont un IMC plus élevé que les personnes saines. De nombreuses études indiquent une corrélation entre l'obésité et le diabète.")
162
+
```
163
+
164
+
D'autres graphiques peuvent être réalisés afin d'approfondir encore votre analyse des données
Les personnes saines sont plus nombreuses que les personnes malades. Les individus étudiés ont 21 ans et plus. La proportion de personnes diabétiques augmente avec l'âge et avec le nombre de grossesses. Le glucose dans le plasma sanguin et la pression diastolique sont plus élevés chez les patients diabétiques, tout comme l'IMC.
185
+
186
+
```{r, echo=TRUE}
187
+
visdat::vis_miss(pima)
188
+
```
189
+
190
+
La présence de valeurs manquantes est de 16% pour la mesure de l'épaisseur du pli cutané au niveau du triceps. Cette mesure est employée pour définir la graisse corporelle. Malgré la plus grande marge d'erreur de l'IMC. Nous allons continuer notre analyse avec cette variable-là.
191
+
192
+
Éliminez les valeurs manquantes uniquement pour la variable relative à l'IMC (`bmi`). Employez la fonction speedy pertinente.
grade_code("Bien joué ! La fonction sdrop_na() est une fonction puissante qui permet d'éliminer les lignes contenant des valeurs manquantes. Soyez cependant vigilant et précisez toujours les colonnes que vous comptez employer par la suite afin de garder un maximum de lignes.")
210
+
```
211
+
212
+
```{r qu_family}
213
+
question("Quelle fonction de lien utiliseriez vous pour modéliser la présence ou l'absence du diabètes",
214
+
answer("identité", message = "Cette fonction de lien correspond à une distribution gaussienne de la variable y."),
215
+
answer("log", message = "Cette fonction de lien est employée pour des distributions de la variable y log-Normale, poisson ou encore quasi poisson."),
216
+
answer("logit", message = "Cette fonction de lien est employée pour des distributions de la variable y binomiale ou quasi binomiale.", correct = TRUE), allow_retry = TRUE, random_answer_order = TRUE, message = "Nous sommes en présence d'une variable binaire. La personne a le diabète ou bien n'a pas le diabète. La distribution binomiale est tout indiquée pour cette analyse.")
217
+
```
218
+
219
+
## Modélisation
220
+
221
+
L'exploration des données nous a permis de mettre en avant de potentiel bon candidat pour modéliser la présence ou l'absence de diabète tel que l'IMC, l'âge ou encore l'assimilation du glucose lors d'un test d'hyperglycémie provoquée.
222
+
223
+
Réalisez un modèle complet tenant compte des 3 variables sélectionnées (`bmi`, `age` et `glucose`) sur le tableau `pima1`. Affichez également le résumé du modèle.
grade_code("Bien joué ! Avant de continuer, assurez-vous de bien comprendre ce modèle.")
298
+
```
40
299
41
-
TODO: ce tutoriel doit encore être écrit. Vous devez probablement penser à installer une version plus récente du package qui contient les exercices finalisés !
300
+
Comparez les modèles à l'aide d'une Anova et du critère d'Akaike.
42
301
302
+
```{r compa_h2, exercise=TRUE}
303
+
anova(___)
304
+
___(___)
305
+
```
306
+
307
+
```{r compa_h2-hint-1}
308
+
anova(___, ___, test = ___)
309
+
AIC(___)
310
+
#### ATTENTION: Hint suivant = solution !####
311
+
```
312
+
313
+
```{r compa_h2-solution}
314
+
## Solution ##
315
+
anova(diab1, diab2, test = "Chisq")
316
+
AIC(diab1, diab2)
317
+
```
318
+
319
+
```{r compa_h2-check}
320
+
grade_code("Bien joué ! Le code est maitrisé. Répondez à la question suivante pour vérifier votre capacité à comparer les modèles.")
321
+
```
322
+
323
+
Sur base de l'anova, du critère d'Akaike et de vos analyses des résumés des deux modèles. Affichez le tableau résumé du modèle avec la fonction tabularise() pour obtenir un "beau" rendu de ce tableau.
324
+
325
+
```{r tabu_h1, exercise=TRUE}
326
+
___(___(___))
327
+
```
328
+
329
+
```{r tabu_h1-solution}
330
+
## Solution ##
331
+
tabularise(summary(diab2))
332
+
```
333
+
334
+
```{r tabu_h1-check}
335
+
grade_code("Bien joué ! Vous avez sélectionné le meilleur modèle. Le modèle sans interaction n'a que des paramètres significatifs au seuil alpha de 5%. Il n'y a pas de différence significative entre les deux modèles via l'anova. Le critère d'Akaike est plus faible pour le modèle le plus simple. Pour ces raisons, le second modèle est plus pertinent?")
336
+
```
337
+
338
+
## Pour aller plus loin
339
+
340
+
En continuant l'analyse de ce jeu de données, il est possible d'obtenir un modèle encore plus pertinent. La stratégie suivante a été de partir d'un modèle complexe et de la simplifier progressivement.
Voici le tableau bien formaté du résumé du modèle `diab5`.
355
+
356
+
```{r}
357
+
tabularise(summary(diab5))
358
+
```
359
+
360
+
## Conclusion
361
+
362
+
Vous venez de terminer votre séance d'exercices qui vise à vérifier que vous avez bien compris l'interprétation de modèles linéaires généralisés, ainsi que le code R pour ajuster ces modèles.
363
+
364
+
```{r comm_noscore, echo=FALSE}
365
+
question_text(
366
+
"Laissez-nous vos impressions sur ce learnr",
367
+
answer("", TRUE, message = "Pas de commentaires... C'est bien aussi."),
0 commit comments