Zacznij terazZacznij za darmo

Jak często zdarzają się mecze bez przebicia?

Liczba meczów rozegranych między kolejnymi meczami bez przebicia (no-hitter) w nowoczesnej erze Major League Baseball (1901–2015) jest zapisana w tablicy nohitter_times.

Jeśli założymy, że mecze bez przebicia opisuje proces Poissona, to czas między nimi ma rozkład wykładniczy. Jak już wiesz, rozkład wykładniczy ma jeden parametr – nazwiemy go \(\tau\) – oznaczający typowy czas między zdarzeniami. Wartość parametru \(\tau\), która najlepiej dopasowuje rozkład wykładniczy do danych, to średni czas między meczami bez przebicia (gdzie czas wyrażony jest w liczbie meczów).

Oblicz wartość tego parametru na podstawie danych. Następnie użyj np.random.exponential(), aby "odtworzyć" historię Major League Baseball – wylosuj czasy między meczami bez przebicia z rozkładu wykładniczego z obliczonym \(\tau\) i narysuj histogram jako przybliżenie funkcji gęstości prawdopodobieństwa (PDF).

Biblioteki NumPy, pandas, matplotlib.pyplot i seaborn zostały zaimportowane jako np, pd, plt i sns.

To ćwiczenie jest częścią kursu

Myślenie statystyczne w Pythonie (część 2)

Zobacz kurs

Instrukcje do ćwiczenia

  • Zainicjuj generator liczb losowych wartością 42.
  • Oblicz średni czas (wyrażony w liczbie meczów) między meczami bez przebicia.
  • Wylosuj 100 000 próbek z rozkładu wykładniczego z parametrem obliczonym na podstawie średniego czasu między meczami bez przebicia.
  • Narysuj teoretyczną funkcję gęstości prawdopodobieństwa (PDF) za pomocą plt.hist(). Pamiętaj, aby użyć argumentów kluczowych bins=50, normed=True i histtype='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()
Edytuj i uruchom kod