노히터는 얼마나 자주 발생할까요?
메이저 리그 베이스볼의 현대 시대(1901~2015년)에서 노히터 경기 사이에 치러진 경기 수가 배열 nohitter_times에 저장되어 있습니다.
노히터가 포아송 과정(Poisson process)으로 설명된다고 가정하면, 노히터 사이의 시간 간격은 지수 분포를 따릅니다. 앞서 살펴보았듯이, 지수 분포는 단 하나의 매개변수를 가지며, 이를 \(\tau\)(전형적인 간격 시간)라고 부릅니다. 데이터에 지수 분포를 가장 잘 맞추는 \(\tau\) 값은 노히터 사이의 평균 간격 시간(경기 수 단위)입니다.
데이터로부터 이 매개변수 값을 계산하세요. 그런 다음, np.random.exponential()을 사용해 구한 $\tau$를 바탕으로 지수 분포에서 노히터 간격 시간을 추출하여 메이저 리그 베이스볼의 역사를 "재현"하고, 히스토그램을 PDF의 근사치로 시각화해 보세요.
NumPy, pandas, matplotlib.pyplot, seaborn은 각각 np, pd, plt, sns로 이미 임포트되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 하는 통계적 사고 (2부)
연습 안내
- 난수 생성기의 시드를
42로 설정하세요. - 노히터 사이의 평균 시간(경기 수 단위)을 계산하세요.
- 노히터 간격 시간의 평균으로 계산한 매개변수를 사용하여 지수 분포에서 100,000개의 표본을 추출하세요.
plt.hist()를 사용하여 이론적 PDF를 시각화하세요. 키워드 인수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()