НачатьНачать бесплатно

Как часто бывают матчи без хитов?

Количество игр между каждым матчем без хитов в современную эру Главной бейсбольной лиги (1901–2015) хранится в массиве nohitter_times.

Если предположить, что матчи без хитов описываются пуассоновским процессом, то время между ними подчиняется экспоненциальному распределению. Как вы уже знаете, экспоненциальное распределение имеет единственный параметр — \(\tau\), типичный интервал времени. Значение параметра \(\tau\), при котором экспоненциальное распределение наилучшим образом соответствует данным, равно среднему интервалу времени (в единицах количества игр) между матчами без хитов.

Вычислите значение этого параметра по данным. Затем используйте np.random.exponential(), чтобы «воспроизвести» историю Главной бейсбольной лиги: сгенерируйте интервалы между матчами без хитов из экспоненциального распределения с найденным значением \(\tau\) и постройте гистограмму в качестве приближения к функции плотности вероятности.

Библиотеки NumPy, pandas, matplotlib.pyplot и seaborn уже импортированы как np, pd, plt и sns соответственно.

Это упражнение является частью курса

Статистическое мышление на Python (часть 2)

Посмотреть курс

Инструкции к упражнению

  • Инициализируйте генератор случайных чисел значением 42.
  • Вычислите среднее время (в единицах количества игр) между матчами без хитов.
  • Сгенерируйте 100 000 выборок из экспоненциального распределения с параметром, вычисленным на основе среднего интервала между матчами без хитов.
  • Постройте теоретическую функцию плотности вероятности с помощью plt.hist(). Не забудьте использовать ключевые аргументы bins=50, density=True и histtype='step', а также подписать оси.
  • Отобразите график.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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()
Редактировать и запускать код