Phân phối xác suất trong Python

Phân phối xác suất trong Python

Rate this post

Sau khi nghiên cứu thống kê mô tả trong Python , bây giờ chúng ta sẽ khám phá 4 phân phối xác suất chính của Python: Phân phối bình thường, nhị thức, Poisson và Bernoulli trong Python. Hơn nữa, chúng ta sẽ học cách triển khai các phân phối xác suất Python này với Lập trình Python.

Các bài viết liên quan:

Phân phối xác suất trong Python

Phân phối xác suất Python là gì?

Phân phối xác suất là một hàm theo lý thuyết xác suất và thống kê – một hàm cho chúng ta biết các kết quả khác nhau có thể xảy ra như thế nào trong một thử nghiệm. Nó mô tả các sự kiện dưới dạng xác suất của chúng; điều này nằm ngoài tất cả các kết quả có thể xảy ra. Hãy lấy phân phối xác suất của một lần tung đồng xu công bằng. Ở đây, đầu nhận giá trị X = 0,5 và đuôi cũng nhận X = 0,5.

Hai lớp của phân phối như vậy là rời rạc và liên tục. Cái trước được biểu thị bằng hàm khối lượng xác suất và cái sau được biểu thị bằng hàm mật độ xác suất.

Làm thế nào để triển khai phân phối xác suất Python?

Hãy triển khai các loại Phân phối xác suất Python này, hãy xem chúng:

Một. Phân phối Chuẩn trong Python 

Phân phối chuẩn trong Python là một hàm phân phối các biến ngẫu nhiên trong một đồ thị có hình dạng như một cái chuông đối xứng. Nó làm như vậy bằng cách sắp xếp phân phối xác suất cho mỗi giá trị. Hãy sử dụng Python numpy cho việc này.

import scipy.stats # thêm thư viện scipy.stats
import numpy as np # thêm thư viện numpy
import matplotlib.pyplot as plt # thêm thư viện matplotlib.pyplot
np.random.seed(1234) # random mẫu
samples=np.random.lognormal(mean=1.,sigma=.4,size=10000) # khai báo mẫu phân phối chuẩn
shape,loc,scale=scipy.stats.lognorm.fit(samples,floc=0) # khai báo 3 biến shape,loc,scale
num_bins=50
clr="#EFEFEF"
counts,edges,patches=plt.hist(samples,bins=num_bins,color=clr)
centers=0.5*(edges[:-1]+edges[1:])
cdf=scipy.stats.lognorm.cdf(edges,shape,loc=loc,scale=scale)
prob=np.diff(cdf)
plt.plot(centers,samples.size*prob,'k-',linewidth=2) # vẽ phân phối chuẩn
Phân phối xác suất trong Python

Phân phối nhị thức trong Python

Phân phối nhị thức Python cho chúng ta biết xác suất tần suất thành công trong n thử nghiệm độc lập. Những thí nghiệm như vậy là câu hỏi có-không. Một ví dụ có thể là tung đồng xu.

import seaborn # thêm thư viện seaborn
from scipy.stats import binom #khai báo thư viện binom
data=binom.rvs(n=17,p=0.7,loc=0,size=1010) # tạo mẫu phân bố nhị thức
ax=seaborn.distplot(data,
                kde=True,
                color='pink',
                hist_kws={"linewidth": 22,'alpha':0.77}) # vẽ ra phân bố
ax.set(xlabel='Binomial',ylabel='Frequency')

plt.show()
Phân phối xác suất trong Python

Phân phối Poisson bằng Python

Phân phối Python Poisson cho chúng ta biết về khả năng xảy ra một số sự kiện nhất định trong một khoảng thời gian hoặc không gian cố định. Điều này giả định rằng những sự kiện này xảy ra với tốc độ không đổi và cũng không phụ thuộc vào sự kiện cuối cùng.

import numpy as np # thêm thư viện numpy
s=np.random.poisson(5, 10000) # tạo ngẫu nghiên phân phối poisson
import matplotlib.pyplot as plt # thêm thư viên với plt
plt.hist(s,16,normed=True,color='Green')
plt.show()
Phân phối xác suất trong Python

Phân phối Bernoulli bằng Python

Phân phối Python Bernoulli là một trường hợp của phân phối nhị thức trong đó chúng tôi tiến hành một thử nghiệm duy nhất. Đây là một phân phối xác suất rời rạc với xác suất p cho giá trị 1 và xác suất q = 1-p cho giá trị 0. p có thể là thành công, đúng, đúng hoặc một. Tương tự, q = 1-p có thể là fail, no, false hoặc zero.

s=np.random.binomial(10,0.5,1000) # tạo ngẫu nhiên mẫu binomial
plt.hist(s,16,normed=True,color='Brown')
plt.show()

Phân phối xác suất trong Python

Vì vậy, đây là tất cả về Phân phối xác suất Python. Hy vọng bạn thích giải thích của chúng tôi.

Kết luận

Do đó, chúng tôi đã nghiên cứu Phân phối xác suất Python và 4 loại của nó với một ví dụ. Ngoài ra, chúng tôi đã học cách triển khai các phân phối xác suất Python này. Hơn nữa, nếu bạn có bất kỳ nghi ngờ nào, hãy hỏi trong phần bình luận.

Leave a Reply