LoslegenKostenlos starten

Wie oft gibt es No-Hitter?

Die Anzahl der Spiele zwischen zwei No-Hittern in der modernen Ära (1901–2015) der Major League Baseball ist im Array nohitter_times gespeichert.

Wenn du annimmst, dass No-Hitter durch einen Poisson-Prozess beschrieben werden, dann ist die Zeit zwischen No-Hittern exponentialverteilt. Wie du gesehen hast, hat die Exponentialverteilung einen einzelnen Parameter, den wir \(\tau\) nennen, die typische Intervallzeit. Der Wert des Parameters \(\tau\), der die Exponentialverteilung am besten an die Daten anpasst, ist die mittlere Intervallzeit (wobei Zeit in Einheiten der Anzahl von Spielen gemessen wird) zwischen No-Hittern.

Berechne den Wert dieses Parameters aus den Daten. Verwende dann np.random.exponential(), um die Geschichte der Major League Baseball zu „wiederholen", indem du Zeiten zwischen No-Hittern aus einer Exponentialverteilung mit dem gefundenen \(\tau\) ziehst, und zeichne das Histogramm als Näherung für die PDF.

NumPy, pandas, matplotlib.pyplot und seaborn wurden bereits als np, pd, plt und sns importiert.

Diese Übung ist Teil des Kurses

<Kurs>Statistical Thinking in Python (Teil 2)</Kurs>
Kurs ansehen

Übungsanweisungen

  • Initialisiere den Zufallszahlengenerator mit 42.
  • Berechne die mittlere Zeit (in Einheiten der Anzahl von Spielen) zwischen No-Hittern.
  • Ziehe 100.000 Stichproben aus einer Exponentialverteilung mit dem Parameter, den du aus dem Mittelwert der Zeiten zwischen No-Hittern berechnet hast.
  • Zeichne die theoretische PDF mit plt.hist(). Verwende dabei die Schlüsselwortargumente bins=50, density=True und histtype='step'. Vergiss nicht, deine Achsen zu beschriften.
  • Zeige deinen Plot an.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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 bearbeiten und ausführen