Skip to content

Commit b949eb9

Browse files
committed
Learnrs for module 8 updated
1 parent f74fbab commit b949eb9

File tree

4 files changed

+69
-71
lines changed

4 files changed

+69
-71
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.7.0
2+
Version: 2023.8.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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# BioDataScience1 2023.8.0
2+
3+
- Learnrs **A08La_chi2** and **A08Lb_chi2b** ready.
4+
5+
16
# BioDataScience1 2023.7.0
27

38
- Learnrs **A07La_proba**, **A07Lb_distri** and **A07Lc_distri2** ready.

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

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
2-
title: "Test Chi2 univarié"
2+
title: "Test chi2 univarié"
33
author: "Guyliann Engels & Philippe Grosjean"
4-
description: "**SDD I Module 8** Distribution du Chi2, et test Chi2 univarié."
4+
description: "**SDD I Module 8** Distribution du chi2, et test chi2 univarié."
55
tutorial:
66
id: "A08La_chi2"
77
version: 2.1.1/9
@@ -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}
@@ -32,15 +31,15 @@ BioDataScience1::learnr_server(input, output, session)
3231

3332
La loi de distribution du $\chi^2$ représente de manière théorique la probabilité de distribution de fréquences entre les niveaux d'une ou plusieurs variables qualitatives. Un test d'hypothèse $\chi^2$ en est dérivé pour comparer un échantillon à des valeurs théoriques sous H~0~. Vos objectifs sont ici de :
3433

35-
- Pouvoir calculer des quantiles ou des probabilités relatifs à la distribution du $\chi^2$
34+
- Pouvoir calculer des quantiles ou des probabilités relatifs à la distribution théorique du $\chi^2$
3635

3736
- Appréhender le test d'hypothèse du $\chi^2$ univarié
3837

39-
Vous devez avoir assimilé la matière du [module 8](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/chi2.html) du cours, en particulier la [section 8.2](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/test-dhypoth%25C3%25A8se.html), et vous devez avoir compris les différentes notions vue au [module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/proba.html) relatives au calcul de probabilités et aux lois de distribution statistiques. Ce learnr vous sert à auto-évaluer vos acquis relatifs à la distribution $\chi^2$ et au test $\chi^2$ univarié.
38+
Vous devez avoir assimilé la matière du [module 8](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/chi2.html) du cours, en particulier la [section 8.2](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/test-dhypoth%25C3%25A8se.html), et vous devez avoir compris les différentes notions vue au [module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/proba.html) relatives au calcul de probabilités et aux lois de distribution statistiques. Ce learnr vous sert à auto-évaluer vos acquis relatifs à la distribution $\chi^2$ et au test $\chi^2$ univarié.
4039

4140
## Distribution du $\chi^2$
4241

43-
Représentez graphiquement la densité de probabilité de la distribution du $\chi^2$ à trois degrés de liberté. Utilisez la fonction approriée `dist_*()`.
42+
Représentez graphiquement la densité de probabilité de la distribution du $\chi^2$ à trois degrés de liberté. Utilisez la fonction appropriée `dist_*()`.
4443

4544
```{r chi_dist_h1, exercise=TRUE, exercise.lines=4}
4645
# Distribution de chi2 avec 3 degrés de liberté
@@ -58,10 +57,10 @@ chart(chi)
5857
```
5958

6059
```{r chi_dist_h1-check}
61-
grade_code("Avec les fonctions `dist_*()`, il est simple de créer un objet représentant la distribution souhaitée. Pour la distribution du Chi^2, il vous suffit d'indiquer les degrés de liberté de la distribution. Il s'agit d'une loi de distribution très asymétrique et qui commence à {0, 0}. Notez que plus le quantile est grand, plus la densité de probabilité est faible.")
60+
grade_code("Avec les fonctions `dist_*()`, il est simple de créer un objet représentant la distribution souhaitée. Pour la distribution du chi^2, il vous suffit d'indiquer les degrés de liberté de la distribution. Il s'agit d'une loi de distribution très asymétrique et qui commence à {0, 0}. Notez que, passé un maximum, plus le quantile est grand, plus la densité de probabilité est faible.")
6261
```
6362

64-
Sur base de cette distribution à trois degrés de liberté, calculez la probabilité d'une valeur de $\chi^2$ supérieure au quantile 15.
63+
Sur base de cette distribution du $chi^2$ à trois degrés de liberté, calculez la probabilité d'une valeur de $\chi^2$ supérieure au quantile 15, cette fois-ci en utilisant les fonctions de base dans R (`q|p|d|r<dist>()`).
6564

6665
<!-- 💬 **Ce code correspond au snippet `.icproba`.** -->
6766

@@ -81,10 +80,10 @@ pchisq(15, df = 3, lower.tail = FALSE)
8180
```
8281

8382
```{r chi1_h2-check}
84-
grade_code("La fonction `pchisq()` calcule une probabilité à partir d'un quantile selon la distribution Chi^2.")
83+
grade_code("La fonction `pchisq()` calcule une probabilité à partir d'un quantile selon la distribution chi^2.")
8584
```
8685

87-
Toujours sur base de cette distribution à trois degrés de liberté, calculez le quantile qui délimite l'aire à droite dont la probabilité est de 5%.
86+
Toujours sur base de cette distribution à trois degrés de liberté, calculez le quantile qui délimite l'aire à droite dont la probabilité est de 5% (toujours avec `q|p|d|r<dist>()`).
8887

8988
<!-- 💬 **Ce code correspond au snippet `.icquant`.** -->
9089

@@ -104,7 +103,7 @@ qchisq(0.05, df = 3, lower.tail = FALSE)
104103
```
105104

106105
```{r chi2_h2-check}
107-
grade_code("La fonction `qchisq()` calcule un quantile délimitant une aire qui correspond à une probabilité donnée selon la distribution Chi^2.")
106+
grade_code("La fonction `qchisq()` calcule un quantile délimitant une aire qui correspond à une probabilité donnée selon la distribution chi^2.")
108107
```
109108

110109
## Calcul du $\chi^2_{obs}$
@@ -148,7 +147,7 @@ question("Valeur du Chi^2 observé.",
148147
answer("0.067"),
149148
allow_retry = TRUE, random_answer_order = TRUE,
150149
incorrect = "Recommencez afin de trouver la bonne réponse",
151-
correct = "C'est correct ! Ceci est la valeur du quantile Chi^2 correspondant à notre échantillon.")
150+
correct = "C'est correct ! Ceci est la valeur du quantile chi^2 correspondant à notre échantillon.")
152151
```
153152

154153
## Test du $\chi^2$ univarié
@@ -159,12 +158,10 @@ Donc, pour notre expérience de préférences alimentaires des chimpanzés, nous
159158
knitr::kable(chimp)
160159
```
161160

162-
Or, sous H~0~ de non préférences alimentaires, nous nous attendions à observer à peu près le même nombre de premiers choix pour chaque fruit. Ces écart sont-ils révélateurs de préférences marquées, ou peuvent-il être obtenus par le biais du hasard ? Pour le vérifier, nous avions calculé la valeur du $\chi^2_{obs}$ comme étant 7.601.
161+
Or, sous H~0~ de non préférences alimentaires, nous nous attendions à observer à peu près le même nombre de premiers choix pour chaque fruit. Ces écarts sont-ils révélateurs de préférences marquées, ou peuvent-il être obtenus par le hasard ? Pour le vérifier, nous avions calculé la valeur du $\chi^2_{obs}$ comme étant 7.601.
163162

164163
Cette valeur doit maintenant être confrontée à la distribution théorique du $\chi^2$ à deux degrés de liberté (nombre de niveaux de la variable qualitative `fruit` moins un, donc ici (3 - 1) = 2) représentée ci-dessous.
165164

166-
$ddl = nombre \ de \ niveaux \ de \ la \ variable -1$
167-
168165
```{r}
169166
# Chi-square distribution (density probability) with parameter:
170167
.df <- 2 # Degree of freedom .df
@@ -184,11 +181,13 @@ Déterminez la probabilité qu'un quantile soit supérieur ou égal à $\chi^2_{
184181
<!-- 💬 **Ce code correspond au snippet `.icproba`.** -->
185182

186183
```{r chi3_h2, exercise=TRUE}
187-
pchisq(___, df = ___, lower.tail = ___)
184+
___(___, df = ___, lower.tail = ___)
188185
```
189186

190187
```{r chi3_h2-hint-1}
191-
pchisq(___, df = 2, lower.tail = FALSE)
188+
pchisq(___, df = ___, lower.tail = FALSE)
189+
190+
#### ATTENTION: Hint suivant = solution !####
192191
```
193192

194193
```{r chi3_h2-solution}
@@ -197,18 +196,18 @@ pchisq(7.601, df = 2, lower.tail = FALSE)
197196
```
198197

199198
```{r chi3_h2-check}
200-
grade_code("Cette probabilité est appelée valeur p du test d'hypothèse.")
199+
grade_code("Cette probabilité est appelée valeur P du test d'hypothèse.")
201200
```
202201

203-
Pour tirer une conclusion avec le **test d'hypothèse** du $\chi^2$ univarié, vous comparez la valeur *p* ainsi obtenue au seuil $\alpha$ que vous avez fixé préalablement (choix réalisé *avant* de faire le test pour ne pas être influencé par le résultat). Souvent, on prend $\alpha$ = 5% en biologie. Les hypothèse (H~0~ = hypothèse nulle et H~1~ ou H~A~ = hypothèse alternative) du test $\chi^2$ univarié sont :
202+
Pour tirer une conclusion avec le **test d'hypothèse** du $\chi^2$ univarié, vous comparez la valeur *P* ainsi obtenue au seuil $\alpha$ que vous avez fixé préalablement (choix réalisé *avant* de faire le test pour ne pas être influencé par le résultat). Souvent, on prend $\alpha$ = 5% en biologie. Les hypothèse (H~0~ = hypothèse nulle et H~1~ ou H~A~ = hypothèse alternative) du test $\chi^2$ univarié sont :
204203

205204
- H~0~ : $a_i = \alpha_i$ pour tout $i$
206205
- H~1~ : $a_i \neq \alpha_i$ pour au moins un $i$
207206

208207
Les règles pour décider si nous rejetons ou non H~0~ sont :
209208

210-
- Valeur *p* \< $\alpha$ =\> rejet de H~0~
211-
- Valeur *p* ≥ $\alpha$ =\> non rejet de H~0~
209+
- Valeur *P* \< $\alpha$ =\> rejet de H~0~
210+
- Valeur *P* ≥ $\alpha$ =\> non rejet de H~0~
212211

213212
Sur base de tout ceci, tirez des conclusions concernant l'expérience de préférence alimentaire chez le chimpanzé.
214213

@@ -217,13 +216,13 @@ question("Que décidez-vous au seuil alpha de 5% ?",
217216
answer(sprintf("Rejet de $H_{0}$"), correct = TRUE),
218217
answer(sprintf("Non rejet de $H_{0}$")),
219218
allow_retry = TRUE, random_answer_order = TRUE,
220-
incorrect = "Recommencez afin de trouver la bonne réponse",
221-
correct = "C'est correct ! Nous rejetons H0. Le chimpanzé préfère donc certains fruits (banane) à d'autres (orange). Les préférences sont déduites de la comparaison des fréquences observées par rapport aux fréquences théoriques sous H~0~")
219+
incorrect = "Recommencez afin de trouver la bonne réponse.",
220+
correct = "Effectivement, nous rejetons H0. Le chimpanzé préfère donc certains fruits (banane) à d'autres (orange). Les préférences sont déduites de la comparaison des fréquences observées par rapport aux fréquences théoriques sous H~0~")
222221
```
223222

224223
### Test $\chi^2$ avec `chisq.test()`
225224

226-
Pour réaliser votre test $\chi^2$, vous ne devez heureusement pas passer par tous ces calculs à la main. En effet, R mets à votre disposition une fonction qui le fait pour vous : `chisq.test()`. Utilisez maintenant cette fonction pour faire le même calcul sur l'expérience de préférence alimentaire des chimpanzés.
225+
Pour réaliser votre test $\chi^2$, vous ne devez heureusement pas passer par tous ces calculs à la main. En effet, R mets à votre disposition une fonction qui les fait pour vous : `chisq.test()`. Utilisez maintenant cette fonction pour faire le même calcul sur l'expérience de préférence alimentaire des chimpanzés.
227226

228227
<!-- 💬 **Ce code correspond (pour la dernière ligne) au snippet `.hcchi2uni`** [`.hc` = `h`ypothesis tests: `c`ontingency]. -->
229228

@@ -262,7 +261,7 @@ chisq.test(chimp, p = c(Pomme = 1/3, Banane = 1/3, Orange = 1/3), rescale.p = FA
262261
grade_code("La fonction `chisq.test()` utilise les probabilités théoriques fournies dans `p =` avec `rescale.p = FALSE`, ou les fréquences théoriques dans `p =`, mais alors il faut indiquer `rescale.p = TRUE`. Vérifiez que ceci donne le même résultat que votre calcul à la main.")
263262
```
264263

265-
### Effet de *n*
264+
### Effet de *N*
266265

267266
Calculez à nouveau un test de $\chi^2$ univarié, mais cette fois-ci avec dix fois plus de chimpanzés, et les mêmes proportions observées.
268267

@@ -303,19 +302,19 @@ chisq.test(chimp2, p = c(Pomme = 1/3, Banane = 1/3, Orange = 1/3), rescale.p = F
303302
```
304303

305304
```{r chi_test2_h3-check}
306-
grade_code("Le valeur du chi^2^ obs est beaucoup plus grande ici et la valeur p est plus petite.")
305+
grade_code("Le valeur du chi^2^obs est beaucoup plus grande ici et la valeur P est plus petite.")
307306
```
308307

309-
Plus l'échantillon a une taille *n* importante, plus nous avons des données à disposition et nous pourrons donc rejeter H~0~ si elle est fausse *même si l'écart entre les* $a_i$ et les $\alpha_i$ est très petit. Par contre, si cet écart est très grand, un petit nombre d'observations suffira pour rejeter H~0~. A cause de cet effet de *n*, nous ne dirons *jamais* que nous **acceptons** H~1~, mais nous dirons que nous **ne rejetons pas H~0~**. Car, dans cette situation, deux cas sont possibles :
308+
Plus l'échantillon a une taille *N* importante, plus nous avons des données à disposition et nous pourrons donc rejeter H~0~ si elle est fausse même si l'écart entre les $a_i$ et les $\alpha_i$ est très petit. Par contre, si cet écart est très grand, un plus petit nombre d'observations suffira pour rejeter H~0~. A cause de cet effet de *N*, nous ne dirons *jamais* que nous **acceptons** H~1~, mais nous dirons que nous **ne rejetons pas H~0~**. Car, dans cette situation, deux cas sont possibles :
310309

311310
1. H~0~ est effectivement vraie
312-
2. H~0~ est fausse, mais l'écart est faible et *n* est trop petit pour le détecter, ou nous n'avons pas pu le détecter par le hasard de l'échantillonnage
311+
2. H~0~ est fausse mais *N* est trop petit pour détecter l'écart entre les fréquences observées et théorique (relativement faible)
313312

314-
A l'inverse, lorsque l'on travaille avec une taille d'échantillon *n* extrêmement grande, on peut être amené à rejeter H~0~ pour des écarts entre $a_i$ et $\alpha_i$ tellement faibles qu'ils ne signifient plus rien, biologiquement parlant. **C'est pour cette raison qu'il faut toujours comparer les fréquences observées et les fréquences théoriques en cas de rejet de H~0~**, afin de se faire une idée de l'amplitude des écarts et des niveaux qu'ils concernent.
313+
A l'inverse, lorsque l'on travaille avec une taille d'échantillon *N* extrêmement grande, on peut être amené à rejeter H~0~ pour des écarts entre $a_i$ et $\alpha_i$ tellement faibles qu'ils ne signifient plus rien, biologiquement parlant. **C'est pour cette raison qu'il faut toujours comparer les fréquences observées et les fréquences théoriques en cas de rejet de H~0~**, afin de se faire une idée de l'**amplitude des écarts** et des niveaux qu'ils concernent.
315314

316315
## Conclusion
317316

318-
Ayant maintenant compris la logique et l'utilisation de la distribution du $\chi^2$ et son test d'hypothèse univarié, nous aborderons dans le prochain learnr une autre variante : le test $\chi^2$ d'indépendance.
317+
Ayant maintenant compris la logique et l'utilisation de la distribution du $\chi^2$ et du test d'hypothèse univarié correspondant, nous aborderons dans le prochain learnr une autre variante : le test $\chi^2$ d'indépendance.
319318

320319
```{r comm_noscore, echo=FALSE}
321320
question_text(

0 commit comments

Comments
 (0)