Loi binomiale

\(X\) est la variable aléatoire qui représente le nombre de succès dans \(n\) essais indépendants, \(p\) est la probabilité d’un succès pour chaque essai, \(k\) est le nombre de succès que l’on souhaite observer, et \({n \choose k}\) est le coefficient binomial qui donne le nombre de façons d’obtenir \(k\) succès parmi \(n\) essais

  1. Les sondages : La loi binomiale est souvent utilisée pour modéliser les résultats des sondages, où chaque personne interrogée a une probabilité \(p\) de répondre “oui” à une question donnée. Le nombre de personnes répondant “oui” suit alors une distribution binomiale. Par exemple, si vous menez un sondage sur les préférences politiques d’un groupe de personnes, vous pouvez utiliser la loi binomiale pour prédire combien de personnes vont voter pour chaque candidat.

  2. Les tests médicaux : La loi binomiale peut être utilisée pour modéliser les résultats des tests médicaux, où chaque test peut donner un résultat “positif” ou “négatif”. La probabilité de recevoir un résultat positif dépend de la sensibilité et de la spécificité du test, ainsi que de la prévalence de la maladie dans la population. Par exemple, si vous testez un grand groupe de personnes pour une maladie donnée, vous pouvez utiliser la loi binomiale pour prédire combien de personnes vont recevoir un résultat positif.

  3. Les défauts de fabrication : La loi binomiale peut être utilisée pour modéliser les défauts de fabrication dans une ligne de production. Par exemple, si vous produisez des pièces électroniques et que chaque pièce a une probabilité \(p\) d’être défectueuse, le nombre de pièces défectueuses sur une ligne de production peut être modélisé par une distribution binomiale. Vous pouvez ensuite utiliser cette distribution pour prédire combien de pièces seront défectueuses dans un lot donné.

  4. Les jeux de hasard : La loi binomiale peut également être utilisée pour modéliser les jeux de hasard, comme les jeux de cartes ou les jeux de loterie. Par exemple, si vous jouez à un jeu de cartes dans lequel vous tirez une carte d’un paquet de 52 cartes, vous pouvez utiliser la loi binomiale pour prédire combien de fois vous allez tirer une carte donnée après un certain nombre de tirages.

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.1     ✔ purrr   1.0.1
## ✔ tibble  3.1.8     ✔ dplyr   1.1.0
## ✔ tidyr   1.3.0     ✔ stringr 1.5.0
## ✔ readr   2.1.4     ✔ forcats 1.0.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
# Définir les paramètres de la loi binomiale
n <- 5 # nombre d'essais
p <- 6/20 # probabilité de succès (bille rouge)
k <- 2 # nombre de succès souhaité (2 billes rouges)

# Calculer la probabilité de k succès
prob <- dbinom(k, n, p)
prob
## [1] 0.3087
# Générer toutes les probabilités pour k allant de 0 à n
(probs <- dbinom(0:n, size = n, prob = p))
## [1] 0.16807 0.36015 0.30870 0.13230 0.02835 0.00243
# Charger les packages nécessaires
library(knitr)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
# Créer un data.frame avec les probabilités
df <- data.frame(k = 0:n, Probabilite = probs)

# Formater les probabilités sans le zéro de tête
df$Probabilite <- sub("^0\\.", ".", sprintf("%.4f", df$Probabilite))

# Créer un tableau avec les probabilités
kable(df, align = c("c", "c"), caption = "Distribution de probabilité binomiale pour n = 5 et p = 0.3") %>%
  kable_classic(full_width = FALSE)
Distribution de probabilité binomiale pour n = 5 et p = 0.3
k Probabilite
0 .1681
1 .3601
2 .3087
3 .1323
4 .0284
5 .0024
# Générer toutes les probabilités pour k allant de 0 à n
probs <- data.frame(k = 0:n) %>%
  mutate(prob = dbinom(k, n, p))


# Créer le graphique avec ggplo2
ggplot(probs, aes(x = k, y = prob)) +  geom_rect(aes(xmin = k - 0.5, xmax = k + 0.5, ymin = 0, ymax = prob),
            fill = "red", width = 1) +
  xlab("Nombre de succès (k)") +
  ylab("Probabilité") +
  ggtitle(paste("Distribution de probabilité binomiale pour n =", n, "et p =", p))+
  scale_x_continuous(breaks = 0:n, expand = c(0, 0))
## Warning in geom_rect(aes(xmin = k - 0.5, xmax = k + 0.5, ymin = 0, ymax =
## prob), : Ignoring unknown parameters: `width`

Fonction de répartition

  • Pour tracer la fonction de répartition de la loi binomiale, vous pouvez utiliser la fonction pbinom() de R, qui calcule la probabilité cumulée de la loi binomiale pour un certain nombre de succès. Ensuite, vous pouvez tracer la fonction de répartition en utilisant la fonction ggplot2()

  • La fonction de répartition (ou fonction cumulative) d’une variable aléatoire discrète est une fonction qui associe à chaque valeur de la variable aléatoire la probabilité que cette valeur soit inférieure ou égale à cette valeur

  • Si \(X\) est une variable aléatoire discrète avec un ensemble de valeurs possibles \(S\), la fonction de répartition de \(X\) est définie comme :

\[F(x)=P(X\leq x)\] pour tout \(x\in S\), où \(P(X \leq x)\) est la probabilité que \(X\) prenne une valeur inférieure ou égale à \(x\).

  • Voici un exemple de code qui utilise la fonction pbinom() pour calculer la fonction de répartition de la loi binomiale, puis utilise ggplot2() pour tracer la fonction de répartition :
# Générer toutes les probabilités pour k allant de 0 à n
probs <- data.frame(k = 0:n) %>%
  mutate(prob = dbinom(k, n, p),
         cdf = pbinom(k, n, p))

# Créer le graphique de la fonction de répartition
ggplot(probs, aes(x = k, y = cdf)) +
  geom_step(color = "red", linewidth= .8) +
  xlab("Nombre de succès (k)") +
  ylab("Probabilité cumulée") +
  ggtitle(paste("Fonction de répartition de la loi binomiale pour n =", n, "et p =", p))

Espérance mathématique

  • L’espérance mathématique d’une variable aléatoire X d’une variable aléatoires :

\[ E(X) = \sum_{x}xP(X=x) \]\(x\) est la valeur de la variable aléatoire X et \(P(X=x)\) est la probabilité associée à cette valeur

  • En ce qui concerne la loi binomiale, l’espérance mathématique est donnée par la formule suivante :

\[E(X) = np\]

\(n\) est le nombre d’essais et \(p\) est la probabilité de succès dans chaque essai

  • On peut le vérifier sur notre exemple
n <- 5   # nombre d'essais
p <- 0.3  # probabilité de succès
esp <- sum(0:n * dbinom(0:n, n, p))
tolerance <- 1e-6
abs(esp - n * p) < tolerance
## [1] TRUE
  • Ici, la variable tolerance représente la marge d’erreur tolérée pour la comparaison des deux valeurs. Si la valeur retournée est “TRUE”, alors les deux valeurs sont considérées comme égales avec une marge d’erreur tolérée de tolerance. Vous peuvez ajuster la valeur de tolerance en fonction des besoins

  • Générer un grand nombre de réalisations de la loi binomiale :

set.seed(123)  # pour la reproductibilité
X <- rbinom(10000, n, p)
mean(X)
## [1] 1.4849
  • La valeur de la moyenne obtenue avec R devrait être proche de l’espérance mathématique de la loi binomiale, qui est égale à 1.5 dans cet exemple. Vous pouvez essayer différentes valeurs pour n et p et vérifier que la moyenne des réalisations de la loi binomiale est proche de l’espérance mathématique de la loi binomiale pour ces valeurs

  • La loi des grands nombres est un concept important en probabilité et en statistiques qui stipule que, en répétant un grand nombre de fois une expérience aléatoire, la moyenne des résultats se rapproche de la valeur attendue (l’espérance) de l’expérience. Autrement dit, plus on répète l’expérience, plus la moyenne des résultats converge vers l’espérance

    Dans le cas de la loi binomiale, la moyenne des réalisations obtenues en utilisant la fonction rbinom de R devrait être proche de l’espérance mathématique de la loi binomiale, qui est égale à n * p. En répétant cette expérience aléatoire un grand nombre de fois (par exemple en augmentant le nombre de réalisations à 10000 ou plus), on s’attend à ce que la moyenne des réalisations se rapproche de plus en plus de l’espérance mathématique théorique. C’est une illustration de la loi des grands nombres en action

  • Il peut être intéressant pour les utilisateurs de R d’expérimenter avec différentes valeurs de n et p pour voir comment la loi des grands nombres s’applique à la loi binomiale

  • La loi des grands nombres est un concept fondamental en probabilité et en statistiques. Elle stipule que la moyenne d’un grand nombre d’observations d’une expérience aléatoire converge vers l’espérance mathématique de l’expérience. En d’autres termes, plus on répète une expérience aléatoire, plus la moyenne des résultats se rapproche de la valeur attendue. Cette loi a été démontrée par plusieurs mathématiciens au fil des siècles, et elle est considérée comme l’un des piliers de la théorie des probabilités

Fonction quantile

La fonction quantile \(Q(p)\) est définie comme suit pour une variable aléatoire X :

\[ Q(p) = \min \{x \in \mathbb{R} : F(x) \geq p\} \]

\(F(x)\) est la fonction de répartition de \(X\) et \(p\) est une probabilité entre 0 et 1. Autrement dit, la fonction quantile renvoie la plus petite valeur de la variable aléatoire \(X\) telle que la probabilité de la variable aléatoire prenant une valeur inférieure ou égale à cette valeur soit supérieure ou égale à la probabilité donnée

  • Le concept de quantile est important en statistiques car il permet de caractériser la distribution d’une variable aléatoire. En particulier, les quantiles permettent de décrire les valeurs extrêmes, les valeurs centrales, ainsi que la dispersion des données

  • Par exemple, le quantile d’ordre 0.5 (ou la médiane) est une mesure de la tendance centrale qui divise la distribution en deux parties égales. Les quartiles (quantiles d’ordre 0.25 et 0.75) permettent de caractériser la dispersion des données autour de la médiane. Les déciles (quantiles d’ordre 0.1, 0.2, …, 0.9) et les percentiles (quantiles d’ordre 1, 2, …, 99) permettent d’avoir une idée plus fine de la répartition des données

  • En somme, les quantiles sont des outils très utiles pour résumer et visualiser une distribution de données, et ils sont largement utilisés en statistiques, en particulier en statistiques descriptives et en analyse exploratoire des données

Dans le cas de la loi binomiale, la fonction quantile permet de déterminer la plus petite valeur \(k\) telle que la probabilité de la variable aléatoire prenant une valeur inférieure ou égale à k soit supérieure ou égale à une probabilité donnée p. On peut exprimer cela comme suit:

\[ Q(p) = \min\{k : P(X \leq k) \geq p\} \]

\(X\) suit une loi binomiale avec des paramètres \(n\) et \(p\), et \(P(X ≤ k)\) est la probabilité cumulative jusqu’à \(k\), \(k\) est un entier qui varie entre \(0\) et \(n\)

  • Voici comment calculer le quantile correspondant à une probabilité de 0.1 pour une loi binomiale de paramètres \(n = 10\) et \(p = 0.3\) :
# Définir les paramètres de la loi binomiale
n <- 10
p <- 0.3

# Calculer le quantile pour une probabilité de 0.1
q <- qbinom(0.1, size = n, prob = p)
q
## [1] 1
pbinom(1, size=n, prob = p)
## [1] 0.1493083
  • En utilisant la fonction qbinom de R avec p = 0.1, nous pouvons déterminer le quantile correspondant à une probabilité de 0.1 dans la distribution de probabilité binomiale. Dans cet exemple, le quantile est égal à 1, ce qui signifie que la probabilité d’obtenir 1 succès ou moins est supérieure à 0.1, tandis que la probabilité d’obtenir 0 succès ou moins est inférieure à 0.1
# Définir les paramètres de la loi binomiale
n <- 5
p <- 0.3

# Générer une séquence de probabilités allant de 0 à 1 par pas de 0.01
probs <- seq(0, 1, 0.001)

# Calculer les quantiles correspondants à chaque probabilité
quantiles <- qbinom(probs, size = n, prob = p)

# Créer le graphique
ggplot(data.frame(probs, quantiles), aes(x = probs, y = quantiles)) +
  geom_line() +
  xlab("Probabilité") +
  ylab("Quantile") +
  ggtitle("Fonction quantile pour la distribution binomiale avec n = 5 et p = 0.3")

library(ggplot2)

# Définir les paramètres de la loi binomiale
n <- 5
p <- 0.3

# Générer la fonction quantile
qfun <- stepfun(seq(0, 1, 0.01), c(0, qbinom(seq(0, 1, 0.01), n, p)))

# Créer le graphique
ggplot(data.frame(x = c(0, 1)), aes(x = x)) +
  stat_function(fun = qfun, geom = "step", size = .8, color = "red") +
  xlab("Probabilité") +
  ylab("Quantile") +
  ggtitle(paste("Fonction quantile pour n =", n, "et p =", p))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.

  • stat_function est une fonction de ggplot2 qui permet de tracer une courbe représentant une fonction donnée. Cette fonction prend en entrée une fonction R et un intervalle de valeurs pour la variable indépendante. Elle utilise ensuite cette fonction pour générer des valeurs de la variable dépendante à partir des valeurs de la variable indépendante, puis trace la courbe correspondante.

  • Dans notre cas, la fonction que nous avons fournie à stat_function était notre fonction quantile, calculée à l’aide de stepfun et de qbinom. Nous avons également spécifié l’intervalle de valeurs pour la variable indépendante avec data.frame(x = c(0, 1)).

  • En utilisant stat_function, nous avons pu tracer notre fonction quantile en utilisant les outils de ggplot2, comme le choix de la couleur et de l’épaisseur de la ligne, ainsi que le formatage des étiquettes d’axe et de titre.

# Définir les paramètres de la loi binomiale
n <- 5
p <- 0.3

# Générer la fonction de répartition
pfun <- function(x) pbinom(x, n, p)

# Créer le graphique
ggplot(data.frame(x = 0:n), aes(x = x)) +
  stat_function(fun = pfun, geom = "step", size = .8, color = "red") +
  xlab("Nombre de succès (k)") +
  ylab("Probabilité cumulée") +
  ggtitle(paste("Fonction de répartition pour n =", n, "et p =", p))

Variance

\[ Var(X) = E[(X - E[X])^2] \]

\(E[X]\) est l’espérance mathématique de \(X\). En ce qui concerne la loi binomiale, sa variance est donnée par :

\[ Var(X) = np(1-p) \]

\(n\) est le nombre d’essais et \(p\) la probabilité de succès lors de chaque essai. On peut vérifier cette propriété en utilisant R

# Définir les paramètres de la loi binomiale
n <- 5
p <- 0.3

# Calculer l'espérance et la variance de la loi binomiale
mu <- n * p
variance <- n * p * (1 - p)

# Afficher les résultats
cat("Espérance de la loi binomiale :", mu, "\n")
## Espérance de la loi binomiale : 1.5
cat("Variance de la loi binomiale :", variance, "\n")
## Variance de la loi binomiale : 1.05
# Calculer la variance pondérée
probs <- dbinom(0:n, n, p)
weighted_var <- sum((0:n - mu)^2 * probs)

# Afficher la variance pondérée
cat("Variance pondérée de la loi binomiale :", weighted_var, "\n")
## Variance pondérée de la loi binomiale : 1.05

Exercices

  1. Plus de 50 subiront une crise cardiaque au cours de la prochaine décennie.
  2. Moins de 44 souffriront d’une crise cardiaque au cours de la prochaine décennie.
  3. Exactement 45 souffriront d’une crise cardiaque au cours de la prochaine décennie.
  1. Quelle est la probabilité que 10 d’entre eux deviennent myopes avant l’âge de 16 ans ?
  2. Quelle est la probabilité que moins de 5 d’entre eux deviennent myopes avant l’âge de 16 ans ?
  3. Quelle est la probabilité que plus de 15 d’entre eux deviennent myopes avant l’âge de 16 ans ?