CommencerCommencer gratuitement

À quelle fréquence observe-t-on des « no-hitters » ?

Le nombre de matchs joués entre chaque « no-hitter » à l’ère moderne (1901-2015) de la Major League Baseball est stocké dans le tableau nohitter_times.

Si vous supposez que les « no-hitters » suivent un processus de Poisson, alors le temps entre deux « no-hitters » suit une loi exponentielle. Comme vous l’avez vu, la loi exponentielle n’a qu’un seul paramètre, que nous appellerons \(\tau\), l’intervalle typique. La valeur du paramètre \(\tau\) qui permet à la loi exponentielle d’épouser au mieux les données est la durée moyenne entre deux « no-hitters » (le temps étant exprimé en nombre de matchs).

Calculez la valeur de ce paramètre à partir des données. Ensuite, utilisez np.random.exponential() pour « rejouer » l’histoire de la Major League Baseball en tirant des temps inter-« no-hitter » d’une loi exponentielle avec le \(\tau\) que vous avez trouvé et tracez l’histogramme comme approximation de la PDF.

NumPy, pandas, matplotlib.pyplot et seaborn ont été importés pour vous sous les alias np, pd, plt et sns, respectivement.

Cet exercice fait partie du cours

Réflexion statistique en Python (Partie 2)

Afficher le cours

Instructions

  • Initialisez le générateur aléatoire avec 42.
  • Calculez l’intervalle moyen (en nombre de matchs) entre deux « no-hitters ».
  • Tirez 100 000 échantillons d’une loi exponentielle avec le paramètre que vous avez calculé à partir de la moyenne des temps inter-« no-hitter ».
  • Tracez la PDF théorique avec plt.hist(). N’oubliez pas d’utiliser les arguments nommés bins=50, normed=True et histtype='step'. Pensez à étiqueter vos axes.
  • Affichez votre graphique.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Seed random number generator
____

# Compute mean no-hitter time: tau
tau = ____

# Draw out of an exponential distribution with parameter tau: inter_nohitter_time
inter_nohitter_time = ____(____, 100000)

# Plot the PDF and label axes
_ = ____(inter_nohitter_time,
             ____, ____, ____)
_ = plt.xlabel('Games between no-hitters')
_ = plt.ylabel('PDF')

# Show the plot
plt.show()
Modifier et exécuter le code