IniziaInizia gratis

Quanto spesso si verificano i no-hitter?

Il numero di partite giocate tra un no-hitter e il successivo nell'era moderna (1901-2015) della Major League Baseball è memorizzato nell'array nohitter_times.

Se assumi che i no-hitter seguano un processo di Poisson, allora il tempo tra due no-hitter è distribuito esponenzialmente. Come hai visto, la distribuzione esponenziale ha un solo parametro, che chiameremo \(\tau\), il tempo tipico tra gli eventi. Il valore del parametro \(\tau\) che fa corrispondere al meglio la distribuzione esponenziale ai dati è il tempo medio tra i no-hitter (dove il tempo è misurato in numero di partite).

Calcola il valore di questo parametro a partire dai dati. Poi, usa np.random.exponential() per "ripetere" la storia della Major League Baseball estraendo tempi tra no-hitter da una distribuzione esponenziale con il \(\tau\) che hai trovato e traccia l'istogramma come approssimazione della PDF.

NumPy, pandas, matplotlib.pyplot e seaborn sono già stati importati come np, pd, plt e sns, rispettivamente.

Questo esercizio fa parte del corso

Pensiero statistico in Python (Parte 2)

Visualizza il corso

Istruzioni dell'esercizio

  • Imposta il seed del generatore di numeri casuali a 42.
  • Calcola il tempo medio (in unità di numero di partite) tra i no-hitter.
  • Estrai 100.000 campioni da una distribuzione esponenziale con il parametro che hai calcolato dalla media dei tempi tra no-hitter.
  • Traccia la PDF teorica usando plt.hist(). Ricorda di usare gli argomenti per parola chiave bins=50, normed=True e histtype='step'. Ricordati di etichettare gli assi.
  • Mostra il grafico.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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()
Modifica ed esegui il codice