Thư viện
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
9 trong Python cung cấp cho chúng ta khả năng biểu diễn các bản phân phối ngẫu nhiên bằng Python. Thư viện có hàng chục bản phân phối, bao gồm tất cả các bản phân phối thường được sử dụng. Ba phân phối cực kỳ phổ biến là phân phối bình thường, bernoulli và nhị thứcPhân phối Mã Python Phân phối bình thường Phân phối Bernoulli Phân phối nhị thứcSau khi bạn có một biến có phân phối, có nhiều hàm Python mà chúng ta có thể sử dụng để tạo các phép tính trước với phân phối. Các chức năng đều giống nhau cho dù bạn có bản phân phối nào -- vì vậy hãy khám phá chúng qua các ví dụ
Ví dụ phân phối nhị thức
Phân phối nhị thức đơn giản dễ hiểu là phân phối nhị thức với n=2 và p=0. 5 [hai sự kiện, mỗi sự kiện có 50% cơ hội thành công, chẳng hạn như tung đồng xu hai lần và tìm xem chúng ta được mặt ngửa bao nhiêu lần]. Để tạo bản phân phối này trong Python
from scipy.stats import binom
COIN = binom[n=2, p=0.5]
Có bốn kết quả có thể xảy ra -- HH, HT, TH và TT. Các mô hình phân phối nhị thức những kết quả này
- Có 25% xác suất kết quả không có mặt ngửa [TT]. Điều này được thể hiện khi
0 trả về giá trịprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
1 [không đứng đầu]print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ] - Có 50% khả năng kết quả có chính xác một mặt ngửa [TH hoặc HT]. Điều này được thể hiện khi
0 trả về giá trịprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 [chính xác là một cái đầu]print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ] - Có 25% xác suất xuất hiện 2 mặt ngửa [HH]. Điều này được thể hiện khi
0 trả về giá trịprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
2 [chính xác là hai đầu]print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
Chúng ta có thể biểu diễn phân phối này dưới dạng bảng và biểu đồ
xP[ XU == x ]00. 2510. 520. 25
CDF. Chức năng phân phối tích lũy
Hàm phân phối tích lũy hoặc CDF là
- Xác suất của tất cả các kết quả nhỏ hơn hoặc bằng một giá trị nhất định
3,print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ] - Về mặt đồ thị, đây là tổng diện tích của mọi thứ nhỏ hơn hoặc bằng
3 [**tổng diện tích bên trái củaprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
3*]print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
Sử dụng ví dụ lật hai đồng xu của chúng tôi trong đó
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
6, các hàm CDF đang hỏi như sau
7 hỏi "bao nhiêu phần trăm kết quả có 0. 2 cái đầu trở xuống?"print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
8 hỏi "bao nhiêu phần trăm kết quả có 1 hoặc ít hơn?"print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
9 hỏi "bao nhiêu phần trăm kết quả có 2 mặt đầu trở xuống?"print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
7Mặc dù hơi lạ khi hỏi "bao nhiêu phần trăm kết quả có 0. 2 mặt ngửa trở xuống?" vì chúng ta không thể lấy một phần số mặt ngửa, nhưng thật dễ dàng để tính toán rằng số mặt ngửa duy nhất bằng hoặc nhỏ hơn 0. 2 là không có đầu. Vì điều này chỉ xảy ra một trong bốn lần của chúng tôi, nên chúng tôi hy vọng kết quả là 25%
Chạy mã trong Python
cdf[0. 2] của
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 là 0. 25 [25%]. Điều này có thể hiểu là 25% kết quả sẽ có 0. 2 đầu trở xuốngPython Ví dụ 2. print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
8Tương tự như ví dụ đầu tiên, "bao nhiêu phần trăm kết quả có 1 mặt đầu trở xuống?" . Vì ba trong số bốn kết quả của chúng tôi có số không hoặc một mặt ngửa [TT, TH và HT], nên CDF phải là 3/4 hoặc 75%. Hãy kiểm tra với Python
cdf[1] của
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 là 0. 75 [75%]. Điều này có thể hiểu là 75% kết quả sẽ có 1 hoặc ít hơn 1 mặt ngửaPython Ví dụ 3. print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
9Tương tự như hai ví dụ đầu tiên, "bao nhiêu phần trăm kết quả có 2 đầu trở xuống?" . Điều này có nghĩa là phải có 100% cơ hội có hai mặt ngửa trở xuống. Kiểm tra bằng Python
cdf[2] của
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 là 1 [100%]. Điều này có thể hiểu là 100% kết quả sẽ có 2 mặt ngửa trở xuốngPPF. Hàm điểm xác suất
Hàm điểm xác suất hoặc PPF là nghịch đảo của CDF. Cụ thể, PPF trả về điểm chính xác mà xác suất mọi thứ ở bên trái bằng
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
36. Đây có thể được coi là hàm phần trăm vì PPF cho chúng ta biết giá trị của một phần trăm nhất định của dữ liệu
37 hỏi "20% số người đứng đầu là gì?print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
38 hỏi "60% số người đứng đầu là gì?print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
39 hỏi "99% số người đứng đầu là gì?print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
Kiểm tra phân phối cho COIN, chúng ta có thể tính phần trăm cho mỗi số mặt ngửa
xP[ COIN == x ] Phạm vi phần trăm00. 250% - 25%10. 525% - 75%20. 2575% - 100%Vì vậy, chúng tôi mong đợi rằng
37, ô 20%, nằm trong khoảng 0 mặt ngửa và chúng tôi hy vọng đầu ra làprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
1print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
38, ô 60%, nằm trong vòng 1 đầu và chúng tôi hy vọng đầu ra làprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
39, ô 99%, nằm trong 2 đầu và chúng tôi hy vọng đầu ra làprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
2print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
Xác minh bằng Python
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
Đầu ra của Hàm điểm xác suất [PPF] trên biến ngẫu nhiên
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 của chúng tôiPDF / PMF. Hàm {Khối lượng/Mật độ} Xác suất
Hàm
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
37 và print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
38 tìm xác suất của một sự kiện tại một điểm cụ thể trong phân phốiHàm khối lượng xác suất [PMF] -- hoặc
37 -- chỉ được xác định trên các bản phân phối riêng biệt trong đó mỗi sự kiện có xác suất xảy ra cố địnhprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]Hàm mật độ xác suất [PDF] -- hoặc
38 -- chỉ được xác định trên các bản phân phối liên tục khi nó tìm thấy xác suất của một sự kiện xảy ra trong một cửa sổ xung quanh một điểm cụ thểprint[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
Hàm khối lượng xác suất [PMF]
Trước đó, chúng ta đã thảo luận rằng xác suất xuất hiện mặt ngửa bằng 0 là 25% trong biến ngẫu nhiên nhị thức
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 của chúng ta. Do đó, chúng tôi hy vọng rằng print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
72 phải là 0. 25pmf[0] của
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 là 0. 25. Điều này cho chúng ta biết rằng xác suất trả về 0 từ biến ngẫu nhiên của chúng ta là 25%Tương tự như vậy, chúng tôi mong đợi
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
74 là 50% [đối với 50% cơ hội lật chính xác một mặt ngửa] và print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
75 là 25% [đối với 25% cơ hội lật hai mặt ngửa]print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
3Hàm khối lượng xác suất của
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0RVS. Mẫu giá trị ngẫu nhiên
Hàm
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
77 trả về một mẫu ngẫu nhiên của phân phối có xác suất bằng với phân phối -- nếu điều gì đó có khả năng xảy ra là 80%, thì giá trị đó sẽ được lấy mẫu trong 80% thời gian. Trong print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0, chúng tôi mong đợi nhiều kết quả hơn với print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 [50% xuất hiện 1 mặt ngửa] so với print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
1 hoặc print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
2 [25% xuất hiện 0 hoặc 2 mặt ngửa]Tạo một mẫu gồm 50 giá trị
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
3Năm mươi giá trị ngẫu nhiên được lấy mẫu từ
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0Chúng tôi có thể chèn dữ liệu này vào DataFrame và đếm số lần xuất hiện
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
7print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
6Tổng số năm mươi giá trị ngẫu nhiên được lấy mẫu từ
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0Trong mô phỏng nhỏ này, chúng tôi quan sát thấy nhiều kết quả của
print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
0 hơn so với print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
1 hoặc print[ COIN.ppf[0.2] ]
print[ COIN.ppf[0.6] ]
print[ COIN.ppf[0.99] ]
2. Đây là kết quả mong đợi được thảo luận trước đó