Contenu du cours
Théorie Avancée des Probabilités
Théorie Avancée des Probabilités
Loi des Grands Nombres pour le Processus de Bernoulli
Un essai de Bernoulli est une expérience statistique avec seulement deux résultats possibles, généralement succès et échec, avec des probabilités fixes d'occurrence à chaque essai. Il a été examiné plus en détail dans le cours Notions de base de la théorie des probabilités.
Dans un processus de Bernoulli, chaque essai est indépendant, ce qui signifie que le résultat d'un essai n'affecte pas le résultat d'un autre essai. La probabilité de succès, notée p
, est la même pour chaque essai. La probabilité d'échec est indiquée par q = 1 - p
.
Essayons d'appliquer la loi des grands nombres à ce schéma. Supposons que nous réalisions n
expériences et que nous voulions calculer le nombre total de résultats réussis. Selon la loi des grands nombres, nous pouvons le faire comme suit :
Chaque variable dans le numérateur représente le résultat d'une expérience : c'est 1
si l'expérience réussit (avec une probabilité p
) et 0
si elle échoue (avec une probabilité 1-p
).
Dans ce cas, les conditions de la loi des grands nombres sont remplies : les variables sont indépendantes (car les expériences sont indépendantes), identiquement distribuées, et ont une espérance finie (comme le montre la série de distribution).
Par conséquent, nous pouvons utiliser la loi des grands nombres pour estimer les probabilités de la survenue d'un événement en analysant la fréquence de sa survenue.
Par exemple, considérons le lancer d'une pièce avec un centre de gravité déplacé. Notre objectif est d'estimer la probabilité qu'elle tombe sur face. Consultez le code ci-dessous :
import numpy as np import matplotlib.pyplot as plt # Set the probability of heads to 0.3 p = 0.3 # Generate 2000 flips of the coin with probability of heads equal to `p` coin_flips = np.random.choice([1, 0], size=2000, p=[p, 1-p]) # Function that will calculate mean value of subsamples def mean_value(data, subsample_size): return data[:subsample_size].mean() # Visualizing the results x = np.arange(2000) y = np.zeros(2000) for i in range(1, 2000): y[i] = mean_value(coin_flips, x[i]) plt.plot(x, y, label='Estimated probability') plt.xlabel('Number of elements to calculate probability') plt.ylabel('Probability of success') plt.axhline(y=p, color='k', label='Real probability of success') plt.legend() plt.show()
De même, la loi des grands nombres peut être généralisée pour un schéma polynomial : pour 1, nous considérons la survenue de l'événement/des événements qui nous intéressent, et pour 0, tous les autres résultats. Regardons un exemple :
import numpy as np import matplotlib.pyplot as plt # Our distribution with 4 possible values outcomes = ['Red', 'Blue', 'Black', 'Green'] # Probabilities of corresponding values probs = [0.3, 0.2, 0.4, 0.1] # Generate samples samples = np.random.choice(outcomes, size=2000, p=probs) # Suppose we want to determine the probability of occurrence of red or black colors. # Let's transform the data in such a way that 1 stands in place of 'Red' and 'Black' colors, # and 0 in place of other colors encoded_samples = np.where(np.logical_or(samples == 'Red', samples == 'Black'), 1, 0) # Function that will calculate mean value of subsamples def mean_value(data, subsample_size): return data[:subsample_size].mean() # Visualizing the results x = np.arange(2000) y = np.zeros(2000) for i in range(1, 2000): y[i] = mean_value(encoded_samples, x[i]) plt.plot(x, y, label='Estimated probability') plt.xlabel('Number of elements to calculate probability') plt.ylabel('Probability of success') plt.axhline(y=probs[0]+probs[2], color='k', label='Real probability of success') plt.legend() plt.show()
Merci pour vos commentaires !