Aan de slagGa gratis aan de slag

Hoe vaak komen no-hitters voor?

Het aantal gespeelde wedstrijden tussen elke no-hitter in het moderne tijdperk (1901–2015) van Major League Baseball is opgeslagen in de array nohitter_times.

Als je aanneemt dat no-hitters een Poisson-proces volgen, 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 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)

Cursus bekijken

Oefeninstructies

  • Seed de willekeurigegetallengenerator 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 sleutelwoordargumenten bins=50, normed=True en histtype='step'. Vergeet niet je assen te labelen.
  • Toon je plot.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in 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()
Code bewerken en uitvoeren