Skip to content

Commit

Permalink
Learnrs for module 7 ready
Browse files Browse the repository at this point in the history
  • Loading branch information
phgrosjean committed Feb 5, 2024
1 parent c238ced commit f74fbab
Show file tree
Hide file tree
Showing 18 changed files with 38 additions and 34 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Package: BioDataScience1
Version: 2023.6.0
Version: 2023.7.0
Title: A Series of Learnr Documents for Biological Data Science 1
Description: Interactive documents using learnr and shiny applications for studying biological data science.
Authors@R: c(
Expand Down
4 changes: 4 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# BioDataScience1 2023.7.0

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

# BioDataScience1 2023.6.0

- Learnrs **A06La_recombination** and **A06Lb_multi-table** ready.
Expand Down
Empty file modified inst/shiny/A04Ca_charts/app.R
100644 → 100755
Empty file.
Empty file modified inst/tutorials/A00La_discovery/images/record_notok1.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified inst/tutorials/A00La_discovery/images/record_notok2.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified inst/tutorials/A00La_discovery/images/record_ok1.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified inst/tutorials/A00La_discovery/images/record_ok2.png
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified inst/tutorials/A01Lb_git/A01Lb_git.Rmd
100644 → 100755
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Le calcul des probabilités et le B-A-BA des statistiques. Il n'est pas toujours

- Calculer des probabilités sur base d'un tableau de contingence

Avant d'aborder ce tutoriel, assurez-vous d'avoir bien compris le contenu de la [section 7.1](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/probabilit%25C3%25A9s.html) du cours. En effet, ce learnr sert d'auto-évaluation sur cette matière et ne sera utile que dans un contexte où vous la maîtrisez déjà, à des fins de vérification de vos acquis.
Avant d'aborder ce tutoriel, assurez-vous d'avoir bien compris le contenu de la [section 7.1](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/probabilit%25C3%25A9s.html) du cours. En effet, ce learnr sert d'auto-évaluation sur cette matière et ne sera utile que dans un contexte où vous la maîtrisez déjà, à des fins de vérification de vos acquis.

## Lire des probabilités

Expand All @@ -61,7 +61,7 @@ quiz(
allow_retry = TRUE, random_answer_order = TRUE,
incorrect = "Désolé, mais ce n'est pas correct. Recommencez afin de trouver la bonne réponse",
correct = "Les probabilités conditionnelles ont une dépendance entre elles."),
question("Comment lire la proposition suivante : Pr{A + B} ?",
question("Comment lire la proposition suivante : Pr{A+B} ?",
answer("Probabilité d'avoir A ou B", correct = TRUE, message = "En calcul de probabilité, l'addition signifie que l'on considère la probabilité que l'un parmi plusieurs évènements disjoints se produise"),
answer("Probabilité d'avoir A et B"),
answer("Probabilité d'avoir A si B se produit"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ Ce tutoriel est une auto-évaluation de vos connaissances pour :

- Vous assurer d'avoir bien compris la distribution de Poisson

Vous devez avoir étudié le contenu du [module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/proba.html) du cours SDD I, et en particulier les sections relatives à la [distribution binomiale](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/distribution-binomiale.html) et à la [distribution de Poisson](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/distribution-de-poisson.html). Enfin, cette matière nécessite que vous soyez à l'aise avec le calcul des probabilités, et que vous l'ayez vérifié via le tutoriel précédent `BioDataScience1::run("A07La_proba")`.
Vous devez avoir étudié le contenu du [module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/proba.html) du cours SDD I, et en particulier les sections relatives à la [distribution binomiale](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/distribution-binomiale.html) et à la [distribution de Poisson](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/distribution-de-poisson.html). Enfin, cette matière nécessite que vous soyez à l'aise avec le calcul des probabilités, et que vous l'ayez vérifié via le tutoriel précédent `BioDataScience1::run("A07La_proba")`.

## Distribution binomiale

La distribution binomiale calcule les probabilités de *n* succès pour un modèle essai-erreur indépendant. Cela signifie que seulement deux évènements disjoints sont possibles : le "succès" ou l'"échec" (ces noms sont attribués aux deux évènements qui peuvent représenter tout autre chose comme pile ou face, mâle ou femelle, chevelu ou non, ...). Le nombre d'essais indépendants *p* est fixé à l'avance et est toujours le même pour une distribution donnée.
La distribution binomiale calcule les probabilités de *n* succès pour un modèle essai-erreur indépendant. Cela signifie que seulement deux évènements disjoints sont possibles : le "succès" ou l'"échec" (ces noms sont attribués aux deux évènements qui peuvent représenter tout autre chose comme pile ou face, mâle ou femelle, chevelu ou non ...). Le nombre d'essais indépendants *p* est fixé à l'avance et est toujours le même pour une distribution donnée.

![](images/lions.jpg)

Expand Down Expand Up @@ -74,27 +74,27 @@ Calculez la table des probabilités possibles pour tous les évènements depuis
<!-- 💬 **Ce code correspond au snippet `.ibtable`** [`.ib`= (d)istribution: `b`inomial]. -->

```{r binom1_h2, exercise=TRUE}
(bi_table <- dtx(success = ___,
probability = dbinom(___, size = ___, prob = ___)))
(bi_table <- dtx(succès = ___,
probabilité = dbinom(___, size = ___, prob = ___)))
```

```{r binom1_h2-hint-1}
(bi_table <- dtx(success = 0:10,
probability = dbinom(0:10, size = ___, prob = ___)))
(bi_table <- dtx(succès = 0:10,
probabilité = dbinom(0:10, size = ___, prob = ___)))
#### ATTENTION: Hint suivant = solution !####
```

```{r binom1_h2-solution}
(bi_table <- dtx(success = 0:10,
probability = dbinom(0:10, size = 10, prob = 0.5)))
(bi_table <- dtx(succès = 0:10,
probabilité = dbinom(0:10, size = 10, prob = 0.5)))
```

```{r binom1_h2-check}
grade_code("Oui, `dbinom()` permet de réaliser ce calcul. Vous auriez aussi pu utiliser `density(dist_binomial(10, 0.5), 0:10)[[1]]` à la place.")
```

Utilisez R, cette fois-ci, pour répondre à une des questions posées lors du quiz plus hau : "Calculez la probabilité d'observer au maximum 3 mâles sur 10 individus", en utilisant `bi <- dist_binomial()`.
Utilisez R cette fois-ci, pour répondre à une des questions posées lors du quiz plus hau : "Calculez la probabilité d'observer au maximum 3 mâles sur 10 individus", en utilisant `bi <- dist_binomial()`.

<!-- 💬 **Ce code correspond au snippet `.ibproba`.** -->

Expand Down Expand Up @@ -187,7 +187,7 @@ grade_code("Les traits verticaux représentent ici la probabilité de chaque év

![](images/fishing.jpg)

La distribution de Poisson détermine, tout comme la distribution binomiale, les probabilités de nombres de succès par rapport à un nombre d'essais indépendants, mais ici la probabilité de succès est très faible (évènement rare). Vous pouvez utiliser cette distribution pour déterminer la probabilité de rencontrer un animal rare, pour prédire les tremblements de terre, pour déterminer la probabilité d'une maladie rare, ... et même pour prédire la probabilité que vous arriviez à pêcher un gros poisson avec votre petite canne à pêche !
La distribution de Poisson détermine, tout comme la distribution binomiale, les probabilités de nombres de succès par rapport à un nombre d'essais indépendants, mais ici la probabilité de succès est très faible (évènement rare). Vous pouvez utiliser cette distribution pour déterminer la probabilité de rencontrer un animal rare, pour prédire les tremblements de terre, pour déterminer la probabilité d'une maladie rare ... et même pour prédire la probabilité que vous arriviez à pêcher un gros poisson avec votre petite canne à pêche !

Répondez à la question suivante en effectuant le calcul à la main (en vous aidant éventuellement d'une calculatrice de poche).

Expand All @@ -210,20 +210,20 @@ Utilisez R pour représentez la table de probabilités lié à l'exercice ci-des

```{r poisson1_h2, exercise=TRUE}
(poi_table <- dtx(occurences = 0:(___ + 20),
probability = dpois(0:(___ + 20), lambda = ___)))
probabilité = dpois(0:(___ + 20), lambda = ___)))
```

```{r poisson1_h2-hint-1}
(poi_table <- dtx(occurences = 0:(3 + 20),
probability = dpois(0:(___ + 20), lambda = ___)))
probabilité = dpois(0:(___ + 20), lambda = ___)))
#### ATTENTION: Hint suivant = solution !####
```

```{r poisson1_h2-solution}
## Solution ##
(poi_table <- dtx(occurences = 0:(3 + 20),
probability = dpois(0:(3 + 20), lambda = 3)))
probabilité = dpois(0:(3 + 20), lambda = 3)))
```

```{r poisson1_h2-check}
Expand Down Expand Up @@ -256,7 +256,7 @@ chart$cumulative(poi) +
```

```{r poisson2_h2-check}
grade_code("Ce graphique montre que l'on tend pour les probabilités cumulées très rapidement vers 1 (pour un quantile aux alentours de 15). Cela signifie que l'on a pratiquement 100% de chances d'observer maximum 15 fois cet évènement rare durant la période d'observation définie.")
grade_code("Ce graphique montre que l'on tend, pour les probabilités cumulées, très rapidement vers 1 (pour un quantile aux alentours de 15). Cela signifie que l'on a pratiquement 100% de chances d'observer maximum 15 fois cet évènement rare durant la période d'observation définie.")
```

## Conclusion
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Distributions continues"
author: "Guyliann Engels & Philippe Grosjean"
description: "**SDD I Module 7** Distributions Normale et log-Normale, graphique quantile-quantile."
description: "**SDD I Module 7** Distributions normale et log-normale, graphique quantile-quantile."
tutorial:
id: "A07Lc_distri2"
version: 2.1.0/7
Expand Down Expand Up @@ -30,23 +30,23 @@ BioDataScience1::learnr_server(input, output, session)

## Objectifs

La loi de distribution Normale est centrale en statistiques. Ce tutoriel vous permet d'auto-évaluer vos acquis à son sujet. Vous allez :
La loi de distribution normale est centrale en statistiques. Ce tutoriel vous permet d'auto-évaluer vos acquis à son sujet. Vous allez :

- Vérifier que vous comprenez bien la logique des calculs autour de la distribution Normale
- Vérifier que vous comprenez bien la logique des calculs autour de la distribution normale

- Réaliser et interpréter un graphique quantile-quantile

Vous devez avoir étudié le contenu du [module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/proba.html) du cours SDD I, et en particulier les sections relatives à la [distribution Normale](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/distribution-normale.html) et au [graphique quantile-quantile](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2022/graphique-quantile-quantile.html). Assurez-vous également au préalable d'être à l'aise avec le calcul des probabilités (que vous vérifiez avec le learnr `BioDataScience1::run("A07La_proba")`).
Vous devez avoir étudié le contenu du [module 7](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/proba.html) du cours SDD I, et en particulier les sections relatives à la [distribution Normale](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/distribution-normale.html) et au [graphique quantile-quantile](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2023/graphique-quantile-quantile.html). Assurez-vous également au préalable d'être à l'aise avec le calcul des probabilités (que vous vérifiez avec le learnr `BioDataScience1::run("A07La_proba")`).

## Distribution Normale
## Distribution normale

![](images/para_normal_distribution.jpg)

La distribution Normale (ou Gaussienne) est appelée comme cela parce que c'est celle qui se rencontre le plus souvent. Elle s'observe à chaque fois que le résultat est la somme de petits effets aléatoires qui se combinent. Elle a une forme caractéristique, dite "en cloche".
La distribution normale (ou Gaussienne) est appelée comme cela parce que c'est celle qui se rencontre le plus souvent. Elle s'observe à chaque fois que le résultat est la somme de petits effets aléatoires qui se combinent. Elle a une forme caractéristique, dite "en cloche".

### Graphique

Employez R pour représenter la densité de probabilité de la distribution $Y \sim N(10, 3)$.
Employez R pour représenter la densité de probabilité de la distribution $Y \sim N(10, 9)$ (attention à la différence entre la variance ici et l'écart type "sigma" qui est utilisé dans la fonction de calcul) !

<!-- 💬 **Ce code correspond au snippet `.indens`** [`.in` = (d)`i`stribution: `n`ormal]. -->

Expand All @@ -72,7 +72,7 @@ chart(N1) +
```

```{r normal1_h2-check}
grade_code("Ceci est plutôt simple à réaliser. La ligne avec `ylab()` n'est là que pour s'assurer d'avoir le label de l'axe en français.")
grade_code("Ceci est plutôt simple à réaliser une fois que l'on se rappelle que l'écart type \"sigma\" est la racine carrée dce la variance. La ligne avec `ylab()` n'est là que pour s'assurer d'avoir le label de l'axe en français.")
```

Ajoutez maintenant sur le graphique une aire en rouge délimitée entre les quantiles 8 et 12 et annotez-là en son centre avec l'indication "P[8, 12]" en rouge. Pour ajouter une aire colorée sous la courbe, vous utilisez `geom_funfill()` avec l'argument `fun = dfun(...)` pour un graphique de densité de probabilité ou `fun = cdfun(...)` pour un graphique de densité de probabilité cumulée. Enfin pour annoter le graphique avec du texte, vous utilisez `annotate("text", ...)`.
Expand Down Expand Up @@ -110,13 +110,13 @@ chart(N1) +
grade_code("Si `geom_funfill()` est une function spécifique à `SciViews::R` pour compléter les graphiques des distributions, `annotate(\"text\", ...)` est classique pour les graphiques de type {ggplot2} comme ici et est donc réutilisable pour annoter tous vos graphiques.")
```

### Calculs avec la loi Normale
### Calculs avec la loi normale

Comme pour les autres lois de distributions, il est vital de pouvoir calculer des probabilités en fonctions de quantiles et des quantiles à partir de probabilités. Nous nous réfèrerons toujours à la probabilités d'avoir une valeur plus petite (aire à gauche avec `lower.tail = TRUE`) ou plus grande (aide à droite avec `lower.tail = FALSE`) que ce quantile. Une aire comprise entre deux quantiles doit se calculer en deux temps (Pr{Q2} - Pr{Q1}).
Comme pour les autres lois de distributions, il est vital de pouvoir calculer des probabilités en fonctions de quantiles et des quantiles à partir de probabilités. Nous nous référerons toujours à la probabilités d'avoir une valeur plus petite (aire à gauche avec `lower.tail = TRUE`) ou plus grande (aide à droite avec `lower.tail = FALSE`) que ce quantile. Une aire comprise entre deux quantiles doit se calculer en deux temps (Pr{Q2} - Pr{Q1}).

![](images/maize.jpg)

Vous étudiez la croissance de plants de maïs. A partir d'un grand nombre de mesures, vous avez pu déterminer que la hauteur de vos plants suit une distribution Normale avec une moyenne de 145 cm et un écart type de 22 cm.
Vous étudiez la croissance de plants de maïs. A partir d'un grand nombre de mesures, vous avez pu déterminer que la hauteur de vos plants suit une distribution Normale avec une moyenne de 145 cm et une variance de 484 (donc un écart type de 22 cm).

Calculez la probabilités d'avoir un plant de maïs pris au hasard de moins de 100 cm de haut dans votre champ.

Expand Down Expand Up @@ -174,7 +174,7 @@ pnorm(150, mean = 145, sd = 22, lower.tail = TRUE) -
grade_code("Une aire comprise entre deux quantiles se calcule toujours en soustrayant la plus petite de la plus grande (par rapport aux deux quantiles respectifs). Deux calculs sont possibles : via les aires à gauche comme ici, ou via les aires à droite en utilisant `lower.tail = FALSE`.")
```

En partant de la distribution théorique $Y \sim N(10, 2.5)$, calculez le quantile délimitant une probabilités à droite de 0.1 (10% des plus grandes observations), en utilisant l'une des fonctions p/q/r/d.
En partant de la distribution théorique $Y \sim N(10, 6.25)$, calculez le quantile délimitant une probabilités à droite de 0.1 (10% des plus grandes observations), en utilisant l'une des fonctions p/q/r/d.

<!-- 💬 **Ce code correspond au snippet `.inquant`.** -->

Expand Down Expand Up @@ -209,7 +209,7 @@ SciViews::R("infer")
(crabs <- read("crabs", package = "MASS", lang = "fr"))
```

Réalisez un graphique quantile-quantile visant à déterminer si la longueur de carapace (variable nommée `length`) de ces crabes suit une distribution Normale.
Réalisez un graphique quantile-quantile visant à déterminer si la longueur de carapace (variable nommée `length`) de ces crabes suit une distribution normale.

<!-- 💬 **Ce code correspond au snippet `.cuqqnorm`** [`.cu` = `c`hart: `u`nivariate]. -->

Expand Down Expand Up @@ -238,10 +238,10 @@ car::qqPlot(crabs[["length"]], distribution = "norm",
```

```{r qqnorm1_h2-check}
grade_code("Rappelez-vous de la syntaxe `DF$VAR` pour se référer à la variable nommée `VAR` dans le dataframe `DF`. Vous voyez ici que `length` suit une distribution Normale parce que tous les points (ou quasi-tous dans d'autres situations) sont à l'intérieur de l'enveloppe de confiance à 95% représenté par les courbes en pointillés bleus.")
grade_code("Rappelez-vous de la syntaxe `DF$VAR` pour se référer à la variable nommée `VAR` dans le dataframe `DF`. Vous voyez ici que `length` suit une distribution normale parce que tous les points (ou quasi-tous dans d'autres situations) sont à l'intérieur de l'enveloppe de confiance à 95% représenté par les courbes en pointillés bleus.")
```

Est-ce que la longueur de carapace suit une distribution log-Normale chez ces mêmes crabes ?
Est-ce que la longueur de carapace suit une distribution log-normale chez ces mêmes crabes ?

```{r qqnorm2_h2, exercise=TRUE}
SciViews::R("infer")
Expand All @@ -268,12 +268,12 @@ car::qqPlot(crabs[["length"]], distribution = "lnorm",
```

```{r qqnorm2_h2-check}
grade_code("Nous utilisons `distribution = \"norm\"` pour une Normale et `distribution = \"lnorm\"` pour une log-Normale. Dans le cas présent, les données suivent très clairement une distribution Normale. Dans d'autres situations, vous pouvez opter en faveur de la distribution log-Normale si les données n'admettent pas de valeurs négatives (par exemple, des longueurs, des masses ou des concentrations en solution où des valeurs négatives sont impossibles)et que le graphique quantile-quantile est en sa faveur, ou équivalent entre les deux.")
grade_code("Nous utilisons `distribution = \"norm\"` pour une normale et `distribution = \"lnorm\"` pour une log-normale. Dans le cas présent, les données suivent très clairement une distribution normale. Dans d'autres situations, vous pouvez opter en faveur de la distribution log-normale si les données n'admettent pas de valeurs négatives (par exemple, des longueurs, des masses ou des concentrations en solution où des valeurs négatives sont impossibles)et que le graphique quantile-quantile est en sa faveur, ou équivalent entre les deux.")
```

## Conclusion

Vous rencontrerez très souvent la loi Normale dans vos analyses de données biologiques. Être capable de vérifier si un échantillon suit cette distribution ou non sera également très utile. Faites tout de même attention à la **taille de l'échantillon**. Il vous faut plusieurs dizaines d'observations, sinon, vous n'aurez pas suffisamment de données pour l'estimer de manière valable.
Vous rencontrerez très souvent la loi normale dans vos analyses de données biologiques. Être capable de vérifier si un échantillon suit cette distribution ou non sera également très utile. Faites tout de même attention à la **taille de l'échantillon**. Il vous faut plusieurs dizaines d'observations, sinon, vous n'aurez pas suffisamment de données pour l'estimer de manière valable.

```{r comm_noscore, echo=FALSE}
question_text(
Expand Down
Empty file modified inst/tutorials/A10Lb_kruskal/A10Lb_kruskal.Rmd.inactive
100644 → 100755
Empty file.
Empty file modified inst/tutorials/A11Lb_anova2mixte/A11Lb_anova2mixte.Rmd.inactive
100644 → 100755
Empty file.
Empty file modified inst/tutorials/A11Lb_anova2mixte/images/P8300035.jpeg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified inst/tutorials/A11Lb_anova2mixte/images/P9040123.jpeg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified inst/tutorials/A11Lc_syntaxr/A11Lc_syntaxr.Rmd.inactive
100644 → 100755
Empty file.
Empty file modified inst/tutorials/A12La_correlation/A12La_correlation.Rmd.inactive
100644 → 100755
Empty file.
Empty file modified inst/tutorials/A12La_correlation/images/iris.jpg
100644 → 100755
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f74fbab

Please sign in to comment.