Probabilité#

Dans le chapitre précédent, nous avons défini les probabilités en termes de fréquences d’apparition d’un résultat d’une expérience aléatoire. Cette approche s’applique particulièrement bien aux résultats d’expérience dénombrables. Pour des résultats d’expérience appartenant à des ensembles indénombrables, comme le tirage aléatoire d’un nombre entre 0 et 1, il devient difficile d’obtenir une définition consistante : c’est pourquoi nous avons utilisé la notion de probabilité ensembliste.

Cependant l’utilisation d’ensembles pour décrire les résultats reste assez abstrait. La notion de variables aléatoires permet de formaliser l’idée d’une quantité dépendant du résultat d’une expérience aléatoire. On peut notamment définir la variable aléatoire \(X\) comme étant le résultat d’un tirage de dé : à partir de cette variable, on peut définir l’évènement \(A\) pour lequel le résultat du dé est impair (\(X \in \left\{ 1, 3, 5 \right\}\)). Nous n’aborderons ici que des concepts basiques des variables aléatoires, utiles en physique.

Finalement en sciences expérimentales, le résultat de mesures correspond à la réalisation de variables aléatoires, dont les propriétés des distributions permettent de déduire des informations sur les propriétés des probabilités sous-jacentes.

Variables aléatoires#

On distingue:

  • les variables aléatoires discrètes, pour lesquelles l’univers est fini ou dénombrable,

  • les variables aléatoires continues, lorsque l’univers est indénombrable.

On distinguera par la notation les variables aléatoires des réalisations de cette variable aléatoire : on notera \(x\) la réalisation de la variable aléatoire \(X\). On pourra alors s’intéresser aux évènements \(X=x\), \(X<x\), …

Probabilité de variables discrètes#

Donnons-nous quelques examples de variables aléatoires discrètes:

  • Le tirage d’un dé à 6 faces peut être associé à une variable aléatoire discrète dont les résultats peuvent être \(\left\{1, ..., 6\right\}\).

  • Le nombre d’oeufs pondus par une poule chaque jour est une variable aléatoire discrète dont les résultats appartiennent à \(\mathbb{N}\).

Généralement, les variables aléatoires discrètes \(N\) sont définies sur un ensemble \(\Omega = \left\{n_i\right\}_{i=1...\infty}\). On peut alors définir la probabilité \(p\) comme

(17)#\[ p(n) = P(N=n). \]

L’axiome \eqref{eq:axiome-2} donne que la somme de toutes les probabilités de chaque valeur \(n_i\) vaut 1:

\[ \sum _{i=1}^{\infty} p(n_i) = 1. \]

On peut ordonner les nombres dans l’ensemble \(\Omega\): \(n_1 < n_2 < n_3 < ...\). Dans ce cas, on peut définir l’évènement \(N<n\) pour lequel le résultat de la variable aléatoire \(N\) est plus petit (strictement) que \(n\): sa probabilité vaut alors

\[ F(n) = P(N<n) = \sum _{n_i < n} p(n_i). \]

Cette probabilité \(F(n)\) de la variable \(N\) est appelée fonction de répartition. On peut ainsi démontrer que :

\[ \lim _{n\rightarrow -\infty} F(n) = P(\emptyset) = 0 \]
\[ \lim _{n\rightarrow \infty} F(n) = P(\Omega) = 1 \]

Probabilité de variables continues#

Deux examples de variables aléatoires continues :

  • Une position choisie au hasard le long d’une règle de \(10~\mathrm{cm}\) est une variable aléatoire dont les résultats appartiennent à \(\left[0, 10\right]\) (exprimé en \(\mathrm{cm}\))

  • Le temps entre deux rames de métro est une variable aléatoire continue dont les résultats appartiennent à \(\mathbb{R}\).

Dans le cas d’une variable, la probabilité d’obtenir une valeur donnée est strictement nulle (i.e. \(P(X=x) = 0\)). 1 C’est pourquoi que l’on définit les probabilités sur des ensembles de “taille” non nulle, par exemple l’ensemble \([a,b]\) ou \([-\infty, a]\). On peut notamment définir la probabilité pour que le résultat \(X\) soit plus faible que \(x\):

\[ P(X<x) = F(x).\]

Comme pour les variables aléatoires discrètes, cette fonction \(F\) est appelée fonction de répartition (ou fonction cumulative) et permet de définir la densité de probabilité ou pdf \(f(x)\) telle que:

(18)#\[ f(x) = \frac{\mathrm{d}F(x)}{\mathrm{d}x}. \]

La figure ci-dessous montre un exemple de pdf et de la fonction de répartition associée.

import matplotlib.pyplot as plt # importer maplotlib
import numpy as np
from scipy.special import erf

def gaussian(x, mu, sig):
    return 1./(np.sqrt(2*3.1415)*sig)*np.exp(-np.power(x - mu, 2.) / (2 * np.power(sig, 2.)))

x1 = [ 0.2*i for i in range(-15,11) ]  # liste d'abscisses de la figure
y1 = [gaussian(val,0,1) for val in x1] # calcul de y1 = f(x)
x2 = [ 0.2*i for i in range(-15,11) ] # liste d'abscisses de la figure
y2 = [0.5+erf(val)/2. for val in x2]  # calcul de y = f(x)

# creation d'un plot
fig, ax = plt.subplots()
ax.plot(x1,y1,"-",label="pdf(x)") # plot de y1 vs x
ax.plot(x2,y2,"--", label="F(x)") # plot de y1 vs x
ax.set_xlabel('x') # titre de l'axe x
leg = ax.legend()   # creation de la légende
../_images/proba_1_0.png

On peut alors définir la probabilité de trouver le résultat de \(X\) dans un intervalle infinitésimal \(\mathrm{d}x\) autour de \(x\):

\[ f(x)\mathrm{d}x = P(X< x+\mathrm{d}x) - P(X<x) = P(x<X<x+\mathrm{d}x)\]

Pour les variables aléatoires continues, on dira souvent que “la variable \(X\) est distribuée selon la fonction densité de probabilité \(f(x)\)”.

Cette définition remplace donc celle de la probabilité que nous avons définie pour les variables discrètes (17). Les propriétés que nous avons dérivées peuvent être écrites pour les variables aléatoires continues. Si on se donne une pdf \(f(x)\) définie sur \(\mathbb{R}\) et \(\left[a,b\right]\) un intervalle de \(\mathrm{R}\),

\[ P(a < X < b) = \int _a ^b f(x)\mathrm{d}x = F(b) - F(a), \]
\[ P(\emptyset) = \int _a ^a f(x)\mathrm{d}x = 0, \]
\[ P(\Omega) = \int _{-\infty} ^{\infty} f(x)\mathrm{d}x = 1. \]

Changement de variables aléatoires#

Pour une variable \(X\) dont la pdf \(f(x)\) est connue, il est possible de déterminer la pdf \(g(y)\) d’une variable aléatoire \(Y\) fonction de \(X\): \(Y = \phi(X)\). En effet, si \(\phi\) est une fonction réelle dérivable et bijective, on peut démontrer que:

(19)#\[ g(y) = \frac{f(x)}{\vert \phi ' (x)\vert} = \frac{f(\phi ^{-1}(y))}{\vert \phi ' (\phi ^{-1}(y)) \vert }. \]

Exemple

On se donne une variable aléatoire \(X\) suivant une loi exponentielle: \(f(x) = \exp (-x)\) sur \(\left[0, \infty \right]\). Que vaut la distribution \(g\) de la variable \(Y = \sqrt{X}\)?

En utilisant l’équation (19), on trouve:

\[ g(y) = \frac{f(x)}{\vert \frac{1}{2\sqrt{x}} \vert} = 2y\exp (-y^2). \]

La figure ci-dessous représente les pdf \(f(x)\) et \(g(y)\).

import matplotlib.pyplot as plt # importer maplotlib
import numpy as np
from math import exp

x = [ 0.02*i for i in range(0,260) ] # liste d'abscisses de la figure
y1 = [exp(-val) for val in x]      # calcul de y = f(x)
y2 = [2*val*exp(-val*val) for val in x] # calcul de y = f(x)

fig, ax = plt.subplots()         # creation d'un plot
ax.plot(x,y1,"-",label="f(x)")   # plot de y1 vs x
ax.plot(x,y2,"--", label="g(y)") # plot de y1 vs x
ax.set_xlabel('x ou y')          # titre de l'axe x
leg = ax.legend()                # creation de la légende
../_images/proba_4_0.png

Si la fonction \(\phi (y)\) n’est pas bijective mais se comporte bien, il est généralement possible de découper l’espace de définition de \(\phi\) en \(n\) intervalles sur lesquels \(\phi\) est bijective. On définira des fonctions \(\phi _i\) sur ces intervalles et alors:

\[ g(y) = \sum _i \frac{f(x)}{\vert \phi_i ' (x)\vert} = \sum _i \frac{f(\phi ^{-1}(y))}{\vert \phi_i ' (\phi_i ^{-1}(y)) \vert }. \]

Exercise 5

En utilisant une distribution de nombres aléatoires distribués uniformément, on veut produire une distribution de loi sinusoidale:

(20)#\[\begin{equation} f(x) = \frac{1}{2}\sin(x). \end{equation}\]

On choisira un intervalle compris entre 0 et \(\pi\).

  1. Vérifier que sur cet intervalle \(f\) est normalisée à 1.

  2. Calculer la fonction cumulative de \(f\).

  3. Démontrer que l’inverse de \(F\) est \(F^{-1}(x) = \cos ^{-1}(1-2x)\). Donner l’intervalle de définition de cette fonction.

  4. Avec Python, tester la fonction \(F\) pour générer des évènements selon la distribution \(f\) avec des nombres aléatoires distribués uniformément.

../_images/proba_6_0.png

Génération de loi de probabilité#

Une application intéressante du changement de variable est la génération de loi de probabilité à partir d’autres lois plus simples à générer. Supposons que nous pouvons générer facilement la variable aléatoire \(X\) de densité de probabilité \(f(x)\) uniforme sur \([0,1]\) (i.e. \(f(x)=1\) sur \([0,1]\) et \(f(x)=0\) ailleurs). On souhaite générer une variable aléatoire \(Y\) suivant la loi \(g(y)\) fixée; il faut donc déterminer le changement de variable \(Y = \phi(X)\) approprié. En utilisant l’équation (19) de la section Changement de variables aléatoires et la définition de la pdf (18), on en déduit que:

(22)#\[ g(y) = \frac{1}{\vert \phi ' (x) \vert } \Rightarrow \frac{\mathrm{d}G}{\mathrm{d}y}\frac{\mathrm{d}\phi}{\mathrm{d}x} = 1. \]

On peut démontrer que la fonction \(\phi (x) = G^{-1}(x)\) est une solution de l’équation précédente. En effet, si \(G\) est une fonction strictement croissante, elle est bijective; alors:

(23)#\[\begin{equation} 1 = \frac{\mathrm{d}x}{\mathrm{d}x} = \frac{\mathrm{d}\phi^{-1} (y)}{\mathrm{d}x} = \frac{\mathrm{d}G (y)}{\mathrm{d}y} \frac{\mathrm{d}y}{\mathrm{d}x} = \frac{\mathrm{d}G (y)}{\mathrm{d}y} \frac{\mathrm{d}\phi(x)}{\mathrm{d}x}, \end{equation}\]

ce qui correspond à l’équation (22).

Ainsi, si on dispose de mesures distribuées \(\left\{x_i\right\}\) uniformément entre \([0,1]\), l’échantillon \(\left\{y_i = G^{-1}(x_i)\right\}\) sera distribué selon la pdf \(g\).

Exemple

On souhaite générer aléatoirement des nombres selon la distribution \(f(x) = 3x^2\) sur l’intervalle \(\left[0,1\right]\) à partir d’une loi uniforme (générée par exemple à partir de la fonction numpy.random.rand()).

On commence par vérifier que la pdf \(f\) est bien normalisée:

(24)#\[\begin{equation} \int _0 ^{1} 3x^2 \mathrm{d}x = 3 \left[ \frac{1}{3}x^3 \right] _0 ^1 = 1-0 = 1. \end{equation}\]

La fonction cumulative \(F\) est \(F(x) = \int _0 ^x 3x'^2\mathrm{d}x' = x^3\) et donc \(F^{-1}(x) = x^{1/3}\). La figure ci-dessous montre la distribution \(f(x)\) générée (en orange) à partir de données distribuées uniformément (représentées en bleu); la distribution désirée \(f(x)\) est aussi représentée.

import matplotlib.pyplot as plt # importer maplotlib
import numpy as np
from math import exp

nevents = 10000
unif = [ np.random.rand() for i in range(0,nevents) ] # liste d'abscisses de la figure
x = [pow(val, 1/3) for val in unif]                          # calcul de y = f(x)

xx = [i*0.01 for i in range(0,101)]
yy = [3*val*val * nevents/10. for val in xx]

fig, ax = plt.subplots() # creation d'un plot
n, bins, patches = plt.hist(unif, alpha=0.75, label="Gen. uniforme")
n, bins, patches = plt.hist(x, alpha=0.75, label="Gen. f(x)")
ax.plot(xx,yy,"-",label="f(x) = 3x^2") # plot de y1 vs x
# ax.set_ylabel('f(x)') # titre de l'axe y
leg = ax.legend()   # creation de la légende
../_images/proba_9_0.png

Mesures de formes#

De la même façon que l’on a défini, dans la section Moyenne et écart-types des quantités permettant de caractériser la distribution des données collectées durant des mesures, on peut caractériser la distribution des densités de probabilités par quelques quantités simples. Pour cela, on définit l’espérance mathématique d’une fonction \(g(x)\) avec \(X\) une variable aléatoire distribuée selon \(f(x)\): on note l’espérance

(25)#\[ \mathbb{E}[g(X)] = \int _{-\infty} ^{\infty} g(x)f(x)\mathrm{d}x. \]

Cette quantité correspond à la moyenne de \(g(x)\) pondérée par la pdf \(f(x)\); c’est pourquoi on appelle parfois l’espérance la moyenne de \(g(X)\). La fonction \(g(x)\) peut être ce que l’on veut: les fonctions polynomiales \(g(x) = x^n\) sont particulièrement intéressantes et leurs moments \(\mathbb{E}[X^n]\) sont appelés moments d’ordre \(n\).

On définit la moyenne de \(X\) (i.e. \(g(x) = x\)) la quantité

(26)#\[\begin{equation} \mathbb{E}[X] = \mu _1 = \int _{-\infty} ^{\infty} x\times f(x) \mathrm{d}x. \end{equation}\]

Cette définition s’étend aux probabilités discrètes. Dans ce cas, elle correspond parfaitement à la définition de la moyenne statistique définie par l’équation \eqref{eq:moyenne-stats}: si on considère \(n\) mesures de \(X\) notées \(\left\{ x_i \right\}\) toutes équiprobables \(p(x_i) = \frac{1}{n}\), on a:

(27)#\[\begin{equation} \mu _1 = \sum _{i=0}^n x_i p(x_i) = \frac{1}{n} \sum _{i=0}^n x_i = \overline{x}. \end{equation}\]

Cela signifie que la moyenne de mesures correspond bien à la espérance de la variable aléatoire associée.

La variable \(X' = X-\mu _1\) est de moyenne nulle: on l’appelle donc variable centrée. On peut alors définir l’étalement de la distribution \(f\) en considérant l’espérance de la variable centrée au carré \(\mathbb{E}[X'^2]\):

(28)#\[\begin{equation} \mathbb{E}[X'^2] = \sigma ^2 = \int _{-\infty} ^{\infty} (x - \mu_1) ^2\times f(x) \mathrm{d}x = \int _{-\infty} ^{\infty} (x^2 - \mu_1^2) \times f(x) \mathrm{d}x = \mathbb{E}[X^2] - \mathbb{E}[X]^2. \end{equation}\]

On reconnait là la forme de l’équation \eqref{eq:variance-stats}; l’écart-type \(\sigma = \sqrt{\mathbb{E}[X'^2]}\) est donc la mesure de la dispersion de \(X\) autour de la valeur moyenne \(\mu _1\).

La médiane de la variable \(X\), notée \(\mathrm{med}(X)\) se définit comme:

(29)#\[\begin{equation} \int _{-\infty} ^{\mathrm{med}(X)} f(x)\mathrm{d}x = \int _{\mathrm{med}(X)} ^{\infty} f(x)\mathrm{d}x = \frac{1}{2}. \end{equation}\]

Le mode de la variable \(X\) est la valeur \(x\) qui maximise la pdf \(f(x)\):

(30)#\[\begin{equation} \mathrm{mode}(X) = \arg _{x\in [-\infty, \infty]} f(x). \end{equation}\]

La figure ci-dessous donne un exemple de moyenne (ligne verticale orange) et de mode (ligne verticale bleue) pour une distribution de probabilité arbitraire.

import matplotlib.pyplot as plt # importer maplotlib
import numpy as np
from math import exp, sin, pi, cos

def function(x):
    y = -(x/4.)**4+0.2+(x/4.)**2+0.2*(x/4.)
    if y>0:
        return y
    else:
        return 0.

xmax = 0.
fmax = 0.
xmean = 0.
integral = 0.

xx = [i*0.01 for i in range(-1000,1001)]
yy = [ function(val) for val in xx]

for y in yy:
    integral += y

for i in range(len(xx)):
    yy[i] = yy[i]/integral
    if fmax < yy[i]:
        xmax = xx[i]
        fmax = yy[i]
    xmean += xx[i]*yy[i]

fig, ax = plt.subplots() # creation d'un plot
line, = ax.plot(xx,yy,"-",label="f(x)") # plot de y1 vs x
ax.set_ylim(bottom=0.)

plt.vlines(xmax, 0., fmax, colors = line.get_color(), linestyles="dashed")
plt.axvline(xmean, 0., 10., c='orange', linestyle="--")
ax.set_ylabel('pdf f(x)') # titre de l'axe y
ax.set_ylabel('x') # titre de l'axe x
leg = ax.legend()   # creation de la légende
../_images/proba_11_0.png

1

Cette propriété fondamentale provient de la théorie de la mesure dont laquelle la généralisation des probabilités pour les variables continues découle.