Để tiếp tục làm theo hướng dẫn này, chúng ta sẽ cần các thư viện Python sau. scipy, numpy và matplotlib
Nếu bạn chưa cài đặt, vui lòng mở “Command Prompt” [trên Windows] và cài đặt nó bằng mã sau
pip install scipy
pip install numpy
pip install matplotlib
Phân phối đồng đều là gì
Có hai loại phân phối thống nhất
- Phân phối đồng đều liên tục – làm việc với các giá trị liên tục
- Phân phối đồng đều rời rạc – làm việc với các giá trị rời rạc [hữu hạn]
Phân phối đồng đều liên tục
Phân bố xác suất đều liên tục là phân bố có xác suất không đổi, nghĩa là các số đo có xác suất quan sát giống nhau
Phân phối đều liên tục còn được gọi là phân phối chữ nhật. Tại sao vậy?
Loại phân phối này được xác định bởi hai tham số
- \[a\] – mức tối thiểu
- \[b\] – mức tối đa
và được viết là. \[U[a, b]\]
Sự khác biệt giữa \[b\] và \[a\] là độ dài khoảng thời gian. \[l=b-a\]. Vì đây là phân phối tích lũy, nên tất cả các khoảng trong độ dài khoảng đều có xác suất như nhau [với điều kiện là các khoảng đó có cùng độ dài]
PDF [hàm mật độ xác suất] của phân phối đồng đều liên tục được cho bởi
$$f[x] = \frac{1}{b-a} \textit{ for } A\leq x \leq B$$
và 0 nếu không
Và CDF [hàm phân phối tích lũy] của phân phối đồng đều liên tục được cho bởi
$$F[x] = \frac{x-a}{b-a} \textit{ for } A\leq x \leq B$$
với 0 cho \[x < a\] và 1 cho \[x>b\]
Phân phối đồng đều rời rạc
Phân bố xác suất đều rời rạc, là phân bố có xác suất không đổi, nghĩa là một số hữu hạn các giá trị có khả năng được quan sát như nhau
Loại phân phối này được xác định bởi hai tham số
- \[a\] – mức tối thiểu
- \[b\] – mức tối đa
và được viết là. \[U[a, b]\]
Sự khác biệt giữa \[b\] và \[a\] +1 là số lượng quan sát. Sự khác biệt giữa \[b\] và \[a\] là độ dài khoảng thời gian. \[n=b-a+1\]. Và tất cả các quan sát đều có xác suất như nhau
Đối với bất kỳ \[x \in [a, b]\], PMF [hàm khối lượng xác suất] của phân phối đồng đều rời rạc được cho bởi
$$f[x] = \frac{1}{b-a+1} = \frac{1}{n}$$
Và đối với bất kỳ \[x \in [a, b]\], CDF [hàm phân phối tích lũy] của phân phối đồng nhất rời rạc được cho bởi
$$F[x] = P[X\leq x] = \frac{x-a+1}{b-a+1} = \frac{x-a+1}{n}$$
Ví dụ về phân bố đều liên tục
Hãy xem xét một ví dụ. bạn sống trong một tòa nhà chung cư có 10 tầng và mới về nhà. Bạn bước vào sảnh và chuẩn bị nhấn nút thang máy. Bạn biết rằng bạn có thể mất khoảng từ 0 đến 20 giây để chờ thang máy, trong đó sẽ mất 0 giây nếu thang máy ở tầng một [không chờ] và mất 20 giây nếu thang máy ở tầng mười . Đây sẽ là một ví dụ về phân phối đồng đều liên tục, vì thời gian chờ có thể nhận bất kỳ giá trị nào với cùng xác suất và liên tục vì thang máy có thể ở bất kỳ đâu trong tòa nhà từ tầng một đến tầng mười [ví dụ: từ tầng năm đến tầng sáu]
Ở đây chúng ta có giá trị nhỏ nhất \[a = 0\] và giá trị lớn nhất \[b = 20\]
Phân phối đồng đều liên tục PDF
Biết các giá trị của \[a\] và \[b\], chúng ta có thể dễ dàng tính toán PDF phân phối đều liên tục
$$f[x]=\frac{1}{20-0} = \frac{1}{20} = 0. 05$$
Sử dụng công thức \[f[x]\] và các tham số đã cho, chúng ta có thể tạo hình ảnh trực quan sau đây của PDF thống nhất liên tục
Vì vậy, điều này thực sự cho chúng ta biết điều gì trong bối cảnh phân phối đồng đều liên tục? . Ví dụ từ 1 đến 2 [\[i_1 = [1, 2]\]] và từ 15 đến 16 [\[i_2 = [15, 16]\]]. Điều quan trọng cần lưu ý là cả hai khoảng này đều có cùng độ dài bằng 1. Sử dụng kết quả PMF, chúng ta có thể nói rằng các khoảng thời gian này có khả năng xảy ra như nhau với xác suất 0. 05. Nói cách khác, có khả năng thang máy sẽ đến trong khoảng từ 1 đến 2 giây, cũng như nó sẽ đến trong khoảng từ 15 đến 16 giây [với xác suất 0. 05]
CDF phân phối đều liên tục
Bây giờ hãy xem xét một bổ sung cho ví dụ trong phần này. Bạn vẫn đang ở trong tòa nhà chung cư chờ thang máy, nhưng bây giờ bạn muốn tìm xác suất để thang máy đi đến nơi sau khi bạn nhấn nút trong 6 giây hoặc ít hơn là bao nhiêu?
Sử dụng công thức CDF phân phối liên tục từ phần này, chúng tôi có thể giải quyết cho
$$F[6] = P[X\leq 6] = \frac{6-0}{20} = \frac{6}{20} = 0. 3$$
Chúng tôi quan sát thấy rằng xác suất để thang máy mất 6 giây hoặc ít hơn [ở bất kỳ đâu trong khoảng từ 0 đến 6] là 0. 3
Sử dụng công thức \[F[x]\] và các tham số đã cho, chúng ta có thể tạo hình ảnh trực quan sau về CDF đồng nhất liên tục
Và chúng tôi quan sát mối quan hệ tuyến tính giữa xác suất tích lũy và biến ngẫu nhiên \[X\], trong đó hàm tăng đơn điệu với tốc độ \[f[x]\] [trong trường hợp của chúng tôi \[f[x]=0. 05\]]
Ví dụ phân phối đồng đều liên tục trong Python
Trong một trong các phần trước, chúng ta đã tính toán hàm mật độ xác suất phân bố đều liên tục bằng tay. Trong phần này, chúng tôi sẽ tái tạo các kết quả tương tự bằng Python
Chúng tôi sẽ bắt đầu với việc nhập các phụ thuộc cần thiết
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
Tiếp theo, chúng tôi sẽ tạo một mảng giá trị liên tục trong khoảng từ 0 đến 20 [thời gian chờ tối thiểu và tối đa]. Về mặt toán học, có một số lượng lớn vô hạn các giá trị, vì vậy với mục đích của ví dụ này, chúng tôi sẽ tạo 4.000 giá trị trong phạm vi từ 0 đến 20. Chúng tôi cũng sẽ in 3 trong số chúng đầu tiên chỉ để xem
a=0
b=20
size=4000
x = np.linspace[a, b, size]
print[x[:3]]
Và bạn sẽ nhận được
[0. 0.00500125 0.0100025 ]
Và bây giờ chúng ta sẽ phải tạo một biến ngẫu nhiên liên tục thống nhất bằng cách sử dụng scipy. số liệu thống kê. đồng phục
continuous_uniform_distribution = uniform[loc=a, scale=b]
Trong các phần sau, chúng tôi sẽ tập trung vào tính toán PDF và CDF bằng Python
Phân phối thống nhất liên tục PDF trong Python
Để tính toán PDF phân phối thống nhất tích lũy bằng Python, chúng tôi sẽ sử dụng. pdf[] của scipy. số liệu thống kê. máy phát điện thống nhất
continuous_uniform_pdf = continuous_uniform_distribution.pdf[x]
print[continuous_uniform_pdf]
Và bạn sẽ nhận được
[0.05 0.05 0.05 .. 0.05 0.05 0.05]
Vì vậy, bây giờ chúng tôi tìm thấy xác suất cho mỗi giá trị là như nhau và bằng 0. 05, chính xác như chúng tôi tính toán bằng tay
Vẽ PDF phân phối đồng đều liên tục bằng Python
Sử dụng thư viện matplotlib, chúng ta có thể dễ dàng vẽ biểu đồ PDF phân phối đồng đều liên tục bằng Python
plt.plot[x, continuous_uniform_pdf]
plt.xlabel['X']
plt.ylabel['Probability']
plt.show[]
Và bạn sẽ nhận được
CDF phân phối đồng đều liên tục trong Python
Để tính toán CDF phân phối đồng đều liên tục bằng Python, chúng tôi sẽ sử dụng. cdf[] của scipy. số liệu thống kê. máy phát điện thống nhất
________số 8_______Vì chúng tôi sẽ có 4.000 giá trị, nếu chúng tôi muốn kiểm tra lại tính chính xác của các phép tính mà chúng tôi đã thực hiện thủ công, bạn sẽ cần tìm xác suất tích lũy được liên kết với giá trị bằng 6. Nó thực sự là khoảng 0. 3
Vẽ biểu đồ CDF phân phối đồng đều liên tục bằng Python
Sử dụng thư viện matplotlib, chúng ta có thể dễ dàng vẽ biểu đồ CDF phân phối đồng đều liên tục bằng Python
plt.plot[x, continuous_uniform_cdf]
plt.xlabel['X']
plt.ylabel['Cumulative Probability']
plt.show[]
Và bạn sẽ nhận được
Ví dụ phân phối thống nhất rời rạc
Hãy xem xét một ví dụ [và đây là ví dụ mà hầu hết chúng tôi đã tự làm]. lăn xúc xắc. Về cơ bản, các kết quả có thể xảy ra khi tung một con súc sắc 6 mặt duy nhất tuân theo phân bố đều rời rạc
Tại sao vậy? . 1, 2, 3, 4, 5 hoặc 6]. Số kết quả có thể xảy ra nếu hữu hạn và mỗi kết quả có xác suất được quan sát bằng nhau, đó là \[\frac{1}{6}\]
PMF phân phối đồng đều rời rạc
Biết số lượng tất cả các kết quả có thể xảy ra \[n\], chúng ta có thể dễ dàng tính toán PMF phân phối đều rời rạc
$$f[x]=\frac{1}{6} = 0. 16$$
Sử dụng công thức \[f[x]\] và các tham số đã cho, chúng ta có thể tạo hình ảnh trực quan sau về PMF thống nhất rời rạc
Trong ví dụ này, mỗi mặt của con súc sắc có cơ hội được quan sát như nhau bằng 0. 16
CDF phân phối đều rời rạc
Bây giờ hãy xem xét một bổ sung cho ví dụ này. Bạn đang tung một con súc sắc 6 mặt giống nhau và bây giờ muốn tìm xác suất để bạn quan sát được kết quả bằng hoặc nhỏ hơn 2 [có nghĩa là 1 hoặc 2]
Biết số lượng tất cả các kết quả có thể xảy ra \[n\], chúng ta có thể dễ dàng tính toán CDF phân phối đều rời rạc
$$F[2]=\frac{2-1+1}{6-1+1} = \frac{2}{6} = 0. 33$$
Điều này cho chúng ta biết rằng nếu chúng ta tung một con súc sắc 6 mặt, xác suất quan sát được giá trị nhỏ hơn hoặc bằng 2 là 0. 33
Sử dụng công thức \[F[x]\] và các tham số đã cho, chúng ta có thể tạo hình ảnh trực quan sau về CDF thống nhất rời rạc
Và chúng tôi quan sát mối quan hệ từng bước vì chúng tôi có các giá trị rời rạc như các kết quả có thể xảy ra
Ví dụ phân phối thống nhất rời rạc trong Python
Trong một trong các phần trước, chúng ta đã tính toán hàm phân phối tích lũy phân phối đều liên tục bằng tay. Trong phần này, chúng tôi sẽ tái tạo các kết quả tương tự bằng Python
Chúng tôi sẽ bắt đầu với việc nhập các phụ thuộc cần thiết
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
0Tiếp theo, chúng ta sẽ tạo một mảng các giá trị từ 1 đến 6 [giá trị khuôn nhỏ nhất và lớn nhất] và in chúng ra để xem
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
1Và bạn sẽ nhận được
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
2Và bây giờ chúng ta sẽ phải tạo một biến ngẫu nhiên liên tục thống nhất bằng cách sử dụng scipy. số liệu thống kê. nói tục tĩu
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
3Trong các phần sau, chúng tôi sẽ tập trung vào tính toán PMF và CDF bằng Python
PMF phân phối thống nhất rời rạc trong Python
Để tính toán PMF phân phối đồng nhất rời rạc bằng Python, chúng tôi sẽ sử dụng. pmf[] phương thức của scipy. số liệu thống kê. máy phát điện randint
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
4bạn nên lấy
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
5Đó chính xác là số 0. 16 giá trị mà chúng tôi tính bằng tay
Vẽ biểu đồ PMF phân phối đồng đều rời rạc bằng Python
Bằng cách sử dụng thư viện matplotlib, chúng ta có thể dễ dàng vẽ biểu đồ PMF phân phối thống nhất rời rạc bằng Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
6Và bạn sẽ nhận được
CDF phân phối thống nhất rời rạc trong Python
Để tính toán PMF phân phối đồng nhất rời rạc bằng Python, chúng tôi sẽ sử dụng. cdf[] của scipy. số liệu thống kê. máy phát điện randint
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
7Và bạn sẽ nhận được
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
8Ở đây chúng ta thấy rằng giá trị thứ hai trong mảng là 0. 33 giống hệt như chúng tôi tính toán bằng tay
Vẽ biểu đồ CDF phân phối thống nhất rời rạc bằng Python
Bằng cách sử dụng thư viện matplotlib, chúng ta có thể dễ dàng vẽ biểu đồ CDF phân phối thống nhất rời rạc bằng Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import uniform
9Và bạn sẽ nhận được
Phần kết luận
Trong bài viết này, chúng ta đã khám phá phân phối đồng đều tích lũy và phân phối đồng đều rời rạc, cũng như cách tạo và vẽ chúng trong Python
Vui lòng để lại nhận xét bên dưới nếu bạn có bất kỳ câu hỏi nào hoặc có đề xuất cho một số chỉnh sửa và xem thêm các bài viết Thống kê của tôi