Jak często zdarzają się no-hittery?
Liczba gier rozegranych między kolejnymi no-hitterami w erze nowożytnej (1901–2015) Major League Baseball jest przechowywana w tablicy nohitter_times.
Jeśli założysz, że no-hittery są opisane jako proces Poissona, to czas między nimi ma rozkład wykładniczy. Jak już widziałeś, rozkład wykładniczy ma jeden parametr — nazwiemy go \(\tau\) — oznaczający typowy czas między zdarzeniami. Wartość parametru \(\tau\), przy której rozkład wykładniczy najlepiej dopasowuje się do danych, to średni czas między no-hitterami (gdzie czas jest mierzony liczbą gier).
Oblicz wartość tego parametru na podstawie danych. Następnie użyj np.random.exponential(), aby „powtórzyć" historię Major League Baseball — wylosuj czasy między no-hitterami z rozkładu wykładniczego z wyznaczonym parametrem \(\tau\) i narysuj histogram jako przybliżenie PDF.
Biblioteki NumPy, pandas, matplotlib.pyplot oraz seaborn zostały już zaimportowane odpowiednio jako np, pd, plt i sns.
To ćwiczenie jest częścią kursu
Myślenie statystyczne w Pythonie (część 2)
Instrukcje do ćwiczenia
- Zainicjuj generator liczb losowych wartością
42. - Oblicz średni czas (w liczbie gier) między no-hitterami.
- Wylosuj 100 000 próbek z rozkładu wykładniczego z parametrem obliczonym na podstawie średniego czasu między no-hitterami.
- Narysuj teoretyczne PDF za pomocą
plt.hist(). Pamiętaj, aby użyć argumentów kluczowychbins=50,density=Trueihisttype='step'. Nie zapomnij opisać osi. - Wyświetl wykres.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()