Bắt đầu ngayBắt đầu miễn phí

Tần suất xảy ra no-hitter là bao nhiêu?

Số trận đấu diễn ra giữa mỗi lần no-hitter trong kỷ nguyên hiện đại (1901-2015) của Major League Baseball được lưu trong mảng nohitter_times.

Nếu giả định no-hitter tuân theo một quá trình Poisson, thì thời gian giữa các no-hitter có phân phối Exponential. Như bạn đã thấy, phân phối Exponential có một tham số, gọi là \(\tau\), là khoảng thời gian điển hình. Giá trị của tham số \(\tau\) giúp phân phối exponential khớp dữ liệu tốt nhất chính là thời gian khoảng cách trung bình (đơn vị là số trận) giữa các no-hitter.

Hãy tính giá trị tham số này từ dữ liệu. Sau đó, dùng np.random.exponential() để "lặp lại" lịch sử của Major League Baseball bằng cách rút các khoảng thời gian giữa no-hitter từ một phân phối exponential với \(\tau\) bạn vừa tìm được và vẽ biểu đồ histogram làm xấp xỉ cho PDF.

NumPy, pandas, matplotlib.pyplot và seaborn đã được nhập sẵn với các bí danh lần lượt là np, pd, pltsns.

Bài tập này là một phần của khóa học

Tư duy Thống kê với Python (Phần 2)

Xem khóa học

Hướng dẫn bài tập

  • Gieo hạt (seed) bộ tạo số ngẫu nhiên với 42.
  • Tính thời gian trung bình (đơn vị là số trận) giữa các no-hitter.
  • Lấy 100.000 mẫu từ phân phối Exponential với tham số bạn tính được từ giá trị trung bình của các khoảng thời gian giữa no-hitter.
  • Vẽ PDF lý thuyết bằng plt.hist(). Nhớ dùng các đối số từ khóa bins=50, density=Truehisttype='step'. Nhớ gắn nhãn cho các trục.
  • Hiển thị biểu đồ của bạn.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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()
Chỉnh sửa và Chạy Mã