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)
Hướng dẫn bài tập
- Dùng hàm
rng.poisson()để rút10000mẫu từ phân phối Poisson có mean bằng10. - Tạo danh sách các giá trị
nvàpđể xét cho phân phối Nhị thức. Chọnn = [20, 100, 1000]vàp = [0.5, 0.1, 0.01]để \(np\) luôn bằng 10. - Dùng
rng.binomial()bên trong vòng lặpforđã cho để rút10000mẫu từ phân phối Nhị thức với từng cặpn, p, rồi in ra trung bình và độ lệch chuẩn của các mẫu. Có 3 cặpn, 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))