Hoe vaak komen no-hitters voor?
Het aantal wedstrijden dat is gespeeld tussen no-hitters in het moderne tijdperk (1901–2015) van Major League Baseball staat in de array nohitter_times.
Als je aanneemt dat no-hitters worden beschreven door een Poisson-proces, dan is de tijd tussen no-hitters Exponentieel verdeeld. Zoals je hebt gezien, heeft de Exponentiële verdeling één parameter, die we \(\tau\) noemen: de typische intervaltijd. De waarde van de parameter \(\tau\) die de exponentiële verdeling het beste bij de data laat passen, is de gemiddelde intervaltijd (waarbij tijd wordt uitgedrukt in aantal wedstrijden) tussen no-hitters.
Bereken de waarde van deze parameter op basis van de data. Gebruik vervolgens np.random.exponential() om de geschiedenis van Major League Baseball te "herhalen" door tijden tussen no-hitters te trekken uit een exponentiële verdeling met de door jou gevonden \(\tau\), en plot het histogram als een benadering van de PDF.
NumPy, pandas, matplotlib.pyplot en seaborn zijn al voor je geïmporteerd als respectievelijk np, pd, plt en sns.
Deze oefening maakt deel uit van de cursus
Statistical Thinking in Python (deel 2)
Oefeninstructies
- Zaai de willekeurige getallengenerator met
42. - Bereken de gemiddelde tijd (in aantal wedstrijden) tussen no-hitters.
- Trek 100.000 steekproeven uit een Exponentiële verdeling met de parameter die je hebt berekend uit het gemiddelde van de tijden tussen no-hitters.
- Plot de theoretische PDF met
plt.hist(). Gebruik de sleutelwoordargumentenbins=50,density=Trueenhisttype='step'. Vergeet niet je assen te labelen. - Laat je plot zien.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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()