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

Mối quan hệ giữa phân phối Nhị thức và Poisson

Bạn vừa biết rằng phân phối Poisson là giới hạn của phân phối Nhị thức trong trường hợp sự kiện hiếm. Điều này rất hợp lý nếu bạn nghĩ theo “câu chuyện” của chúng. Giả sử bạn thực hiện một phép thử Bernoulli mỗi phút trong một giờ, mỗi phép thử có xác suất thành công là 0.1. Bạn sẽ thực hiện 60 phép thử, và số lần thành công tuân theo phân phối Nhị thức; ta kỳ vọng khoảng 6 lần thành công. Điều này giống với “câu chuyện” Poisson đã thảo luận trong video, nơi ta nhận trung bình 6 lượt truy cập một trang web mỗi giờ. Do đó, phân phối Poisson với tốc độ đến bằng \(np\) xấp xỉ phân phối Nhị thức cho \(n\) phép thử Bernoulli với xác suất thành công \(p\) (khi \(n\) lớn và \(p\) nhỏ). Quan trọng là phân phối Poisson thường dễ xử lý hơn vì nó chỉ có một tham số thay vì hai tham số như phân phối Nhị thức.

Hãy khám phá hai phân phối này bằng tính toán. Bạn sẽ tính trung bình và độ lệch chuẩn của các mẫu từ phân phối Poisson với tốc độ đến là 10. Sau đó, bạn sẽ tính trung bình và độ lệch chuẩn của các mẫu từ phân phối Nhị thức với các tham số \(n\) và \(p\) sao cho \(np = 10\).

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 1)

Xem khóa học

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

  • Dùng hàm rng.poisson() để rút 10000 mẫu từ phân phối Poisson có mean bằng 10.
  • Tạo danh sách các giá trị np để xét cho phân phối Nhị thức. Chọn n = [20, 100, 1000]p = [0.5, 0.1, 0.01] để \(np\) luôn bằng 10.
  • Dùng rng.binomial() bên trong vòng lặp for đã cho để rút 10000 mẫu từ phân phối Nhị thức với từng cặp n, p, rồi in ra trung bình và độ lệch chuẩn của các mẫu. Có 3 cặp n, p: 20, 0.5, 100, 0.1, và 1000, 0.01. Bạn có thể truy cập chúng trong vòng lặp là n[i], p[i].

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.

# Draw 10,000 samples out of Poisson distribution: samples_poisson


# Print the mean and standard deviation
print('Poisson:     ', np.mean(samples_poisson),
                       np.std(samples_poisson))

# Specify values of n and p to consider for Binomial: n, p



# Draw 10,000 samples for each n,p pair: samples_binomial
for i in range(3):
    samples_binomial = ____

    # Print results
    print('n =', n[i], 'Binom:', np.mean(samples_binomial),
                                 np.std(samples_binomial))
Chỉnh sửa và Chạy Mã