Contenu du cours
Théorie Avancée des Probabilités
Théorie Avancée des Probabilités
Vecteurs Aléatoires
Vecteurs aléatoires représentent plusieurs variables aléatoires liées regroupées ensemble. Ils sont couramment utilisés en Data Science pour modéliser des systèmes avec des quantités aléatoires interconnectées, comme des ensembles de données où chaque vecteur correspond à un point de données.
La distribution de probabilité d'un vecteur aléatoire est décrite par sa fonction de distribution conjointe, qui montre comment toutes les variables du vecteur sont distribuées simultanément.
Pour créer un vecteur aléatoire simple avec n
dimensions :
- Générer
n
variables aléatoires indépendantes, chacune suivant sa fonction de distribution ; - Utiliser ces variables comme coordonnées pour le vecteur ;
- Appliquer la règle de multiplication pour déterminer la distribution conjointe :
f = f1 * f2 * ... * fn
.
Vecteurs aléatoires discrets
Pour les valeurs discrètes, la distribution conjointe est toujours décrite en utilisant la PMF, où la fonction prend une combinaison de valeurs de coordonnées et retourne leur probabilité.
Par exemple, considérez le lancer de deux pièces et l'enregistrement des résultats dans un vecteur. La PMF pour ce vecteur ressemblera à :
import numpy as np import matplotlib.pyplot as plt from scipy.stats import binom # Define parameters for the binomial distribution n = 1 # Number of trials p = 0.5 # Probability of success # Generate values for the two dimensions x = np.arange(0, n + 1) y = np.arange(0, n + 1) X, Y = np.meshgrid(x, y) # Compute the PMF for each pair of values in the grid pmf = binom.pmf(X, n, p) * binom.pmf(Y, n, p) print(pmf)
Vecteurs aléatoires continus
Pour les variables continues, le PDF multivarié est utilisé :
import numpy as np import matplotlib.pyplot as plt # Define mean and covariance matrix for the Gaussian distribution mu = np.array([0, 0]) # Mean vector cov = np.array([[1, 0], [0, 1]]) # Covariance matrix # Generate values for the two dimensions x = np.linspace(-3, 3, 100) y = np.linspace(-3, 3, 100) X, Y = np.meshgrid(x, y) pos = np.dstack((X, Y)) # Compute the PDF for each pair of values in the grid pdf = (1 / (2 * np.pi * np.sqrt(np.linalg.det(cov)))) * np.exp(-0.5 * np.sum(np.dot(pos - mu, np.linalg.inv(cov)) * (pos - mu), axis=2)) # Plot the 2D PDF fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot_surface(X, Y, pdf, cmap='viridis') ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('PDF') ax.set_title('Two-dimensional Gaussian PDF') plt.show()
Remarque
Les caractéristiques des vecteurs aléatoires sont également données sous forme vectorielle : ce vecteur est constitué de coordonnées qui correspondent aux statistiques des coordonnées du vecteur original. Dans l'exemple ci-dessus, le vecteur
mu
correspond aux valeurs moyennes des coordonnées,cov
correspond à la matrice de covariance d'un vecteur aléatoire bidimensionnel.
Vecteurs avec des coordonnées dépendantes
Mais il existe aussi des vecteurs avec des coordonnées dépendantes les unes des autres. Dans ce cas, nous ne pourrons plus définir la distribution conjointe comme le produit des distributions des coordonnées. Dans ce cas, la distribution conjointe est donnée en fonction de la connaissance de la zone de domaine ou de certaines informations supplémentaires sur les dépendances entre les coordonnées.
Examinons l'exemple d'échantillons gaussiens bidimensionnels avec des coordonnées dépendantes. La nature des dépendances sera déterminée à l'aide de la matrice de covariance (les éléments hors diagonale sont responsables des dépendances entre les coordonnées correspondantes) :
import numpy as np import matplotlib.pyplot as plt from scipy.stats import multivariate_normal # Define mean vector and covariance matrix for the Gaussian distribution mu = np.array([1, 3]) # Mean vector cov = np.array([[4, -4], [-4, 5]]) # Covariance matrix # Generate samples from the Gaussian distribution samples = multivariate_normal.rvs(mean=mu, cov=cov, size=1000) # Plot the sampled data plt.scatter(samples[:, 0], y = samples[:, 1]) plt.xlabel('X') plt.ylabel('Y') plt.title('Samples from a Two-dimensional Gaussian Distribution with dependant coordinates') plt.show()
Nous pouvons voir que ces coordonnées présentent une forte dépendance linéaire : à mesure que la coordonnée X augmente, la coordonnée Y diminue.
Merci pour vos commentaires !