Skip to content

Commit 1d5413b

Browse files
committed
Learnrs for module 9 ready
1 parent b949eb9 commit 1d5413b

File tree

4 files changed

+81
-94
lines changed

4 files changed

+81
-94
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: 2023.8.0
2+
Version: 2023.9.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+
# BioDataScience1 2023.9.0
2+
3+
- Learnrs **A09La_ttest** and **A09Lb_ttest_wmw** ready.
4+
15
# BioDataScience1 2023.8.0
26

37
- Learnrs **A08La_chi2** and **A08Lb_chi2b** ready.

inst/tutorials/A09La_ttest/A09La_ttest.Rmd.inactive renamed to inst/tutorials/A09La_ttest/A09La_ttest.Rmd

Lines changed: 43 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ runtime: shiny_prerendered
1414

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

2120
```{r, echo=FALSE}
@@ -38,174 +37,162 @@ La moyenne est un descripteur statistique très employé pour résumer l'informa
3837

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

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.
40+
Vous devez maîtriser le calcul de probabilités ([module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/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-2023/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-2023/moyenne.html) avant d'aborder ces exercices d'auto-évaluation de vos acquis.
4241

4342
## Moyenne
4443

4544
Commençons par revoir les bases. Un échantillon peut être décrit par plusieurs descripteurs statistiques comme la moyenne, l'écart-type ou la variance. La moyenne de la variable $y$ se note $\bar{y}$ (qui se lit "y barre"). Son calcul se fait comme ceci :
4645

4746
$$\bar{y} = \sum_{i = 1}^n \frac{{y_i}}{n}$$
4847

49-
### Moyenne du vecteur `vec`
48+
### Moyenne du vecteur `v`
5049

51-
Utilisez une fonction spécialisée dans R afin de calculer la moyenne du vecteur `vec`.
50+
Utilisez une fonction spécialisée dans R pour calculer la moyenne du vecteur `v`.
5251

5352
```{r, echo=TRUE}
54-
vec <- c(14, 24, 32, 18, 19)
53+
v <- c(14, 24, 32, 18, 19)
5554
```
5655

5756
```{r mean1_h2, exercise=TRUE}
58-
vec <- c(14, 24, 32, 18, 19)
57+
v <- c(14, 24, 32, 18, 19)
5958
___(___)
6059
6160
```
6261

6362
```{r mean1_h2-hint-1}
64-
vec <- c(14, 24, 32, 18, 19)
63+
v <- c(14, 24, 32, 18, 19)
6564
mean(___)
6665
6766
#### ATTENTION: Hint suivant = solution !####
6867
```
6968

70-
```{=html}
71-
<!--
72-
Obfuscation trial: use this argument in the parameters of h2-hint-1
73-
code=._("w1CFYFoBT8odLtPsPD8RsFH0m3LC+PCT46uyW0Gbn95uYbhbr5Ls4OwiAQ0Rv4J97lsYgpsosrPWYOtJo7N2Q8Nt7dV3nWUnUt4YqIAwO6NREeVuYDFiDPZ5RcD4ExNE")
74-
-->
75-
```
7669
```{r mean1_h2-solution}
7770
## Solution ##
78-
vec <- c(14, 24, 32, 18, 19)
79-
mean(vec)
71+
v <- c(14, 24, 32, 18, 19)
72+
mean(v)
8073
```
8174

82-
```{=html}
83-
<!--
84-
obfuscation trial: use this argument in the parameters of h2-solution
85-
code=._("w1CFYFoBT8odLtPsPD8RsFH0m3LC+PCT46uyW0Gbn96HPng1pvpUrHJXuEmBoIJP")
86-
-->
87-
```
8875
```{r mean1_h2-check}
89-
grade_code("La fonction mean() effectue ce calcul. Si des valeurs manquantes (exercice suivant) se trouvent dans le vecteur, il faut prendre une précaution supplémentaire pour obtenir une estimation de la moyenne. Il existe également une fonction similaire qui est plus rapide fmean() du package {collapse}.")
76+
grade_code("La fonction mean() effectue ce calcul. Si des valeurs manquantes (exercice suivant) se trouvent dans le vecteur, il faut prendre une précaution supplémentaire pour obtenir une estimation de la moyenne. Il existe également une fonction similaire qui est plus rapide : la fonction fmean() du package {collapse}.")
9077
```
9178

92-
### Moyenne du vecteur `vec2`
79+
### Moyenne du vecteur `v2`
9380

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).
81+
Calculez la moyenne du vecteur `v2` qui contient une valeur manquante, toujours à l'aide d'une fonction dédiée dans R (n'utilisez pas `fmean()` ici).
9582

9683
```{r, echo=TRUE}
97-
vec2 <- c(14, 3, 32, NA, 40)
84+
v2 <- c(14, 3, 32, NA, 40)
9885
```
9986

10087
```{r mean2_h3, exercise=TRUE}
101-
vec2 <- c(14, 3, 32, NA, 40)
88+
v2 <- c(14, 3, 32, NA, 40)
10289
___(___)
10390
```
10491

10592
```{r mean2_h3-hint-1}
106-
vec2 <- c(14, 3, 32, NA, 40)
93+
v2 <- c(14, 3, 32, NA, 40)
10794
mean(___, ___ = ___)
10895
```
10996

11097
```{r mean2_h3-hint-2}
111-
vec2 <- c(14, 3, 32, NA, 40)
98+
v2 <- c(14, 3, 32, NA, 40)
11299
mean(___, na.rm = ___)
113100
114101
#### ATTENTION: Hint suivant = solution !####
115102
```
116103

117104
```{r mean2_h3-solution}
118105
## Solution ##
119-
vec2 <- c(14, 3, 32, NA, 40)
120-
mean(vec2, na.rm = TRUE)
106+
v2 <- c(14, 3, 32, NA, 40)
107+
mean(v2, na.rm = TRUE)
121108
```
122109

123110
```{r mean2_h3-check}
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}.")
111+
grade_code("Retenez que, dans R, avec 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 de 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}.")
125112
```
126113

127114
### Écart-type
128115

129-
Un second descripteur d'un échantillon est l'écart-type $s_y$ qui est calculé via l'équation suivante :
116+
Un second descripteur d'un échantillon est l'écart-type $s_y$ qui est calculé comme suit :
130117

131118
$$s_y = \sqrt {s_y^2}$$
132119

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 :
120+
L'écart-type est la racine carrée de la variance $s_y^2$ qui est également un descripteur statistique de l'échantillon. La variance de l'échantillon est calculée comme ceci :
134121

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

137-
Il existe également des fonctions spécialisées dans R afin de calculer la variance et l'écart-type. Calculez l'écart-type du vecteur `vec3`.
124+
Il existe également des fonctions spécialisées dans R pour calculer la variance et l'écart-type. Calculez l'écart-type du vecteur `v3`.
138125

139126
```{r, echo=TRUE}
140-
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
127+
v3 <- c(22, 18, 4, 24, 34, 3, 9)
141128
```
142129

143130
```{r sd1_h2, exercise=TRUE}
144-
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
131+
v3 <- c(22, 18, 4, 24, 34, 3, 9)
145132
___(___)
146133
```
147134

148135
```{r sd1_h2-hint-1}
149-
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
136+
v3 <- c(22, 18, 4, 24, 34, 3, 9)
150137
sd(___)
151138
152139
#### ATTENTION: Hint suivant = solution !####
153140
```
154141

155142
```{r sd1_h2-solution}
156143
## Solution ##
157-
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
158-
sd(vec3)
144+
v3 <- c(22, 18, 4, 24, 34, 3, 9)
145+
sd(v3)
159146
```
160147

161148
```{r sd1_h2-check}
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}.")
149+
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 `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}.")
163150
```
164151

165152
### Coefficient de variation
166153

167-
Un autre descripteur est le coefficient de variation de l'échantillon qui est calculé via :
154+
Un autre descripteur est le coefficient de variation de l'échantillon qui est calculé comme :
168155

169156
$$cv_y \ (\%) = \frac{s_y}{\bar y} \times 100$$
170157

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).
158+
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 impression d'avoir une estimation de la dispersion des données exprimée par rapport à une valeur de référence (ici la moyenne).
172159

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).
160+
Calculez le coefficient de variation du vecteur `v3` en % (il n'existe pas de fonction dédiée dans R, combinez les fonctions vues jusqu'ici pour y arriver).
174161

175162
```{r, echo=TRUE}
176-
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
163+
v3 <- c(22, 18, 4, 24, 34, 3, 9)
177164
```
178165

179166
```{r cv1_h2, exercise=TRUE}
180-
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
167+
v3 <- c(22, 18, 4, 24, 34, 3, 9)
181168
___
182169
```
183170

184171
```{r cv1_h2-hint-1}
185-
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
172+
v3 <- c(22, 18, 4, 24, 34, 3, 9)
186173
sd(__) / ___(___) * ___
187174
188175
#### ATTENTION: Hint suivant = solution !####
189176
```
190177

191178
```{r cv1_h2-solution}
192179
## Solution ##
193-
vec3 <- c(22, 18, 4, 24, 34, 3, 9)
194-
sd(vec3) / mean(vec3) * 100
180+
v3 <- c(22, 18, 4, 24, 34, 3, 9)
181+
sd(v3) / mean(v3) * 100
195182
```
196183

197184
```{r cv1_h2-check}
198185
grade_result(
199-
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."),
186+
pass_if(~ identical(.result, (sd(v3)/mean(v3))*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."),
200187
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.")
201188
)
202189
```
203190

204-
Ces premiers exercices vous ont permis de revoir les principaux descripteurs centraux (pour la moyenne) et de dispersion des données (pour l'écart type, la variance et le coefficient de variation). Sur base de ces descripteurs, nous allons maintenant élaborer un test d'hypothèse qui se focalise sur la moyenne.
191+
Ces premiers exercices vous ont permis de revoir les principaux descripteurs centraux (pour la moyenne) et de dispersion des données (pour l'écart type, la variance et le coefficient de variation). Nous allons maintenant dans la suite de ce tutoriel élaborer un test d'hypothèse qui se focalise sur la moyenne.
205192

206193
## Indice de masse corporelle
207194

208-
Il est temps de passer à un exemple concret. Vous allez vous intéresser à l'indice de masse corporelle dans une population d'adultes ayant plus de 18 ans et jusqu'à 30 ans. Ce tableau de données ne vous est pas inconnu. Vous l'avez déjà employé à plusieurs reprises pour réaliser des graphiques notamment (nous préférons toujours rester en "terrain connu" lorsque nous abordons pour la première fois une technique statistique).
195+
Il est temps de passer à une application concrète. Vous allez vous intéresser à l'indice de masse corporelle dans une population d'adultes ayant plus de 18 ans et jusqu'à 30 ans. Ce tableau de données ne vous est pas inconnu. Vous l'avez déjà employé à plusieurs reprises pour réaliser des graphiques notamment.
209196

210197
![](images/diet.jpg){width="60%"}
211198

@@ -296,7 +283,7 @@ biometry %>.%
296283
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 ?")
297284
```
298285

299-
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.
286+
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$ à 5%.
300287

301288
<!-- 💬 **Un snippet peut vous aider à réaliser cet exercice `.hmttestindep`.** -->
302289

@@ -319,7 +306,7 @@ t.test(data = biometry, bmi ~ gender,
319306
```
320307

321308
```{r bio_ttest_h2-check}
322-
grade_code("Vous avez su compléter la fonction t.test(). Notez l'utilisation de conf.level= pour le niveau de confiance du test qui est en réalité 1 - alpha = 0.95. Vous constatez que vous devez maîtriser les deux termes complémentaires alpha et niveau de confiance. Le test bilatéral se note \"two-sided\" ici.", "Ce n'est pas la bonne réponse. Relisez avec attention l'énoncé et complètez les éléments manquants dans les instructions R.")
309+
grade_code("Vous avez su compléter la fonction `t.test()`. Notez l'utilisation de `conf.level=` pour le niveau de confiance du test qui est en réalité 1 - alpha = 0.95. Vous constatez que vous devez maîtriser les deux termes complémentaires alpha et niveau de confiance. Le test bilatéral se note \"two-sided\" ici.", "Ce n'est pas la bonne réponse. Relisez avec attention l'énoncé et complètez les éléments manquants dans les instructions R.")
323310
```
324311

325312
```{r ttest_quiz}
@@ -328,13 +315,13 @@ quiz(
328315
answer("oui"),
329316
answer("non", correct = TRUE),
330317
allow_retry = TRUE,
331-
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.",
318+
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.",
332319
correct = "C'est correct. Vous ne rejetez pas $H_0$ au seuil alpha de 5% ici."),
333320
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% ?",
334321
answer("oui"),
335322
answer("non", correct = TRUE),
336323
allow_retry = TRUE,
337-
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.",
324+
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.",
338325
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)")
339326
)
340327
```

0 commit comments

Comments
 (0)