1. Xác suất

Xác suất là một đại lượng linh hoạt dùng để đo lường sự chắc chắn của một sự kiện. Khi nói đến xác suất, chúng ta nghĩ đến khả năng xảy ra. Lấy ví dụ trong tác vụ phân loại ảnh chó và mèo. Nếu bạn rất chắc chắn rằng bức ảnh đó là một con chó thì bạn sẽ đưa ra xác suất là một giá trị nào đó rất gần 1, chẳng hạn 0.95. Nhưng giả sử bức ảnh bị nhoè và chụp ở khoảng cách rất xa thì bạn không chắc chắn đó là một con chó. Do đó xác suất sẽ giúp bạn đưa ra một lựa chọn lưỡng lự hơn, đó là 0.5 (có thể là chó, mà cũng có thể là mèo).

Các sự kiện trong tự nhiên thì hoàn toàn không bao giờ chắc chắn. Chắc bạn còn nhớ trong bầu cử tổng thống Mỹ năm 2016 giữa ông Donald Trumph và bà Hillary Clinton. Trước khi bầu cử rất nhiều nhận định cho rằng bà Clinton sẽ thắng cử nhưng cuối cùng ông Trumph vẫn trở thành tổng thống. Chính vì thế các nhà khoa học sẽ gán cho các sự kiện không chắc chắn một xác suất để cho thấy sự tin cậy của quyết định.

Việc chúng ta dự báo xác suất có rất nhiều ý nghĩa trong thực tiễn. Các công ty thương mại điện tử muốn dự đoán khả năng khách hàng mua sản phẩm nào là cao nhất dựa trên xác suất. Từ đó họ tối ưu lại thiết kế hệ thống recommendation của mình để gợi ý cho khách hàng sao cho họ mua hàng nhiều nhất. Trong ngành bài bạc, các nhà cái muốn tìm cách chiến thắng người chơi dựa trên tính toán về khả năng chiến thắng/thất bại là bao nhiêu để tìm ra kỳ vọng về lợi nhuận. Các công ty bảo hiểm muốn tính toán khả năng xảy ra rủi ro đối với khách hàng của mình để đưa ra mức phí bảo hiểm phù hợp. Trong nông nghiệp chúng ta quan tâm nhiều hơn tới khả năng mưa, nắng, độ ẩm, gió, các cơn bão để tìm cách điều tiết mùa màng,… Mục tiêu của các mô hình phân loại trong học máy đều là tìm ra một mô hình ước lượng xác suất tốt nhất để mang lại lợi ích cho tác vụ huấn luyện.

Chính vì vai trò quan trọng như vậy nên có rất nhiều ngành học đã ứng dụng xác suất như xác suất thống kê, định giá tài sản tài chính, định giá bảo hiểm,… Không thể phủ nhận rằng đây là một mảng rất rộng và tất nhiên chương này tôi cũng không tìm cách bao quát toàn bộ kiến thức về xác suất mà chỉ giới thiệu đến các bạn những khái niệm nền tảng được ứng dụng nhiều trong học máy. Từ đó bạn đọc sẽ có thêm kiến thức để tự nghiên cứu và ứng dụng các mô hình trong thực tiễn.

1.1. Không gian mẫu

Các xác suất chính là một độ đo được xác định trên một không gian mẫu. Không gian mẫu được ký hiệu là \(S\) cho biết tất cả các khả năng có thể xảy ra của một sự kiện. Ví dụ khi chúng ta gieo một xúc sắc 6 mặt thì các mặt \(\{1, 2, 3, 4, 5, 6\}\) chính là một không gian mẫu. Khi chúng ta tung đồng xu 2 mặt đồng chất thì các mặt \(\{sap, ngua\}\) chính là một không gian mẫu.

Xác suất của một sự kiện \(i\) bất kỳ nằm trong không gian mẫu được ký hiệu bằng \(P(X=i)\) hoặc chúng ta có thể viết tắt \(P(i)\).

Chúng ta cũng có thể sử dụng ký hiệu \(P(1 \leq X \leq 4)\) để chỉ ra xác suất rơi vào các khả năng \(\{1, 2, 3, 4\}\). Ký hiệu \(X\) ở trên được gọi là biến ngẫu nhiên.

1.2. Biến ngẫu nhiên

Biến ngẫu nhiên (random variable, aleatory variable hoặc stochastic variable) là một khái niệm xuất phát từ bộ môn xác suất thống kê, biến ngẫu nhiên là biến mà có giá trị phụ thuộc vào một sự kiện ngẫu nhiên. Ví dụ như kết quả của tung đồng xu hai mặt đồng chất, kết quả gieo xúc sắc 6 mặt hay kết quả hai số cuối của giải đặc biệt xskt MB mà bạn xem hàng ngày là một biến ngẫu nhiên. Biến ngẫu nhiên có thể liên tục hoặc rời rạc tuỳ theo đại lượng mà nó biểu diễn.

Trong trường hợp tung xúc sắc 6 mặt thì biến ngẫu nhiên chính là một trong các khả năng \(\{1, 2, 3, 4, 5, 6\}\). Đây là biến rời rạc vì tập hợp của chúng có số lượng quan sát cố định. Nếu chúng ta đo lường cân nặng của một người thì giá trị đó là một biến ngẫu nhiên liên tục. Lý do nó liên tục là vì cân nặng có thể là một số hữu tỷ bất kỳ, ví dụ như 55.0293102311 mà không nhất thiết phải là một số nguyên. Bởi vì chắc chắn rằng cân nặng giữa 2 người bất kỳ trên trái đất là khác nhau. Khi chúng ta nói hai người có cân nặng bằng nhau là ta đang giả định rằng cân nặng của họ cùng nằm trên một khoảng rất nhỏ ví dụ như từ \(52-53\).

Biến ngẫu nhiên liên tục và rời rạc có sự khác biệt nhau về tính liên tục nên trong công thức tính toán xác suất chúng ta thường sử dụng tổng cho biến rời rạc và tích phân cho biến ngẫu nhiên. Tiếp theo ta sẽ cùng tìm hiểu các đặc trưng của biến cho hai trường hợp biến ngẫu nhiên liên tục và rời rạc như bên dưới.

1.3. Đặc trưng của biến

1.3.1 Kì vọng

Trong một biến ngẫu nhiên có rất nhiều các quan sát thì chúng ta không biết chọn ra giá trị nào làm đại diện cho biến. Đại diện của biến phải là giá trị có thể giúp đánh giá được khái quát độ lớn của biến đó về mặt giá trị. Kỳ vọng là một giá trị đáp ứng được điều này vì nó cho biết về trung bình thì biến có độ lớn là bao nhiêu. Giá trị của kỳ vọng được tính theo hai trường hợp:

  • Nếu \(\text{x}\) là biến ngẫu nhiên rời rạc.

\[\text{E(x)} = \sum_{i=1}^{n} x_i p(x_i)\]

Trong đó \(p(x_i)\) là xác suất xảy ra biến cố \(x = x_i\). Khi khả năng xảy ra của các biến cố ngẫu nhiên \(x_i\) là như nhau thì giá trị của kỳ vọng:

\[\text{E(x)} = \bar{\text{x}} = \frac{\sum_{i=1}^{n}x_i}{n}\]
  • Nếu \(\text{x}\) là một đại lượng ngẫu nhiên liên tục:

\[\text{E(x) }= \bar{\text{x}} = \int xp(x) dx\]

Một số tính chất của kì vọng:

\[\begin{split}\begin{eqnarray}\text{E(ax)} & = & a\text{E(x)} \\ \text{E(ax+by)} & = & a\text{E(x)} + b\text{E(y)} \\ \text{E(xy)} & = & \text{E(x)}\text{E(y)}, ~ \text{if} ~ \text{x, y} ~ \text{independent} \end{eqnarray}\end{split}\]

1.3.2 Hiệp phương sai (Covariance)

Hiệp phương sai (Covariance) là giá trị đo lường mối quan hệ cùng chiều hoặc ngược chiều giữa 2 biến ngẫu nhiên. Đây là giá trị được sử dụng nhiều trong kinh tế lượng và thống kê học để giải thích mối quan hệ tác động giữa các biến. Khi hiệp phương sai giữa 2 biến lớn hơn 0, chúng có quan hệ đồng biến và ngược lại. Hiệp phương sai chỉ được tính trên 2 chuỗi có cùng độ dài.

\[\text{cov(x, y)} = \text{E}[(\text{x}-\bar{\text{x}})(\text{y}-\bar{\text{y}})] = \frac{\sum_{i=1}^{n} (x_i-\bar{\text{x}})(y_i-\bar{\text{y}})}{n}\]

Gía trị của hiệp phương sai giữa 2 chuỗi số \(\text{x,y}\) được kí hiệu là \(\text{cov(x,y)}\) hoặc \(\sigma_{\text{xy}}\) và được tính bằng kì vọng của tích chéo độ lệch so với trung bình của 2 biến như công thức trên.

Như vậy ta có thể rút ra các tính chất của hiệp phương sai:

  • tính chất đối xứng: \(\text{cov(x, y) = cov(y, x)}\)

  • tính chất tuyến tính: \(\text{cov(ax+by, z) = a cov(x, y) + b cov(y, z)}\)

  • tính chất scale: \(\text{cov(ax, by) = ab.cov(x, y)}\)

Khai triển công thức hiệp phương sai ta có:

\[\begin{split}\begin{eqnarray}\text{cov(x, y)} & = & \text{E(xy)}-\bar{\text{x}}\text{E(y)}-\bar{\text{y}}\text{E(x)} + \bar{\text{x}}\bar{\text{y}} \\ & = & \text{E(xy)}-\text{E(x)}\text{E(y)} \end{eqnarray}\end{split}\]

Ma trận hiệp phương sai giữa hai biến ngẫu nhiên \(\text{x, y}\):

\[\begin{split}\mathbf{A} = \begin{bmatrix} \text{cov(x, x)}, & \text{cov(x, y)}\\ \text{cov(y, x)}, & \text{cov(y, y)} \end{bmatrix}\end{split}\]

Ma trận hiệp phương sai là một ma trận đối xứng.

Trên numpy chúng ta có thể tính được ma trận hiệp phương sai giữa \(\text{x, y}\) như sau:

import numpy as np

# Khởi tạo các vector x, y ngẫu nhiên có độ dài 100
x = np.random.randn(100)
y = np.random.randn(100)

# Ma trận hiệp phương sai
np.cov(x, y)
array([[ 0.89208   , -0.09304123],
       [-0.09304123,  0.97186854]])

1.3.3. Phương sai

Là trường hợp đặc biệt của hiệp phương sai. Phương sai chính là hiệp phương sai giữa một biến ngẫu nhiên với chính nó. Giá trị của phương sai luôn lớn hơn hoặc bằng 0 do bằng tổng bình phương sai số của từng mẫu so với kỳ vọng. Trong trường hợp phương sai bằng 0, đại lượng là một hằng số không biến thiên. Phương sai của một đại lượng thể hiện mức độ biến động của đại lượng đó xung quanh giá trị kỳ vọng. Nếu phương sai càng lớn, miền biến thiên của đại lượng càng cao và ngược lại.

Công thức của phương sai được kí hiệu là \(\text{Var}(x)\), giá trị của phương sai được ký hiệu là \(\sigma_x^2\) đối với tổng thể và \(s_x^2\) đối với tập mẫu con được trích từ tổng thể. Công thức phương sai được tính như sau:

  • Nếu \(x\) là đại lượng ngẫu nhiên rời rạc:

\[\text{Var}(x) = \sum_{i=1}^{n} (x_i-\mu)^2 p(x_i) dx\]

Trong đó \(\text{E}(x) = \mu\). Khi các giá trị xảy ra với cùng xác suất bằng \(\frac{1}{n}\), phương sai chính là trung bình \(\text{Var}(x) = \frac{\sum_{i=1}^{n} (x_i-\mu)^2}{n}\)

  • Nếu \(x\) là đại lượng ngẫu nhiên liên tục:

\[\text{Var}(x) = \int (x-\mu)^2 p(x) dx\]

Phương sai của một biến có thể được tính toán thông qua kì vọng của biến:

\[\begin{split}\begin{eqnarray} \text{Var}(x) & = & \text{E}((x-\mu)^2) \\ & = & \text{E}((x^2-2\mu x+\mu^2)) \\ & = & \text{E}(x^2)-2\mu \text{E}(x)+\text{E}(\mu^2) \\ & = & \text{E}(x^2)-2\mu^2+\mu^2 \\ & = & \text{E}(x^2)-\mu^2 \\ & = & \text{E}(x^2)-\text{E}(x)^2 \end{eqnarray}\end{split}\]

Đây là một trong những tính chất rất thường được sử dụng khi tính toán nhanh phương sai mà bạn đọc cần nhớ. Đồng thời từ công thức trên ta cũng suy ra một bất đẳng thức quan trọng đó là kỳ vọng của bình phương luôn lớn hơn bình phương của kỳ vọng: \(\text{E}(x^2) \geq \text{E}(x)^2\)

Để tính phương sai của véc tơ x trên numpy ta dùng hàm np.var().

# Phương sai của x
np.var(x, ddof=1)

# Hoặc 
x.var(ddof=1)
0.8920799958447639

Ở trên thì ddof là bậc tự do có giá trị mặc định là 0.

1.3.4. Độ lệch chuẩn

Độ lệch chuẩn của một đại lượng có giá trị bằng căn bậc 2 của phương sai. Nó đại diện cho sai số của đại lượng so với trung bình.

\[\sigma_x = \sqrt{\text{Var}(x)}\]

Trong trường hợp các biến rời rạc phân phối đều với xác suất \(\frac{1}{n}\):

\[\sigma_x = \sqrt{\frac{\sum_{i=1}^{n}(x-\bar{x})^2}{n}}\]

Trong thống kê chúng ta thường xác định các giá trị outliers dựa trên nguyên lý 3 sigma bằng cách xem những giá trị nằm ngoài khoảng \([\mu-3\sigma, \mu+3\sigma]\) như là outliers. Ta có thể xử lý outliers bằng cách đưa giá trị của outliers về các đầu mút \(\mu-3\sigma\)\(\mu+3\sigma\) hoặc loại bỏ luôn outliers.

Độ lệch chuẩn được tính theo hàm np.std()

# Phương sai của x
np.std(x, ddof=1)

# Hoặc
x.std(ddof=1)
0.9444998654551328

1.3.5. Hệ số tương quan:

Là một chỉ số có quan hệ gần gũi với hiệp phương sai. Hệ số tương quan đánh giá mối quan hệ đồng biến hay nghịch biến giữa 2 đại lượng ngẫu nhiên. Tuy nhiên khác với hiệp phương sai, hệ số tương quan cho biết thêm mối quan hệ tương quan tuyến tính giữa 2 biến là mạnh hay yếu.

Hệ số tương quan giao động trong khoảng [-1, 1]. Tại 2 giá trị đầu mút -1 và 1, hai biến hoàn toàn tương quan tuyến tính. Tức ta có thể biểu diễn \(\text{y}=a\text{x}+b\). Trường hợp hệ số tương quan bằng 0, hai đại lượng là độc lập tuyến tính. Phương trình biểu diễn tương quan được tính như sau:

\[\rho_{\text{xy}} = \frac{\text{cov(x,y)}}{\sigma_{x}\sigma_{y}}\]

Trong hồi qui tuyến tính và logistic, hệ số tương quan thường được dùng để ranking mức độ quan trọng của biến trước khi thực hiện hồi qui. Trong các mô hình timeseries như ARIMA, GARCH chúng ta cũng xác định các tham số bậc tự do của phương trình hồi qui dựa trên hệ số tương quan giữa các chuỗi với độ trễ của nó.

Ma trận hệ số tương quan giữa hai véc tơ \(\text{x, y}\) được tính theo hàm np.corrcoef()

# Hệ số tương quan giữa x và y
np.corrcoef(x, y)
array([[ 1.        , -0.09992399],
       [-0.09992399,  1.        ]])

1.4. Qui luật số lớn

Qui luật số lớn cho rằng khi một mẫu con có kích thước càng lớn được rút ra từ tổng thể thì các giá trị đặc trưng của nó như trung bình, phương sai càng tiệm cận tới giá trị của của tổng thể. Phát biểu toán học của qui luật số lớn đối với trung bình:

Xét \(n\) mẫu ngẫu nhiên \(X_1, X_2,..., X_n\) độc lập cùng tuân theo phân phối \(\mathbf{N}(\mu, \sigma^2)\). Khi đó \(\forall \epsilon > 0\) ta có:

\[\lim_{n \rightarrow \infty} P(|\frac {X_{1}+X_{2}+...+X_{n}}{n} - \text{E(X)}| \geq \epsilon) = \lim_{n \rightarrow \infty} P(|\bar{\text{X}} - \text{E(X)}| \geq \epsilon) = 0\]

Công thức trên có ý nghĩa rằng xác suất để \(\bar{\text{X}}\) hội tụ về \(\text{E(X)}\) là rất lớn. Do đó mặc dù \(\epsilon\) rất nhỏ thì khả năng để khoảng cách \(|\bar{\text{X}} - \text{E(X)}| \geq \epsilon\) cũng rất nhỏ và gần bằng 0.

1.5. Chứng minh qui luật số lớn

Đây là một phần dành cho những bạn nào yêu thích toán. Những bạn đọc chỉ quan tâm tới ứng dụng có thể bỏ qua.

Để chứng minh luật số lớn ta cần sử dụng đến bất đẳng thức Markov đó là: xác suất để một biến ngẫu nhiên \(\text{X}\) không âm lớn hơn \(a\) (\(a > 0\)) luôn nhỏ hơn kì vọng của biến ngẫu nhiên đó chia cho \(a\).

\[P(\text{X}\geq a) \leq \frac{\text{E(X)}}{a}\]
  • Chứng minh bất đẳng thức markov:

Do \(x\) không âm nên

\[\begin{split}\begin{eqnarray}\text{E(X)} &=& \int_{0}^{\infty} xf(x)dx \\ &=& \int_{0}^{a} xf(x)dx + \int_{a}^{\infty} xf(x)dx \\ &\geq& \int_{a}^{\infty} xf(x)dx \\ &\geq& \int_{a}^{\infty} af(x)dx \\ &=& a\int_{a}^{\infty}f(x)dx \\ &=& a.P(\text{X} \geq a)\end{eqnarray}\end{split}\]

Từ đó suy ra \(P(\text{X}\geq a) \leq \frac{\text{E(X)}}{a}\)

  • Chứng minh qui luật số lớn:

\[P(|\frac {X_{1}+X_{2}+...+X_{n}}{n} - \text{E(X)}| \geq \epsilon) = P((\frac {X_{1}+X_{2}+...+X_{n}}{n} - \text{E(X)})^2 \geq \epsilon^2)\]

Đặt \(Y_n = \frac{X_1+X_2+...+X_n}{n}\)\(\text{Z} = (Y_{n}-\text{E(X)})^2\). Áp dụng bất đẳng thức markov cho đại lượng không âm \(\text{Z}\), ta có:

\[P(\text{Z} \geq \epsilon^2) \leq \frac{\text{E(Z)}}{\epsilon^2} \tag{1}\]

Ở đây ta coi \(X_1, X_2, \dots, X_n\) là các biến độc lập. Khi đó:

\[\text{Var}(Y_{n}) = \text{Var}(\frac{X_1 + X_2 + \dots + X_n}{n}) = \frac{n\text{Var(X)}}{n^2} = \frac{\text{Var(X)}}{n}\]

Do đó:

\[\begin{eqnarray}\lim_{n \rightarrow \infty}\text{E(Z)} & = & \lim_{n \rightarrow \infty}\text{E}(Y_{n}-\text{E(X)})^2 \end{eqnarray}\]

Mặt khác:

\[\lim_{n \rightarrow \infty} \text{E}(Y_n) = \text{E(X)}\]

Do đó:

\[\begin{split}\begin{eqnarray}\lim_{n \rightarrow \infty}\text{E(Z)} & = & \lim_{n \rightarrow \infty}\text{E}(Y_{n}-\text{E(X)})^2 \\ &=& \lim_{n \rightarrow \infty}\text{E}(Y_{n}-\text{E}(Y_n))^2 \\ &=& \lim_{n \rightarrow \infty}\text{Var}(Y_{n}) \\ &=& \lim_{n \rightarrow \infty} \frac{\text{Var(X)}}{n} = 0 \end{eqnarray}\end{split}\]

Từ đó thế vào (1) ta suy ra:

\[\begin{eqnarray}\lim_{n \rightarrow \infty} P(\text{Z} \geq \epsilon^2) &\leq& \lim_{n \rightarrow \infty}\frac{\text{E(Z)}}{\epsilon^2} \ &=& \lim_{n \rightarrow \infty} \frac{\text{Var(X)}}{n\epsilon^2} = 0\end{eqnarray}\]

Mặt khác \(P(\text{Z} \geq \epsilon^2) \geq 0\) nên suy ra \(\lim_{n \rightarrow \infty}P(\text{Z} \geq \epsilon^2) = 0\). Suy ra điều phải chứng minh. Mấu chốt của chứng minh bất đẳng thức này là chúng ta phải phát hiện được tính chất \(\text{Var}(Y_{n}) = \frac{\text{Var(X)}}{n}\) là một đại lượng tiến dần về 0 khi \(n\) tiến tới vô cùng.

1.6. Hàm mật độ (pdf) và hàm khối xác suất (pmf)

Một số biến ngẫu nhiên có tính chất phân phối đều như tung đồng xu hai mặt đồng chất, tung xúc sắc 6 mặt đồng chất. Nhưng hầu hết các biến ngẫu nhiên không bao giờ có tính chất phân phối đều. Hẳn bạn còn nhớ qui luật pareto nổi tiếng về 20% nguyên nhân là sự giải thích của 80% các sự kiện? Rất nhiều các sự kiện trong cuộc sống tuân theo qui luật tưởng chừng như vô lý nhưng lại rất hợp lý này. Chẳng hạn như 20% người giaù sẽ nắm giữ 80% tổng tài sản của thế giới. Quyết định đến từ 20% nhân sự cấp cao của công ty tạo ra 80% lợi nhuận toàn công ty. Trong cuộc sống, việc tìm ra phân phối của biến sẽ có rất nhiều ý nghĩa vì nó giúp ta biết được đâu là bản chất của vấn đề trong mọi khía cạnh cuộc sống.

Để biết được một biến ngẫu nhiên sẽ có phân phối trông như thế nào? Ở miền nào thì tập trung nhiều giá trị của biến, miền nào thì ít hơn. Câu trả lời đó được cung cấp thông qua hàm phân phối xác suất.

  • Hàm khối xác suất (probability mass function): được viết tắt là pmf và ký hiệu là \(p(x)\). pmf của một biến ngẫu nhiên \(\mathbf{x}\) rời rạc là một hàm số đo lường xác suất xảy ra sự kiện \(x\), được thể hiện qua công thức \(p(X = x)\). Như vậy \(1 \geq p(x) \geq 0\) và tổng xác suất của toàn bộ các khả năng trong không gian biến cố bằng 1, hay:

\[\sum_{x \in \mathcal{S}} p(x) = 1\]

Trong đó \(\mathcal{S}\) là không gian biến cố, chẳng hạn trường hợp tung đồng xu thì \(\mathcal{S} = {1,2,3,4,5,6}\).

  • Hàm mật độ xác suất (probability density function): Khi biến ngẫu nhiên liên tục sẽ có vô số các giá trị có thể của \(x\). Vì vậy ta không thể tính tổng toàn bộ khả năng xảy ra của sự kiện dưới dạng tổng xác suất rời rạc. Khi đó tích phân sẽ được sử dụng thay thế.

\[\int p(x) dx = 1\]

Trong trường hợp này thuật ngữ hàm mật độ xác suất (probability density function) và ký hiệu là pdf sẽ được sử dụng để ám chỉ \(p(x)\).

Như chúng ta đã biết tích phân của một hàm số \(f(x)\) chính là diện tích nằm giữa đường cong đồ thị \(y = f(x)\) và trục hoành. Như vậy, phần diện tích này sẽ có giá trị là 1 như hình bên dưới:

Hình 1: đồ thị hàm mật độ xác suất của phân phối chuẩn.

Hàm mật độ xác suất của phân phối chuẩn có phương trình \(pdf(x) = \frac{1}{\sqrt{2\pi\sigma^2}} e^\frac{-(x-\mu)^2}{2\sigma^2}\) là đường cong có hình quả chuông đối xứng 2 bên. Giá trị hàm mật độ xác suất tại những điểm lùi về phía 2 đuôi trái và phải nhỏ dần và giá trị hàm mật độ xác suất tại vị trí trung tâm \(x=\mu\) là lớn nhất. Phần diện tích màu hồng nằm dưới đường cong hàm mật độ xác suất và trục hoành có giá trị bằng 1.

Trong python khi làm việc với phân phối xác suất và thống kê chúng ta sẽ chủ yếu sử dụng package scipy. Hàm pdf của phân phối chuẩn có thể được tính dựa vào hàm norm.pdf() của scipy.

import numpy as np
from scipy.stats import norm

x = np.array([1, 2, 3, 4, 5])
# Tính pdf cho véc tơ x theo phân phối chuẩn hoá
norm.pdf(x)
array([2.41970725e-01, 5.39909665e-02, 4.43184841e-03, 1.33830226e-04,
       1.48671951e-06])

1.8. Hàm phân phối xác suất tích luỹ (cdf)

Hàm phân phối xác suất tích luỹ (cumulative distribution function) được viết tắt là cdf là hàm số cho biết xác suất xảy ra của biến ngẫu nhiên khi giá trị của nó nhỏ hơn một ngưỡng \(x\) xác định. Hàm số này chính là tổng của các xác suất và tăng dần nên nó có tên gọi là tích luỹ. Công thức của cdf như sau:

\[F_X(x) = P(X \leq x)\]

Do đó \(F_X(x) \in [0, 1]\) và là một hàm đơn điệu tăng.

Vậy hàm cdf được biểu thị trên đồ thị như thế nào? Hẳn chúng ta còn nhớ khái niệm về tích phân đã từng học tại THPT, đây chính là phần diện tích nằm dưới đồ thị của hàm số và nằm trên trục hoành.

Chẳng hạn trong phân phối ở hình trên ta có giá trị của phân phối xác suất tích luỹ \(F_X(x=1) = CDF(x)\) và chính là diện tích phần diện tích được tô xám bên trái. Khi đồ thị hóa hàm phân phối xác suất tích lũy ta thu được đồ thị của \(F_X(x)\) đơn điệu tăng như hình bên phải. Trục \(x\) là giá trị của biến ngẫu nhiên \(X\) và trục \(y\) là giá trị của hàm phân phối xác suất tích luỹ \(F_X(x)\).

Để tính cdf cho phân phối chuẩn chúng ta dùng hàm cdf()

import numpy as np
from scipy.stats import norm

# Tính cdf(x)= p(X<=x)
x = 2.1
p = norm.cdf(x)
p
0.9821355794371834

Từ xác xuất tích luỹ \(CDF(x)\) ta có thể tính ra được giá trị của x dựa vào hàm ppd() (Percent Point Function, hàm ngược của CDF). Đây chính là gía trị tới hạn của phân phối xác suất.

# Tính giá trị x dựa vào xác suất p=cdf(x)
norm.ppf(p)
2.0999999999999996

Bài tập:

  1. Làm thế nào để tính được phân phối xác suất \(P(a \leq X \leq b)\) dựa vào hàm cdf ?

  2. Tính giá trị để \(P(\mu - 1.5 \sigma \leq X \leq \mu + 1.5 \sigma)\) trong phân phối chuẩn hoá có \(\mu=0, \sigma=1\). Xác suất này là cao hay thấp?

1.7. Xác suất đồng thời (join distribution)

Trường hợp trên là đối với không gian xác suất chỉ gồm một biến cố. Trên thực tế có nhiều biến cố xảy ra có mối liên hệ với nhau và đòi hỏi phát xét đến những không gian xác suất đồng thời của nhiều biến cố. Chúng ta sẽ thể hiện các xác suất đồng thời thông qua hàm phân phối xác suất đồng thời \(p(x, y)\) biểu thị khả năng xảy ra đồng thời của cả 2 sự kiện \(x\)\(y\).

Nếu x, y rời rạc:

\[\sum_{x, y} p(x, y) = 1\]

Nếu x, y liên tục:

\[\int {p(x, y)} dx dy = 1\]

Nếu x rời rạc, y liên tục:

\[\sum_{x}\int p(x, y) dy = 1\]

1.8. Xác suất biên (margin distribution)

Nếu chúng ta cố định một biến cố và tính tổng (đối với biến rời rạc) hoặc tích phân (đối với biến liên tục) các xác suất chung \(p(x, y)\) theo biến cố còn lại thì ta sẽ thu được hàm phân phối xác suất của theo một biến. Hàm phân phối xác suất này được gọi là xác suất biên (marginal probability). Chúng ta có thể coi xác suất biên là một dạng giảm chiều dữ liệu của xác suất. Chẳng hạn trong bản bên phân phối giữa điểm toán và điểm văn bên dưới thì muốn tính phân phối xác suất biên của điểm toán chúng ta sẽ tính tổng xác suất của mỗi điểm toán từ \(0\) tới \(10\) theo toàn bộ các điểm văn tương ứng:

Như vậy từ phân phối xác suất hai chiều ta đã thu được phân phối xác suất biên một chiều.

Công thức phân phối xác suất biên được tính như sau:

Biến rời rạc:

\[p(x) = \sum_{y} p(x, y)\]
\[p(y) = \sum_{x} p(x, y)\]

Biến liên tục:

\[p(x) = \int_{y} p(x, y) dy\]
\[p(y) = \int_{x} p(x, y) dx\]

1.9. Xác suất có điều kiện và định lý Bayes

\(p(y|x)\) là xác suất có điều kiện của biến \(y\) theo điều kiện \(x\). Trong suy diễn Bayes (Bayes inference) thì xác suất này còn được gọi là xác suất hậu nghiệm (posterior probability), hậu nghiệm có nghĩa là biết sau, chúng ta sẽ biết xác suất là bao nhiêu sau khi đã biết điều kiện \(x\). Xác suất này được tính dựa trên công thức Bayes như sau:

\[p(y|x) = \frac{p(x, y)}{p(x)}\]

Xác suất hậu nghiệm cho ta biết khả năng xảy ra của một biến cố \(y\) trong điều kiện đã xét đến khả năng xảy ra của các biến cố \(x\).

Hậu nghiệm ở đây có nghĩa là chúng ta chỉ biết xác suất xảy ra của \(y\) sau khi đã biết \(x\). Trái nghịch với xác suất hậu nghiệm là xác suất tiên nghiệm prior probability \(p(y)\). Xác suất này là xác suất được đưa ra mà không cần có data. Vậy tại sao không có data mà vẫn đưa ra được xác suất. Đó là bởi nó dựa trên kinh nghiệm có từ trước. Chẳng hạn như khi tung đồng xu đồng chất thì không cần biết đồng xu đó như thế nào thì chúng ta vẫn biết xác suất xảy ra của nó là \(1/2\) vì kinh nghiệm cho chúng ta biết được qui luật này.

Từ định lý Bayes ta có thể suy ra:

\[p(x, y) = p(x|y)p(y) = p(y|x)p(x)\]

Ví dụ: Về xác suất có điều kiện. Một người tham gia một trò chơi tung xúc sắc 6 mặt đồng chất. Người đó chơi 100 lượt thì có 18 lượt thu được mặt 6. Trong các ván có mặt sáu thì có 15 ván chiến thắng. Hỏi xác suất người đó chiến thắng là bao nhiêu nếu tung được mặt 6?

Chúng ta ký hiệu biến cố chiến thắng là \(y\) và gieo được mặt \(6\)\(x\). Từ các giữ kiện ta suy ra \(p(x=6)=\frac{18}{100} = 0.18\), \(p(y, x=6)=\frac{15}{100} = 0.15\). Khi đó theo định lý Bayes thì xác suất người đó chiến thắng trong điều kiện tung được xúc sắc mặt 6 là:

\[p(y|x = 6) = \frac{p(y, x=6)}{p(x = 6)} = \frac{0.15}{0.18} = 0.833\]

Thậm chí không cần biết số lần tung được mặt \(6\) là bao nhiêu. Dựa trên xác suất tiên nghiệm thì \(p(x = 6)\) thông thường sẽ bằng \(\frac{1}{6}\) nếu khối xúc sắc là đồng chất. Khi đó ta có thể tính ra được xác suất chiến thắng tương đối chính xác là:

\[p(y|x = 6) = \frac{p(y, x=6)}{p(x = 6)} = \frac{0.15}{1/6} = 0.9\]

Xác suất \(p(y |x=6)\) là xác suất hậu nghiệm cho biết khả năng chiến thắng trong điều kiện đã biết tung được mặt \(x=6\).

Trong các mô hình classification, xác suất dự báo đối với input là quan sát \(X\) sẽ là xác suất hậu nghiệm \(P(Y=1 |X)\) trong điều kiện đầu vào là \(X\).

1.10. Định lý Bayes mở rộng

Chúng ta có thể triển khai \(p(x) = \sum_{y} p(x, y)\) Khi đó công thức Bayes mở rộng sẽ có dạng:

\[p(y|x) = \frac{p(x, y)}{\sum_{y} p(x, y)}\]

Công thức Bayes mở rộng sẽ hữu ích trong trường hợp chúng ta chưa có ngay xác suất tiên nghiệm \(p(x)\) mà xác suất này chỉ được tính thông qua các trường hợp xảy ra đồng thời của cả \(x\)\(y\).

Chẳng hạn quay trở lại ví dụ về tung xúc sắc. Nếu ta biết các dữ kiện đó là: Số lần chiến thắng khi tung được xúc sắc 6 mặt là 15 và số lần hoà khi tung được xúc sắc 6 mặt là 3. Điểm 6 là cao nhất nên sẽ không có lần nào thua. Khi đó xác suất chiến thắng khi tung vào mặt 6 đó là:

\[p(y|x=6) = \frac{p(x=6, y)}{\sum_{y} p(x, y)} = \frac{p(x=6, y)}{p(x=6, y)+p(x=6, \bar{y})}=\frac{15}{18} = 0.8333\]

2. Phân phối xác suất

Phân phối xác suất là một khái niệm liên quan tới biến ngẫu nhiên. Trong thống kê có một số hình dạng phân phối nhất định của biến có thể kể đến như: Phân phối chuẩn, phân phối đều, phân phối Poisson, phân phỗi nhị thức, phân phối category, phân phối Dirichlet.

Những phân phối này đều dựa trên hai kiểu là biến ngẫu nhiên hoặc biến rời rạc.

2.1. Phân phối chuẩn (Gaussian distribution)

Phân phối chuẩn là phân phối nổi tiếng nhất trong thống kê. Nó được tìm ra bởi nhà toán học Gaussian (người được mệnh danh là hoàng tử của các nhà toán học), một nhà toán học rất nổi tiếng người Đức. Người ta từng ví rằng việc tìm ra qui luật phân phối chuẩn quan trọng giống như việc tìm ra 3 định luật của Newton trong vật lý cổ điển. Người Đức tự hào về phân phối chuẩn đến mức đã cho in hình quả chuông chuẩn trên tờ tiền của họ. Ngoài ra Gaussian còn rất nổi tiếng bởi khả năng tính toán của mình. Ngay từ lớp 2 ông đã làm thầy giáo của mình ngạc nhiên bởi việc tính nhanh tổng các số từ 1 tới 100 (công thức mà ngày nay ai cũng biết). Sau này ông còn tìm lại được một tiểu hành tinh khi các nhà thiên văn mất dấu nó khi nó đi lẫn vào ánh sáng của các hành tinh khác.

Hình ảnh của Gaussian và phân phối chuẩn trên tờ 10 mark của Đức.

Quay trở lại lý thuyết, phân phối này được mô tả bởi hai tham số: trung bình \(\mu\) và phương sai \(\sigma^2\). Giá trị của \(\mu\) là vị trí trung tâm của đáy phân phối có giá trị của hàm mật độ xác suất là cao nhất. Phân phối có độ rộng đáy càng lớn khi \(\sigma^2\) lớn, điều này chứng tỏ khoảng giá trị của biến biến động mạnh, và ngược lại. Hàm mật độ xác suất của phân phối này được định nghĩa là:

\[f(x) = \frac{1}{\sqrt{2\pi \sigma^2}}\exp \left( -\frac{(x - \mu)^2}{2\sigma^2}\right)\]

Trong trường hợp \(\mu = 0, \sigma^2 = 1\) thì phân phối chuẩn được gọi là phân phối chuẩn hoá. Đây là trường hợp thường xuyên được sử dụng nhất vì khi đó giá trị của phân phối đối xứng qua trục tung. Điều này tạo thuận lợi cho quá trình tính toán.

Phân phối chuẩn thường được sử dụng nhiều trong thống kê để ước lượng khoảng tin cậy, tính toán xác suất và kiểm định giả thuyết thống kê. Trong pytorch thì chúng ta khởi tạo một chuỗi phân phối chuẩn thông qua hàm torch.normal() và phân phối chuẩn hoá (standard normal distribution) thông qua hàm torch.randn(). Chữ n trong đuôi của randn đại diện cho normalization. Chúng ta cần phân biệt nó với torch.rand() của phân phối đều.

import torch
import matplotlib.pyplot as plt
import seaborn as sns

def _plot(x, title, figsize=(10, 6)):
  plt.figure(figsize=figsize)
  sns.kdeplot(x)
  plt.xlabel("Value of x")
  plt.title(title)

x = torch.randn(1000)
_plot(x, "Standard Normal Distribution")
../_images/appendix_probability_28_0.png
x = torch.normal(mean=1, std=2, size=(1000,))
_plot(x, "Normal Distribution")
../_images/appendix_probability_29_0.png

Phân phối chuẩn có mật độ tập trung cao ở khoảng quanh \(\mu\) và thấp về phía hai đuôi. Phân phối chuẩn được đặc trưng bởi hình dạng đuôi dày hoặc đuôi mỏng. Nếu đuôi dày thì mật độ quan sát tập trung về đuôi nhiều hơn và do đó chuỗi có hiện tượng phân tán mạnh.

2.2. Phân phối đều (uniform distribution)

Phân phối đều là một phân phối liên tục trên một đoạn \([a, b]\). Nó có giá trị pdf bằng nhau trên khắp mọi nơi thuộc \([a, b]\).

\[\begin{split}f(x)={\begin{cases}\frac{1}{b-a}&{\text{if }}x \in [a,b]~~\\ 0&{\text{ifelse }}\end{cases}}\end{split}\]

Trong pytorch chúng ta khởi tạo giá trị của phân phối đều bằng hàm torch.rand() bên trong hàm này cần khai báo kích thước véc tơ.

x = torch.rand(1000)
_plot(x, "Uniform Distribution")
../_images/appendix_probability_32_0.png

Ta thấy đỉnh của phân phối đều khá bằng phẳng cho thấy các giá trị được phân phối đều khắp mọi miền trong khoảng xác định của \(x\).

2.3. Phân phối Poisson

Giả sử bạn đang ngồi ở một bệnh viện. Xác suất để phía trước bạn có \(x\) người là bao nhiêu? Trung bình khi tới bệnh viện bạn phải chờ trong thời gian bao lâu. Phân phối Poisson sẽ có tính ứng dụng cao trong trường hợp này. Phân phối Poisson được đặc trưng bởi hai tham số là \(k\) đại diện cho số lượt sự kiện xảy ra và \(\lambda\) là kỳ vọng của phân phối.

\[f(k; \lambda) = P(X=k) = \frac{\lambda^{k}e^{-\lambda}}{k!}\]

Phân phối Poisson trên pytorch được khởi tạo thông qua hàm torch.poisson(). Bạn cần điền vào một

rates = torch.rand(1000)
x = torch.poisson(rates)
_plot(x, "Poisson Distribution")
../_images/appendix_probability_35_0.png

Bạn có thể hình dung hơn ý nghĩa của phân phối Poisson thông qua ví dụ sau đây: Thống kê cho thấy độ dài hàng chờ khám bệnh ở bệnh viện tuân theo phân phối Poisson với kỳ vọng trung bình là \(\lambda = 6.5\). Hỏi xác suất để có 2 người đứng trước bạn khi xếp hàng ở bệnh viện là bao nhiêu ?

\[f(k=2; \lambda) = P(X = 3) = \frac{\lambda^{k}e^{-\lambda}}{k!} = \frac{6.5^3e^{-6.5}}{3!}=0.069\]

Chúng ta cũng có thể tính xác suất cho độ dài hàng chờ tuỳ ý.

import numpy as np

def _Poisson(k , lab):
  arr = torch.arange(1, k+1)
  prod = 1
  for i in arr:
    prod*=i
  poss = lab**k*np.e**(-lab)/prod
  return poss

# Lập phân phối Poisson với lambda = 6.5 và độ dài hàng chờ từ 1 tới 20.
lab=6.5
poss = []
for k in torch.arange(1, 21):
  poss_i = _Poisson(k, lab)
  poss.append(poss_i)

for k, p in enumerate(poss):
    print("Probability of the waiting length equal {}: {}%".format(k+1, round(p.numpy()*100, 2)))

print("Sum of probabilities: {}".format(sum(poss).numpy()))
Probability of the waiting length equal 1: 0.98%
Probability of the waiting length equal 2: 3.18%
Probability of the waiting length equal 3: 6.88%
Probability of the waiting length equal 4: 11.18%
Probability of the waiting length equal 5: 14.54%
Probability of the waiting length equal 6: 15.75%
Probability of the waiting length equal 7: 14.62%
Probability of the waiting length equal 8: 11.88%
Probability of the waiting length equal 9: 8.58%
Probability of the waiting length equal 10: 5.58%
Probability of the waiting length equal 11: 3.3%
Probability of the waiting length equal 12: 1.79%
Probability of the waiting length equal 13: 0.89%
Probability of the waiting length equal 14: 0.41%
Probability of the waiting length equal 15: 0.18%
Probability of the waiting length equal 16: 0.07%
Probability of the waiting length equal 17: 0.03%
Probability of the waiting length equal 18: 0.01%
Probability of the waiting length equal 19: 0.0%
Probability of the waiting length equal 20: 0.0%
Sum of probabilities: 0.9984915852546692

Ta thấy tổng xác suất của các độ dài hàng chờ từ \(1\) tới \(20\) là gần bằng 100%. Khả năng độ dài hàng chờ cao nhất là 6 với xác suất là 15.75%. Đây cũng chính là giá trị sát với kỳ vọng của phân phối Poisson.

2.4. Phân phối Bernoulli

Phân phối Bernoulli tính xác xuất để 1 biến cố xảy ra trong 1 lần thử có hàm phân phối xác xuất:

\[\begin{split}f_{p}(k):=P(X=k)={\begin{cases}p&{\text{if }}k=1,\\[6pt]1-p&{\text{if }}k=0.\end{cases}}\end{split}\]

Giá trị của phân phối Bernoulli thường được rút ra từ quá trình thực hiện phép thử với một số lượng lớn để con số đạt được đáng tin cậy hơn. Ví dụ như nếu ta tung đồng xu đồng chất 5 lần thì có khả năng thu được 4 lần sấp 1 lần ngửa vẫn rất cao. Nhưng nếu tung 1000 lần thì tỷ lệ giữa mặt sấp và ngửa sẽ gần bằng 1:1. Đây chính là phân phối xác suất được rút ra từ qui luật số lớn.

2.5. Phân phối category

Phân phối categorical là trường hợp tổng quát khác của phẩn phối Bernoulli cho \(K\) trường hợp. Khi đó biểu diễn của phân phối là một véc tơ \(\lambda = [\lambda_1, \lambda_2, \dots, \lambda_K]\) với \(\lambda_i\) là các số không âm có tổng bằng 1. Khi đó xác xuất để 1 biến cố rơi vào nhóm \(k\) chính là:

\[f_{p}(k):=P (X=k)= \lambda_k\]

2.6. Phân phối nhị thức

Phân phối nhị thức cho ta biết xác xuất để 1 biến cố kiện xảy ra với tần suất là \(k\) khi thực hiện một số lượng phép thử \(n\), \(n \geq k\). Phân phối này là trường hợp tổng quát của phân phối Bernoulli cho tần suất nhiều hơn 1 biến cố xảy ra và có hàm phân phối xác xuất là:

\[f_{p}(k) := P(X=k)=\binom{k}{n}p^{k}(1-p)^{n-k}\]

\(\binom{k}{n}\) chính là xác suất để lấy ngẫu nhiên từ \(n\) mẫu ra \(k\) phần tử mà không xét đến tính thứ tự. Nó còn gọi là tổ hợp chập \(k\) của \(n\).

\[\binom{k}{n} = \frac{n!}{k!(n-k)!}\]
import numpy as np

# Công thức tính luỹ thừa
def _mul_accum(k):
  assert k>=0
  prod = 1
  for i in np.arange(1, k+1):
    prod*=i
  return prod

# Công thức tính tổ hợp
def _combine(k, n):
  assert (k>=0) & (n>=k)
  acc_k = _mul_accum(k)
  acc_n = _mul_accum(n)
  acc_nk = _mul_accum(n-k)
  c_k_n = acc_n/(acc_k*acc_nk)
  return c_k_n

# Tính phân phối nhị thức
def _binary_dist(n, k, p):
  assert (k>=0) & (n>=k)
  c_k_n = _combine(k, n)
  prob = c_k_n*p**k*(1-p)**(n-k)
  return prob

# k = 2, n = 10, p = 0.5
k = 2
n = 10
p = 0.5
print("Probability of binary distribution with k = 2, n = 10, p = 0.5:")
_binary_dist(n, k, p)
Probability of binary distribution with k = 2, n = 10, p = 0.5:
0.0439453125

2.7. Phân phối beta

Beta distribution là một phân phối liên tục xác định dựa trên biến ngẫu nhiên \(p \in [0, 1]\) nhằm mô tả sự biến động của tham số \(p\) trong phân phối Bernoulli. Phân phối beta được đặc tả bởi 2 tham số \(\alpha, \beta\) không âm theo phương trình hàm mật độ xác xuất:

\[f(p; \alpha, \beta) = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}p^{\alpha-1}(1-p)^{\beta-1}\]

Trong đó hàm \(\Gamma(.)\) được gọi là gamma function có mối liên hệ với giai thừa trong điều kiện tham số của nó là số nguyên.

\[\Gamma(n) = (n-1)!\]

Trong trường hợp tổng quát:

\[\Gamma(z) = \int_0^{\infty} t^{z-1}e^{-t} dt\]

2.8. Phân phối Dirichlet

Phân phối Dirichlet là trường hợp tổng quát của phân phối beta cho \(K\) trường hợp. Phân phối sẽ được xây dựng dựa trên một phân phối categorical có véc tơ phân phối dạng \(\lambda = [\lambda_1, \lambda_2, \dots, \lambda_K]\) sao cho tổng các phần tử bằng 1. Một véc tơ \(\alpha = [\alpha_1, \alpha_2, \dots, \alpha_K]\) sẽ là các tham số đặc trưng tương ứng với mỗi phần tử của véc tơ \(\lambda\). Khi đó hàm mật độ xác xuất của véc tơ phân phối \(\lambda\) sẽ có dạng:

\[f(\lambda; \alpha) = \frac{\Gamma(\sum_{i=1}^{K}\alpha_i)}{\prod_{i=1}^{K}\Gamma(\alpha_i)} \prod_{i=1}^{K}{\lambda_i^{\alpha_i-1}(1-\lambda_i)^{\alpha_i-1}} \]

Hoặc chúng ta có thể viết gọn dưới dạng:

\[f(\lambda; \alpha) = \text{Dir}_{\lambda}(\alpha)\]

Trên thực thế phân phối Dirichlet chính là phân phối liên hợp của phân phối categorical và phân phối benourlli.

2.9. Phân phối multinomial

Là một phân phối rất tổng quát vì nó có thể khái quát được nhiều phân phối bao gồm phân phối Bernoulli, phân phối categorical, phân phối nhị thức.

Đây là phân phối rời rạc thường xuyên bắt gặp trong thực tế. Bạn sẽ hiểu nó thông qua hai ví dụ như sau:

  • Tính xác suất lặp lại \(x\) lần một mặt của xúc xắc 6 mặt nếu gieo nó \(n\) lần.

  • Trong 1 rổ có 10 bóng đèn trong đó có 4 bóng xanh va 5 bóng đỏ. Tính xác suất để lấy ngẫu nhiên 5 bóng thì thu được 3 bóng xanh và 2 bóng đỏ nếu không phân biệt thứ tự các bóng cùng màu.

Bạn đọc đã hình dung ra phân phối multinomial rồi chứ? Tóm lại, đây là phân phối nhằm tính ra xác suất để có \(n_1+n_2+\dots+n_k\) phép thử thành công khi thực hiện \(n\) phép thử độc lập. Trong đó \(n_i\) là số lần chúng ta thử thành công nhóm \(i\).

Trong trường hợp số nhóm \(k=2\) và số phép thử \(n=1\) chính là phân phối Bernoulli. Khi \(k>2\)\(n=1\) ta thu được phân phối categorical. Khi \(k=2\)\(n>1\) là phân phối nhị thức.

Một lưu ý nhỏ: Trong lĩnh vực xử lý ngôn ngữ tự nhiên, phân phối multinomial đôi khi còn được gọi là categorical.

Gỉa định rằng chúng có ta một chiếc túi đựng \(n\) quả bóng của \(k\) màu sắc khác nhau. Ta sẽ thực hiện các phép thử lấy ngẫu nhiên các quả bóng từ túi sao cho sau mỗi lần thử các quả bóng được đặt trở lại túi. Kí hiệu biến \(X_i = x_i\) là số lượng bóng thực tế đã lấy được từ nhóm màu thứ \(i\). Xác xuất để lấy được 1 quả bóng màu \(i\)\(p_i\). Khi đó hàm phân phối xác xuất của Multi-nomial có dạng:

\[\begin{split}f_p(x) := P(X_1 = x_1, X_2 = x_2, \dots, X_k = X_k)={\begin{cases}\frac{n!}{x_1!x_2! \dots x_k!}p_1^{x_1}p_2^{x_2}\dots p_k^{x_k} &{\text{when }}\sum_{i=1}^{k}x_i=n,\\ ~~ 0&{\text{if other}}\end{cases}}\end{split}\]

3. Bài tập

1.- Tính phân phối xác suất biên của bảng phân phối xác suất sau:

import torch
A = torch.tensor([[1, 2, 3, 4],
                  [3, 4, 5, 6],
                  [2, 3, 5, 6],
                  [1, 3, 5, 7]])

Biết mỗi một dòng là phân phối xác suất của thời tiết gồm nắng, mưa, âm u, lạnh khi cố định địa điểm. Các cột là phân phối xác suất của địa điểm gồm rất gần, gần, xa, rất xa theo thời tiết.

2.- Viết code để tính giá trị xác suất của phân phối multinomial khi thực hiện \(n\) phép thử trong đó có \(k\) phép thử thành công. Biết đầu vào là véc tơ xác suất \(\mathbf{p}\).

3.- Xác suất để bạn tán đổ thành công một cô gái là 0.1. Hỏi bạn cần phải tiếp cận với ít nhất bao nhiêu cô gái để xác suất có bạn gái là trên 50%?

4.- Một học sinh ngồi đợt xe bus. Biết thời gian khi ngồi chờ xe bus là một biến ngẫu nhiên tuân theo phân phối Poisson và có gía trị trung bình là \(\lambda = 7\) phút. Hỏi xác suất học sinh đó cần phải ngồi chờ xe bus dưới 5 phút là bao nhiêu phần trăm?

5.- Có hai thùng bi mỗi thùng chứa 10 viên bi. Thùng bên trái có 3 viên bi xanh, thùng bên phải có 5 viên bi xanh. Biết rằng người đó đã thực hiện nhặt ngẫu nhiên một viên bi từ một trong hai thùng và đã nhặt được bi xanh. Tính xác suất người đó đã nhặt bi xanh từ thùng bên trái.

6.- Có hai cửa hàng bán vé số. Thống kê cho thấy tỷ lệ khách hàng mua vé số trúng giải nhất, nhì, ba, khuyến khích của cửa hàng A lần lượt là \([0.005, 0.01, 0.015, 0.02]\), của cửa hàng B lần lượt là \([0.006, 0.009, 0.017, 0.01]\). Biết rằng giá trị giải thưởng giải nhất, nhì, ba, khuyến khích lần lượt là [100 triệu, 50 triệu, 30 triệu, 20 triệu]. Để kì vọng về giải thưởng là lớn nhất thì nên mua vé số ở hàng nào ?

7.- 7. Một người đi bộ từ nhà ra bến xe hết khoảng 5 phút. Thống kê trên 100 chuyến xe bus sớm nhất tới bến xe trong khoảng từ 7:00 AM đến 8:00 AM có thời gian tuân theo phân phối chuẩn có trung bình là 7:30 AM và phương sai là 10 phút. Hỏi để bắt kịp chuyến xe gần nhất với xác suất là 95% thì người đó cần bắt đầu đi bộ từ nhà trước thời điểm nào?

8.- Một biến ngẫu nhiên \(\mathbf{x} = [1, 2, 3, 4, 5, 6, 7, 8, 9 ,10]\). Tính kì vọng, phương sai và phương sai mẫu của \(\mathbf{x}\).

9.- Phổ điểm trung bình của điểm tổng kết hai môn Math và Physic của các học sinh như sau:

Tính xác suất biên \(P(\text{Math})\)\(P(\text{Physic})\)

10.- Tính hiệp phương sai giữa điểm Math và điểm Physic.