Skip to content

Commit f4fa1c8

Browse files
committed
Revision A09La_ttest
1 parent cf0f0cc commit f4fa1c8

File tree

4 files changed

+70
-50
lines changed

4 files changed

+70
-50
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: BioDataScience1
2-
Version: 2022.5.0
2+
Version: 2022.6.0
33
Title: A Series of Learnr Documents for Biological Data Science 1
44
Description: Interactive documents using learnr and shiny applications for studying biological data science.
55
Authors@R: c(

NEWS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# BioDataScience 2022.6.0
2+
3+
- Revision of learnrs tutorials for module 9.
4+
15
# BioDataScience 2022.5.0
26

37
- Revision of learnrs tutorials for module 8.

inst/tutorials/A09La_ttest/A09La_ttest.Rmd

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: "Test t de Student"
2+
title: "Moyenne et test t de Student"
33
author: "Guyliann Engels & Philippe Grosjean"
4-
description: "**SDD I Module 9** Distribution t de Student et test du même nom."
4+
description: "**SDD I Module 9** Moyenne et test t de Student."
55
tutorial:
66
id: "A09La_ttest"
7-
version: 2.2.1/9
7+
version: 2.2.2/9
88
output:
99
learnr::tutorial:
1010
progressive: true
@@ -14,7 +14,8 @@ runtime: shiny_prerendered
1414

1515
```{r setup, include=FALSE}
1616
BioDataScience1::learnr_setup()
17-
SciViews::R()
17+
SciViews::R("infer")
18+
library(BioDataScience1)
1819
```
1920

2021
```{r, echo=FALSE}
@@ -27,8 +28,6 @@ BioDataScience1::learnr_server(input, output, session)
2728

2829
------------------------------------------------------------------------
2930

30-
**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 !**
31-
3231
## Objectifs
3332

3433
La moyenne est un descripteur statistique très employé pour résumer l'information. Il est très courant de comparer une moyenne à une valeur de référence ou deux moyennes entre elles. Dans votre future carrière scientifique, il sera indispensable de bien maîtriser les subtilités dans l'utilisation de la moyenne. Ce tutoriel vise à :
@@ -39,7 +38,7 @@ La moyenne est un descripteur statistique très employé pour résumer l'informa
3938

4039
- Comprendre le test *t* de Student et être capable de l'utiliser pour résoudre des questions pratiques en biologie
4140

42-
Vous devez maîtriser le calcul de probabilités ([module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2021/proba.html)) et avoir compris la logique d'un test d'hypothèse telle que nous l'avons développée dans le module 8](<https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2021/chi2.html>) relatif au test du Chi^2^. Enfin, vous devez avoir vu la première partie du [module 9](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2021/moyenne.html) avant d'aborder ces exercices d'auto-évaluation de vos acquis.
41+
Vous devez maîtriser le calcul de probabilités ([module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/proba.html)) et avoir compris la logique d'un test d'hypothèse telle que nous l'avons développée dans le [module 8](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/chi2.html) relatif au test du Chi^2^. Enfin, vous devez avoir vu la première partie du [module 9](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/moyenne.html) avant d'aborder ces exercices d'auto-évaluation de vos acquis.
4342

4443
## Moyenne
4544

@@ -75,6 +74,7 @@ code=._("w1CFYFoBT8odLtPsPD8RsFH0m3LC+PCT46uyW0Gbn95uYbhbr5Ls4OwiAQ0Rv4J97lsYgps
7574
-->
7675
```
7776
```{r mean1_h2-solution}
77+
## Solution ##
7878
vec <- c(14, 24, 32, 18, 19)
7979
mean(vec)
8080
```
@@ -91,7 +91,7 @@ grade_code("La fonction mean() effectue ce calcul. Si des valeurs manquantes (ex
9191

9292
### Moyenne du vecteur `vec2`
9393

94-
Calculez la moyenne du vecteur `vec2` qui contient une valeur manquante, toujours à l'aide d'une fonction dédiée dans R.
94+
Calculez la moyenne du vecteur `vec2` qui contient une valeur manquante, toujours à l'aide d'une fonction dédiée dans R (n'utilisez pas `fmean()` ici).
9595

9696
```{r, echo=TRUE}
9797
vec2 <- c(14, 3, 32, NA, 40)
@@ -115,12 +115,13 @@ mean(___, na.rm = ___)
115115
```
116116

117117
```{r mean2_h3-solution}
118+
## Solution ##
118119
vec2 <- c(14, 3, 32, NA, 40)
119120
mean(vec2, na.rm = TRUE)
120121
```
121122

122123
```{r mean2_h3-check}
123-
grade_code("Retenez que, dans R, toute fonction qui a un argument `na.rm=`, si vous indiquez TRUE vous souhaitez d'abord éliminer les valeurs manquantes afin d'estimer le résultat sur les données observées restantes. Prenez l'habitude de consulter la page d'aide associé à la fonction. En général, l'argument `na.rm=` est par défaut à FALSE. Il existe cependant quelques exceptions comme dans la fonction fmean() de {collapse}.")
124+
grade_code("Retenez que, dans R, toute fonction qui a un argument `na.rm =`, si vous indiquez TRUE vous souhaitez d'abord éliminer les valeurs manquantes afin d'estimer le résultat sur les données observées restantes. Prenez l'habitude de consulter la page d'aide associé à la fonction. En général, l'argument `na.rm =` est par défaut à FALSE. Il existe cependant quelques exceptions comme dans la fonction fmean() de {collapse}.")
124125
```
125126

126127
### Écart-type
@@ -129,7 +130,7 @@ Un second descripteur d'un échantillon est l'écart-type $s_y$ qui est calculé
129130

130131
$$s_y = \sqrt {s_y^2}$$
131132

132-
L'écart-type est la racine carré de la variance $s_y^2$ de la variable $y$ qui est également un descripteur statistique de l'échantillon. La variance de l'échantillon est calculée comme suit :
133+
L'écart-type est la racine carrée de la variance $s_y^2$ de la variable $y$ qui est également un descripteur statistique de l'échantillon. La variance de l'échantillon est calculée comme suit :
133134

134135
$$s_y^2 = \sum\limits_{i=1}^n \frac{(y_i - \bar y)^2}{n-1}$$
135136

@@ -152,12 +153,13 @@ sd(___)
152153
```
153154

154155
```{r sd1_h2-solution}
156+
## Solution ##
155157
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
156158
sd(vec3)
157159
```
158160

159161
```{r sd1_h2-check}
160-
grade_code("Écart type se dit \"standard deviation\" en anglais, d'où le nom `sd()` de la fonction en abbrégé. Pour la variance, il s'agit de la fonction `var()`. Ces deux fonctions utilisent aussi l'argument `na.rm=` si nécessaire. Comme vous vous en doutez surement, il existe la fonction fsd() et fvar() dans le package {collapse}.")
162+
grade_code("Écart type se dit \"standard deviation\" en anglais, d'où le nom `sd()` de la fonction en abbrégé. Pour la variance, il s'agit de la fonction `var()`. Ces deux fonctions utilisent aussi l'argument `na.rm =` si nécessaire. Comme vous vous en doutez surement, il existe la fonction fsd() et fvar() dans le package {collapse}.")
161163
```
162164

163165
### Coefficient de variation
@@ -166,9 +168,9 @@ Un autre descripteur est le coefficient de variation de l'échantillon qui est c
166168

167169
$$cv_y \ (\%) = \frac{s_y}{\bar y} \times 100$$
168170

169-
L'avantage du coefficient de variation est qu'il donne une idée de la dispersion des données de manière *relative*. En effet, la variance et l'écart type seront d'autant plus grands que la moyenne est grande, pour une dispersion relative équivalente. Par contre, le coefficient de variation met à l'échelle, en quelque sorte l'écart type. Son expression en pourcentage accentue encore cette sensation d'avoir une estimation de la dispersion des données exprimée par rapport à une valeur de référence (ici la moyenne).
171+
L'avantage du coefficient de variation est qu'il donne une idée de la dispersion des données de manière *relative*. En effet, la variance et l'écart type seront d'autant plus grands que la moyenne est grande, pour une dispersion relative équivalente. Par contre, le coefficient de variation met à l'échelle, en quelque sorte, l'écart type. Son expression en pourcentage accentue encore cette sensation d'avoir une estimation de la dispersion des données exprimée par rapport à une valeur de référence (ici la moyenne).
170172

171-
Calculez le coefficient de variation du vecteur `vec3` (il n'existe pas de fonction dédiée dans R, combinez les fonctions vues jusqu'ici pour y arriver).
173+
Calculez le coefficient de variation du vecteur `vec3` en % (il n'existe pas de fonction dédiée dans R, combinez les fonctions vues jusqu'ici pour y arriver).
172174

173175
```{r, echo=TRUE}
174176
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
@@ -187,14 +189,15 @@ sd(__) / ___(___) * ___
187189
```
188190

189191
```{r cv1_h2-solution}
192+
## Solution ##
190193
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
191194
sd(vec3) / mean(vec3) * 100
192195
```
193196

194197
```{r cv1_h2-check}
195198
grade_result(
196199
pass_if(~ identical(.result, (sd(vec3)/mean(vec3))*100), "Vous avez judicieusement combiné le calcul de la moyenne et de l'écart-type dans une instruction R pour obtenir le coefficient de variation."),
197-
fail_if(~ TRUE, "Votre calcul n'est pas le bon. Commencez par déterminer la moyenne et l'écart-type de ce vecteur. N'oubliez pas de multiplier votre réponse par 100.")
200+
fail_if(~ TRUE, "Votre calcul n'est pas le bon. Commencez par déterminer la moyenne et l'écart-type de ce vecteur. N'oubliez pas de multiplier votre réponse par 100 pour l'obtenir en pourcent.")
198201
)
199202
```
200203

@@ -217,7 +220,7 @@ Commencez par remanier les données en sélectionnant les individus ayant strict
217220
# Importation des données
218221
biometry <- read("biometry", package = "BioDataScience")
219222
# Sélection des données
220-
biometry <- ___(biometry, age ___ 18 ___ age ___ 30)
223+
biometry <- sfilter(biometry, age ___ 18 ___ age ___ 30)
221224
# Premières lignes du tableau (pour vérification)
222225
head(biometry)
223226
```
@@ -234,6 +237,7 @@ head(biometry)
234237
```
235238

236239
```{r bio_filt_h2-solution}
240+
## Solution ##
237241
# Importation des données
238242
biometry <- read("biometry", package = "BioDataScience")
239243
# Sélection des données
@@ -243,18 +247,19 @@ head(biometry)
243247
```
244248

245249
```{r bio_filt_h2-check}
246-
grade_code("Bien joué ! Vous avez filtré votre tableau de données initial pour ne conserver que les cas correspondant aux critères choisis.", "Oups, il semble que vous avez mal défini vos conditions pour filtrer le tableau de départ.")
250+
grade_code("Vous avez filtré votre tableau de données initial pour ne conserver que les cas correspondant aux critères choisis.", "Oups, il semble que vous avez mal défini vos conditions pour filtrer le tableau de départ.")
247251
```
248252

249253
Vous souhaitez déterminer s'il y a une différence significative de l'IMC entre les hommes et les femmes. La variable `bmi` est calculée pour vous.
250254

251255
```{r, echo=TRUE}
252256
biometry %>.%
253-
smutate(., bmi = (weight / (height/100)^2)) %>.%
254-
labelise(., label = list(bmi = "IMC"), units = list(bmi = "")) -> biometry
257+
smutate(., bmi = (weight / (height / 100)^2)) %>.%
258+
labelise(., label = list(bmi = "IMC"), units = list(bmi = "")) ->
259+
biometry
255260
```
256261

257-
Commencez par réalisez un tableau qui résume la moyenne, l'écart-type et le nombre d'observations pour les hommes et pour les femmes séparément. Employez les fonctions fast débutant par f\* comme `fvar()`
262+
Commencez par réalisez un tableau qui résume la moyenne, l'écart-type et le nombre d'observations pour les hommes et pour les femmes séparément. Employez les fonctions fast débutant par "f" comme `fvar()`
258263

259264
```{r bio-prepare}
260265
biometry <- read("biometry", package = "BioDataScience") %>.%
@@ -265,32 +270,36 @@ biometry <- read("biometry", package = "BioDataScience") %>.%
265270

266271
```{r bio_tab_h2, exercise=TRUE, exercise.setup="bio-prepare"}
267272
biometry %>.%
268-
___(., ___) |> summarise(
273+
___(., ___) %>.%
274+
summarise(.,
269275
mean = ___(___), sd = ___(___), n = fn(bmi)) %>.%
270276
___(.)
271277
```
272278

273279
```{r bio_tab_h2-hint-1}
274280
biometry %>.%
275-
sgroup_by(., gender) |> ssummarise(
281+
sgroup_by(., gender) %>.%
282+
ssummarise(.,
276283
mean = ___(___), sd = ___(___), n = fn(bmi))
277284
278285
#### ATTENTION: Hint suivant = solution !####
279286
```
280287

281288
```{r bio_tab_h2-solution}
289+
## Solution ##
282290
biometry %>.%
283-
sgroup_by(., gender) |> ssummarise(
291+
sgroup_by(., gender) %>.%
292+
ssummarise(.,
284293
mean = fmean(bmi), sd = fsd(bmi), n = fn(bmi))
285294
```
286295

287296
```{r bio_tab_h2-check}
288-
grade_code("Excellent ! Maintenant, nous voulons déterminer si ces moyennes diffèrent de manière significative ou non au seuil alpha de 5% en fonction du genre.", "Votre tableau ne correspond pas. Relisez la question attentivement. Quelle est la variable dont vous devez déterminer la moyenne et l'écart-type ?")
297+
grade_code("Maintenant nous voulons déterminer si ces moyennes diffèrent de manière significative ou non au seuil alpha de 5% en fonction du genre.", "Votre tableau ne correspond pas. Relisez la question attentivement. Quelle est la variable dont vous devez déterminer la moyenne et l'écart type ?")
289298
```
290299

291300
Vous devez à présent comparer l'indice de masse corporelle entre les hommes et les femmes. Utilisez un test *t* de Student bilatéral pour des sous-populations considérées de variances similaires. Vous devez fixer votre seuil $\alpha$ à 0.05.
292301

293-
💬 **Un snippet peut vous aider à réaliser cet exercice `.hmttestindep`.**
302+
<!-- 💬 **Un snippet peut vous aider à réaliser cet exercice `.hmttestindep`.** -->
294303

295304
```{r bio_ttest_h2, exercise=TRUE, exercise.setup="bio-prepare"}
296305
t.test(data = ___, ___ ~ ___,
@@ -305,6 +314,7 @@ t.test(data = ___, ___ ~ ___,
305314
```
306315

307316
```{r bio_ttest_h2-solution}
317+
## Solution ##
308318
t.test(data = biometry, bmi ~ gender,
309319
alternative = "two.sided", conf.level = 0.95, var.equal = TRUE)
310320
```
@@ -320,19 +330,19 @@ quiz(
320330
answer("non", correct = TRUE),
321331
allow_retry = TRUE,
322332
incorrect = "Vous vous êtes trompé. Pour savoir si vous devez rejeter $H_0$, il faut comparer la valeur P au seuil alpha, ce dernier étant choisi avant de réaliser le test.",
323-
correct = "Bravo, c'est correct. Vous ne rejetez pas $H_0$ au seuil alpha de 0.05 ici."),
333+
correct = "C'est correct. Vous ne rejetez pas $H_0$ au seuil alpha de 5% ici."),
324334
question("Est-ce que l'indice de masse corporelle moyen est significativement différent entre les hommes et les femmes au seuil alpha de 5% ?",
325335
answer("oui"),
326336
answer("non", correct = TRUE),
327337
allow_retry = TRUE,
328338
incorrect = "Ce n'est pas la bonne réponse. Vous devez comparer la valeur P au seuil alpha pour trouver la bonne réponse à cette question.",
329-
correct = "Bravo, c'est correct. Vous avez bien interprété votre test. Vous direz que vous ne détectez pas de différence significative entre les moyennes des IMC des hommes et des femmes au seuil alpha de 5% (test de Student bilatéral, t = 1.51, ddl = 163, valeur P = 0.13)")
339+
correct = "Vous avez bien interprété votre test. Vous direz que vous ne détectez pas de différence significative entre les moyennes des IMC des hommes et des femmes au seuil alpha de 5% (test de Student bilatéral, t = 1.51, ddl = 163, valeur P = 0.13)")
330340
)
331341
```
332342

333343
## Conclusion
334344

335-
Bravo! Vous venez de terminer votre séance d'exercices dans un tutoriel "learnr".
345+
Bravo ! Vous venez de terminer votre séance d'exercices dans un tutoriel "learnr".
336346

337347
```{r comm_noscore, echo=FALSE}
338348
question_text(

0 commit comments

Comments
 (0)