Как часто случаются игры без хитов?
Количество игр между каждой игрой без хитов в современную эпоху Главной лиги бейсбола (1901–2015) хранится в массиве nohitter_times.
Если предположить, что игры без хитов описываются пуассоновским процессом, то время между ними подчиняется экспоненциальному распределению. Как вы уже знаете, экспоненциальное распределение имеет один параметр — \(\tau\), типичный интервал времени. Значение параметра \(\tau\), при котором экспоненциальное распределение наилучшим образом соответствует данным, равно среднему интервальному времени (где время измеряется в количестве игр) между играми без хитов.
Вычислите значение этого параметра по данным. Затем используйте np.random.exponential(), чтобы «воспроизвести» историю Главной лиги бейсбола: сгенерируйте интервалы между играми без хитов из экспоненциального распределения с найденным значением \(\tau\) и постройте гистограмму как приближение к функции плотности вероятности.
Biblioteki NumPy, pandas, matplotlib.pyplot и seaborn импортированы для вас как np, pd, plt и sns соответственно.
Это упражнение является частью курса
Статистическое мышление на Python (часть 2)
Инструкции к упражнению
- Инициализируйте генератор случайных чисел значением
42. - Вычислите среднее время (в количестве игр) между играми без хитов.
- Сгенерируйте 100 000 выборок из экспоненциального распределения с параметром, вычисленным из среднего времени между играми без хитов.
- Постройте теоретическую функцию плотности вероятности с помощью
plt.hist(). Не забудьте использовать ключевые аргументыbins=50,normed=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()