7.3 Distribution uniforme

La loi de la distribution uniforme se rapporte à un mécanisme qui génère tous les événements de manière équiprobable.

7.3.1 Distribution discrète

Dans le cas d’événements discrets, si \(n_E\) est le nombre total d’événements possibles, la probabilité d’un de ces événements vaut donc :

\[\mathrm{P}(E) = \frac{1}{n_E}\]

La distribution uniforme est d’application pour les jeux de hasard (dés, boules de loto, …). En biologie, elle est plus rare. Dans le cas d’un sexe ratio de 1:1 (autant de mâles que de femelles), la probabilité qu’un nouveau né soit un mâle ou une femelle suit une distribution uniforme et vaut 1/2. La distribution spatiale des individus dans une population biologique peut être uniforme lorsque les individus interagissent de telle manière que la distance entre eux soit identique (par exemple, dans un groupe de manchots Aptenodytes patagonicus sur la banquise). Imaginons un animal hypothétique pour lequel la portée peut être de 1 à 4 petits de manière équiprobable. Nous avons alors 1/4 des portées qui présentent respectivement, 1, 2, 3 ou 4 petits (Fig. 7.1).

Probabilité du nombre de petits dans une portée qui suivrait un distribution strictement uniforme entre 1 et 4.

Figure 7.1: Probabilité du nombre de petits dans une portée qui suivrait un distribution strictement uniforme entre 1 et 4.

7.3.2 Distribution continue

D’emblée, nous pouvons facilement démontrer quel est le problème avec les probabilités dans le cas de la distribution uniforme continue. Nous avons en effet, un nombre infini d’événements équiprobables possibles. Donc, la probabilité de chaque événement est (\(n_E = \infty\)) :

\[\mathrm{P}(E) = \frac{1}{\infty} = 0\]

… et ce calcul est correct !

Dans le cas de probabilités continues, la probabilité d’un événement en particulier est toujours nulle. Nous pouvons seulement calculer que l’un parmi plusieurs événements se produise (compris dans un intervalle).

La représentation graphique d’une loi de distribution continue est un outil utile pour la comprendre et vérifier ses calculs. La forme la plus courante consiste à montrer la courbe de densité de probabilité pour une distribution continue. Sur l’axe X, nous avons les quantiles (les valeurs observables), et sur l’axe Y, la densité de probabilité31. Par exemple, si nous constatons qu’un insecte butineur arrive sur une fleur en moyenne toutes les 4 minutes, la probabilité qu’un butineur arrive dans un intervalle de temps compris entre 0 et 4 min depuis le moment initial \(t_0\) de nos observations suit une distribution uniforme continue (Fig. 7.2).

Probabilité qu'un nouvel insecte butineur arrive dans un intervalle de 0 à 4 min si, en moyenne, un insecte arrive toutes les 4 min.

Figure 7.2: Probabilité qu’un nouvel insecte butineur arrive dans un intervalle de 0 à 4 min si, en moyenne, un insecte arrive toutes les 4 min.

Une autre représentation courante est la densité de probabilité cumulée qui représente la probabilité d’observer un quantile ou moins. Dans le cas présent, cela représente la probabilité qu’au moins un insecte butineur soit observé pour des durées d’observation croissantes (Fig. 7.3).

Probabilité cumulée qu'un nouvel insecte butineur arrive dans un intervalle de 0 à 4 min si, en moyenne, un insecte arrive toutes les 4 min.

Figure 7.3: Probabilité cumulée qu’un nouvel insecte butineur arrive dans un intervalle de 0 à 4 min si, en moyenne, un insecte arrive toutes les 4 min.

Notation : nous noterons qu’une variable suit une loi de distribution comme ceci (le tilde ~ se lit “suit une distribution”, et U représente la distribution uniforme avec entre parenthèse, les paramètres de la distribution, ici, les bornes inférieure et supérieure) :

\[X \sim U(0, 4)\]

Cela signifie : “la variable aléatoire X suit une distribution uniforme 0 à 4”.

La distribution \(U(0, 1)\) est particulière et est appelée distribution uniforme standard. Elle a la propriété particulière que si \(X \sim U(0, 1)\) alors \((1-X) \sim U(0, 1)\).

7.3.3 Quantiles vers probabilités

L’aire sous la courbe représente une probabilité associée à l’intervalle considéré pour les quantiles. Répondez aux questions suivantes pour notre variable \(X \sim U(0,4)\) :

  1. Quelle est la probabilité que X = 1 (un insecte butineur arrive après exactement 1,00000… min d’observation) ?
  2. Quelle est la probabilité que X soit compris entre 1 et 1,5 ?

La réponse à la question (1) est immédiate. Cette probabilité est nulle (voir plus haut)32 ! Pour la question (2), nous pouvons répondre en calculant l’aire sous la courbe entre les quantiles 1 et 1,5 (représentée par l’aire en rouge à la Fig. 7.4).

Probabilité qu'un insecte butineur arrive entre 1 et 1,5 min après le début d'une observation (aire P en rouge).

Figure 7.4: Probabilité qu’un insecte butineur arrive entre 1 et 1,5 min après le début d’une observation (aire P en rouge).

Ici, le calcul est assez simple à faire à la main. Mais nous verrons d’autres lois de distribution plus complexes. Dans tous les cas, R offre des fonctions qui calculent les aires à gauche ou à droite d’un quantile donné. Le nom de la fonction est toujours p<distri>(), avec pour la distribution uniforme punif(). L’aire à gauche du quantile nécessite de spécifier l’argument lower.tail = TRUE (“queue en bas de la distribution” en anglais). Pour l’aire à droite, on indiquera évidemment lower.tail = FALSE. Donc, pour calculer la probabilité qu’un insecte arrive en moins de 1,5 sec, nous écrirons :

punif(1.5, min = 0, max = 4, lower.tail = TRUE)
# [1] 0.375

Mais comme nous voulons déterminer la probabilité qu’un insecte arrive entre 1 et 1,5 sec, nous devons soustraire à cette valeur la probabilité qu’un insecte arrive en moins de 1 sec (la zone hachurée en rouge dans la Fig 7.4 est en effet l’aire à gauche depuis le quantile 1,5 moins l’aire à gauche depuis le quantile 1) :

punif(1.5, min = 0, max = 4, lower.tail = TRUE) -
punif(1.0, min = 0, max = 4, lower.tail = TRUE)
# [1] 0.125

La réponse est 0,125, soit une fois sur huit.

Le calcul de probabilités sur base de lois de distributions continues se fait via les aires à gauche ou à droite d’un quantile sur le graphique de densité de probabilité. Pour une aire centrale, nous soustrayons les aires à gauche des deux quantiles respectifs.

7.3.4 Probabilités vers quantiles

Le calcul inverse est parfois nécessaire. Par exemple pour répondre à la question suivante :

  • Combien de temps devons-nous patienter pour observer l’arrivée d’un insecte butineur sur la fleur une fois sur trois observations en moyenne ?

Ici, nous partons d’une probabilité (1/3) et voulons déterminer le quantile qui définit une aire à gauche de 1/3 sur le graphique (Fig. 7.5).

Temps d'observation nécessaire (quantile Q) pour voir arriver un butineur une fois sur trois (aire P en rouge de 1/3 à gauche de Q).

Figure 7.5: Temps d’observation nécessaire (quantile Q) pour voir arriver un butineur une fois sur trois (aire P en rouge de 1/3 à gauche de Q).

Dans R, la fonction qui effectue ce calcul est q<distri>(). Donc ici, il s’agit de qunif(). Les arguments sont les mêmes que pour punif() sauf le premier qui est une ou plusieurs probabilités. Nous répondons à la question de la façon suivante :

qunif(1/3, min = 0, max = 4, lower.tail = TRUE)
# [1] 1.333333

Donc il faut observer pendant 1,33 min (1 min et 20 sec) pour avoir 1 chance sur 3 d’observer l’arrivée d’un insecte butineur.

7.3.5 Calcul avec les snippets

La SciViews Box propose différents snippets pour nous aider à effectuer nos différents calculs et graphiques relatifs à la distribution uniforme continue. Ils se retrouvent dans le menu (d)istributions accédé depuis .... Donc ..i donne directement accès à ce menu, et puis (d)istributions: uniform accédé depuis .iu directement. Ensuite, il suffit de choisir le snippet dans le menu déroulant (voir ci-dessous).

  • .iuproba : calcul de probabilités depuis des quantiles
  • .iuquant : calcul de quantile depuis des probabilités
  • .iurandom : génération de nombres pseudo-aléatoires
  • .iudens : graphique de la densité de probabilité
  • .iucumul : graphique de la densité de probabilité cumulée
  • .iullabel : ajout d’un label sur le graphique à gauche
  • .iurlabel: ajout d’un label sur le graphique à droite

Le snippet .iurandom nécessite quelques explications supplémentaires. R est capable de simuler la génération de nombres aléatoires selon différentes lois de distribution (r<distri>()). runif() est la fonction qui le fait pour une distribution uniforme continue. Comme il ne s’agit pas réellement de nombres aléatoires, on parle de générateur de nombres pseudo-aléatoires. En fait, il s’agit d’une série de nombres qui a les mêmes propriétés que des nombres réellement aléatoires. R se positionne au hasard dans cette série. Donc, à chaque fois que vous appelez la fonction runif(), vous obtenez logiquement des valeurs différentes. A des fins de reproductibilité, il est possible de forcer R à partir en un point précis de la série avec la fonction set.seed() avec un nombre comme argument qui donne la position. Par exemple set.seed(281)33. La génération de nombres aléatoires dans les instructions qui suivent seront alors toujours les mêmes. Voici un exemple de 10 nombres aléatoires générés depuis une distribution uniforme standard (compris entre 0 et 1). Chaque fois que vous exécuterez ces deux instructions exactement l’une après l’autre, vous obtiendrez toujours la même suite. Si vous ré-exécutez la seconde instruction sans la première, vous obtiendrez une suite différente.

set.seed(946)
runif(10, min = 0, max = 1)
#  [1] 0.6378020 0.7524999 0.5593599 0.6688387 0.8989262 0.5300384 0.1520689
#  [8] 0.9031163 0.2693327 0.6738862

  1. Plus la densité de probabilité est élevée, plus les événements dans cette région du graphique sont probables.

  2. La question n’est pas après environ une minute, mais à exactement 1 min 0 sec, 0 millisec, …, ce qui est alors hautement improbable.

  3. Si vous utilisez set.seed() prenez soin de spécifier toujours une valeur différente prise au hasard comme argument !