Nếu một biến ngẫu nhiên X tuân theo phân phối Poisson, thì xác suất mà X = k thành công có thể được tính theo công thức sau
P[X=k] = λk * e– λ / k
ở đâu
- λ. số lần thành công trung bình xảy ra trong một khoảng thời gian cụ thể
- k. số lần thành công
- e. một hằng số bằng xấp xỉ 2. 71828
Hướng dẫn này giải thích cách sử dụng phân phối Poisson trong Python
Cách tạo phân phối Poisson
Bạn có thể sử dụng thuốc độc. hàm rvs[mu, size] để tạo các giá trị ngẫu nhiên từ phân phối Poisson với giá trị trung bình và cỡ mẫu cụ thể
from scipy.stats import poisson #generate random values from Poisson distribution with mean=3 and sample size=10 poisson.rvs[mu=3, size=10] array[[2, 2, 2, 0, 7, 2, 1, 2, 5, 5]]
Cách tính xác suất bằng phân phối Poisson
Bạn có thể sử dụng thuốc độc. pmf[k, mu] và poisson. hàm cdf[k, mu] để tính xác suất liên quan đến phân bố Poisson
ví dụ 1. Xác suất bằng một số giá trị
Trung bình mỗi ngày cửa hàng bán được 3 quả táo. Xác suất mà họ sẽ bán được 5 quả táo vào một ngày nhất định là bao nhiêu?
from scipy.stats import poisson #calculate probability poisson.pmf[k=5, mu=3] 0.100819
Xác suất để cửa hàng bán được 5 quả táo trong một ngày đã cho là 0. 100819
ví dụ 2. Xác suất nhỏ hơn một số giá trị
Một cửa hàng nọ trung bình mỗi ngày bán được bảy quả bóng đá. Xác suất mà cửa hàng này bán được bốn hoặc ít hơn bốn quả bóng đá trong một ngày nhất định là bao nhiêu?
from scipy.stats import poisson #calculate probability poisson.cdf[k=4, mu=7] 0.172992
Xác suất mà cửa hàng bán được bốn hoặc ít hơn bốn quả bóng đá trong một ngày nhất định là 0. 172992
ví dụ 3. Xác suất lớn hơn một số giá trị
Một cửa hàng nọ trung bình mỗi ngày bán được 15 hộp cá ngừ. Xác suất mà cửa hàng này bán được hơn 20 hộp cá ngừ trong một ngày nhất định là bao nhiêu?
Với sự giúp đỡ của numpy. ngẫu nhiên. poisson[], chúng ta có thể lấy các mẫu ngẫu nhiên từ phân phối poisson và trả lại các mẫu ngẫu nhiên bằng cách sử dụng phương thức này
phân phối chất độc
cú pháp. cục mịch. ngẫu nhiên. poisson[lam=1. 0, kích thước=Không có]
Trở lại. Trả lại các mẫu ngẫu nhiên dưới dạng mảng numpy
Ví dụ 1
Trong ví dụ này, chúng ta có thể thấy rằng bằng cách sử dụng numpy này. ngẫu nhiên. poisson[], chúng ta có thể lấy các mẫu ngẫu nhiên từ phân phối poisson bằng cách sử dụng phương thức này
Nó ước tính số lần một sự kiện có thể xảy ra trong một thời gian xác định. e. g. Nếu ai đó ăn hai lần một ngày thì xác suất anh ta sẽ ăn ba lần là bao nhiêu?
Nó có hai tham số
lam
- tỷ lệ hoặc số lần xuất hiện đã biết e. g. 2 cho vấn đề trên
size
- Hình dạng của mảng được trả về
Ví dụ
Tạo phân phối 1x10 ngẫu nhiên cho lần xuất hiện 2
từ numpy nhập ngẫu nhiên
x = ngẫu nhiên. poisson[lam=2, size=10]
in[x]
Tự mình thử »Trực quan hóa phân phối Poisson
Ví dụ
từ numpy nhập ngẫu nhiên
nhập matplotlib. pyplot dưới dạng plt
nhập seaborn dưới dạng sns
sns. distplot [ngẫu nhiên. poisson[lam=2, size=1000], kde=False]
plt. trình diễn[]
Kết quả
Sự khác biệt giữa phân phối bình thường và Poisson
Phân phối chuẩn là liên tục trong khi poisson là rời rạc
Nhưng chúng ta có thể thấy rằng tương tự như nhị thức đối với phân phối poisson đủ lớn, nó sẽ trở thành tương tự như phân phối bình thường với một số std dev và mean
Ví dụ
từ numpy nhập ngẫu nhiên
nhập matplotlib. pyplot dưới dạng plt
nhập seaborn dưới dạng sns
sns. distplot [ngẫu nhiên. normal[loc=50, scale=7, size=1000], hist=False, label='normal']
sns. distplot [ngẫu nhiên. poisson[lam=50, size=1000], hist=False, label='poisson']
plt. trình diễn[]
Kết quả
Sự khác biệt giữa phân phối Poisson và nhị thức
Sự khác biệt rất tinh tế, đó là phân phối nhị thức dành cho các thử nghiệm rời rạc, trong khi phân phối poisson dành cho các thử nghiệm liên tục
Nhưng đối với phân phối nhị thức n
rất lớn và gần bằng không p
gần giống với phân phối poisson sao cho n * p
gần bằng với lam