Lý thuyết
1.5 giờ
Bài 8/15

Phân phối rời rạc

Binomial, Poisson và các phân phối rời rạc

🎰 Phân phối rời rạc (Discrete Distributions)

Mục tiêu bài học

Sau bài học này, bạn sẽ:

  • Hiểu Random Variable và Distribution
  • Nắm vững Binomial Distribution
  • Hiểu và áp dụng Poisson Distribution
  • Tính Expected Value và Variance

1. Random Variable

1.1 Định nghĩa

Random Variable (Biến ngẫu nhiên) là biến có giá trị được xác định bởi kết quả của thí nghiệm ngẫu nhiên.

LoạiVí dụ
DiscreteSố mặt ngửa khi tung xu, số khách hàng
ContinuousChiều cao, cân nặng, thời gian

1.2 Probability Distribution

Probability Distribution mô tả xác suất của mỗi giá trị có thể xảy ra.

Python
1import numpy as np
2import matplotlib.pyplot as plt
3
4# Ví dụ: Tung 2 xúc xắc, X = tổng 2 mặt
5outcomes = [(i, j) for i in range(1, 7) for j in range(1, 7)]
6sums = [i + j for i, j in outcomes]
7
8# Đếm tần suất
9from collections import Counter
10freq = Counter(sums)
11
12# Probability distribution
13probs = {k: v/36 for k, v in sorted(freq.items())}
14print("P(X=x):", probs)
15
16# Visualization
17plt.bar(probs.keys(), probs.values())
18plt.xlabel('Sum of 2 dice')
19plt.ylabel('Probability')
20plt.title('Probability Distribution')
21plt.show()

2. Expected Value và Variance

2.1 Expected Value (Kỳ vọng)

E(X)=μ=ixiP(X=xi)E(X) = \mu = \sum_{i} x_i \cdot P(X = x_i)

2.2 Variance

Var(X)=σ2=E[(Xμ)2]=E(X2)[E(X)]2Var(X) = \sigma^2 = E[(X - \mu)^2] = E(X^2) - [E(X)]^2

2.3 Tính chất

Tính chấtCông thức
E(aX + b)aE(X) + b
Var(aX + b)a²Var(X)
E(X + Y)E(X) + E(Y)
Var(X + Y)Var(X) + Var(Y) (nếu độc lập)

2.4 Ví dụ

Tung 1 xúc xắc, X = số chấm:

E(X)=116+216+...+616=216=3.5E(X) = 1 \cdot \frac{1}{6} + 2 \cdot \frac{1}{6} + ... + 6 \cdot \frac{1}{6} = \frac{21}{6} = 3.5

Python
1import numpy as np
2
3# Expected value của xúc xắc
4X = np.array([1, 2, 3, 4, 5, 6])
5P = np.array([1/6] * 6)
6
7E_X = np.sum(X * P)
8E_X2 = np.sum(X**2 * P)
9Var_X = E_X2 - E_X**2
10
11print(f"E(X) = {E_X:.4f}") # 3.5
12print(f"Var(X) = {Var_X:.4f}") # 2.9167
13print(f"Std(X) = {np.sqrt(Var_X):.4f}") # 1.7078

3. Bernoulli Distribution

3.1 Định nghĩa

Thí nghiệm chỉ có 2 kết quả: Success (1) hoặc Failure (0).

P(X=1)=pP(X = 1) = p P(X=0)=1p=qP(X = 0) = 1 - p = q

3.2 Tính chất

Thống kêCông thức
E(X)p
Var(X)p(1-p) = pq

3.3 Code Python

Python
1from scipy import stats
2
3# Bernoulli với p = 0.3
4p = 0.3
5bernoulli = stats.bernoulli(p)
6
7print(f"P(X=0) = {bernoulli.pmf(0):.4f}") # 0.7
8print(f"P(X=1) = {bernoulli.pmf(1):.4f}") # 0.3
9print(f"E(X) = {bernoulli.mean():.4f}") # 0.3
10print(f"Var(X) = {bernoulli.var():.4f}") # 0.21

4. Binomial Distribution

4.1 Định nghĩa

n lần thí nghiệm Bernoulli độc lập, mỗi lần có xác suất thành công p.

X = số lần thành công

P(X=k)=(nk)pk(1p)nkP(X = k) = \binom{n}{k} p^k (1-p)^{n-k}

4.2 Tính chất

Thống kêCông thức
E(X)np
Var(X)np(1-p)
Std(X)np(1p)\sqrt{np(1-p)}

4.3 Điều kiện áp dụng

  1. ✅ Số lần thử n cố định
  2. ✅ Mỗi lần thử độc lập
  3. ✅ Chỉ có 2 kết quả (Success/Failure)
  4. ✅ Xác suất thành công p không đổi

4.4 Ví dụ tính tay

Tung đồng xu 10 lần, P(đúng 6 mặt ngửa)?

n = 10, k = 6, p = 0.5

P(X=6)=(106)(0.5)6(0.5)4=210×(0.5)10=0.2051P(X = 6) = \binom{10}{6} (0.5)^6 (0.5)^4 = 210 \times (0.5)^{10} = 0.2051

4.5 Code Python

Python
1from scipy import stats
2import numpy as np
3import matplotlib.pyplot as plt
4
5# Binomial: n=10, p=0.5
6n, p = 10, 0.5
7binomial = stats.binom(n, p)
8
9# P(X = 6)
10print(f"P(X=6) = {binomial.pmf(6):.4f}")
11
12# P(X <= 3)
13print(f"P(X≤3) = {binomial.cdf(3):.4f}")
14
15# P(X >= 7)
16print(f"P(X≥7) = {1 - binomial.cdf(6):.4f}")
17
18# E(X) và Var(X)
19print(f"E(X) = {binomial.mean():.4f}") # 5
20print(f"Var(X) = {binomial.var():.4f}") # 2.5
21
22# Visualization
23k = np.arange(0, n+1)
24plt.figure(figsize=(10, 5))
25plt.bar(k, binomial.pmf(k), color='steelblue', edgecolor='black')
26plt.xlabel('Number of Successes (k)')
27plt.ylabel('P(X = k)')
28plt.title(f'Binomial Distribution (n={n}, p={p})')
29plt.xticks(k)
30plt.show()

4.6 Ứng dụng thực tế

Quality Control:

Lô hàng 1000 sản phẩm, tỷ lệ lỗi 2%. Lấy mẫu 50 sản phẩm.

Python
1n, p = 50, 0.02
2binom = stats.binom(n, p)
3
4# P(không có lỗi)
5print(f"P(X=0) = {binom.pmf(0):.4f}")
6
7# P(nhiều nhất 2 lỗi)
8print(f"P(X≤2) = {binom.cdf(2):.4f}")
9
10# P(ít nhất 1 lỗi)
11print(f"P(X≥1) = {1 - binom.pmf(0):.4f}")

5. Poisson Distribution

5.1 Định nghĩa

Đếm số sự kiện xảy ra trong một khoảng thời gian/không gian cố định.

P(X=k)=λkeλk!P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!}

Trong đó: λ (lambda) = số sự kiện trung bình

5.2 Tính chất

Thống kêCông thức
E(X)λ
Var(X)λ
Std(X)√λ
Đặc biệt

Với Poisson, Mean = Variance = λ

5.3 Điều kiện áp dụng

  1. ✅ Sự kiện xảy ra độc lập
  2. ✅ Tỷ lệ xảy ra không đổi
  3. ✅ Hai sự kiện không xảy ra đồng thời

5.4 Ví dụ

Call center nhận trung bình 4 cuộc gọi/phút. P(nhận đúng 6 cuộc gọi trong 1 phút)?

λ = 4, k = 6

P(X=6)=46e46!=4096×0.0183720=0.1042P(X = 6) = \frac{4^6 e^{-4}}{6!} = \frac{4096 \times 0.0183}{720} = 0.1042

5.5 Code Python

Python
1from scipy import stats
2import numpy as np
3import matplotlib.pyplot as plt
4
5# Poisson với λ = 4
6lam = 4
7poisson = stats.poisson(lam)
8
9# P(X = 6)
10print(f"P(X=6) = {poisson.pmf(6):.4f}")
11
12# P(X <= 3)
13print(f"P(X≤3) = {poisson.cdf(3):.4f}")
14
15# P(X >= 5)
16print(f"P(X≥5) = {1 - poisson.cdf(4):.4f}")
17
18# E(X) và Var(X)
19print(f"E(X) = {poisson.mean():.4f}") # 4
20print(f"Var(X) = {poisson.var():.4f}") # 4
21
22# Visualization
23k = np.arange(0, 15)
24plt.figure(figsize=(10, 5))
25plt.bar(k, poisson.pmf(k), color='coral', edgecolor='black')
26plt.xlabel('Number of Events (k)')
27plt.ylabel('P(X = k)')
28plt.title(f'Poisson Distribution (λ={lam})')
29plt.show()

5.6 Poisson với khoảng thời gian khác

Nếu λ = 4 cuộc gọi/phút, trong 2 phút: λ = 8

Python
1# 4 cuộc/phút, trong 2 phút
2lam_2min = 4 * 2 # 8
3poisson_2min = stats.poisson(lam_2min)
4
5# P(nhận 10 cuộc trong 2 phút)
6print(f"P(X=10 trong 2 phút) = {poisson_2min.pmf(10):.4f}")

6. So sánh Binomial và Poisson

6.1 Khi nào dùng?

BinomialPoisson
Số lần thử n cố địnhKhông giới hạn số sự kiện
Đếm số "thành công"Đếm số sự kiện trong khoảng
Tung xu, kiểm tra lỗiSố khách, số cuộc gọi

6.2 Poisson là xấp xỉ của Binomial

Khi n lớn và p nhỏ (np ≈ constant):

Binomial(n,p)Poisson(λ=np)Binomial(n, p) \approx Poisson(\lambda = np)

Python
1# So sánh Binomial và Poisson
2n, p = 100, 0.03 # n lớn, p nhỏ
3lam = n * p # 3
4
5binom = stats.binom(n, p)
6poisson = stats.poisson(lam)
7
8k = np.arange(0, 15)
9plt.figure(figsize=(10, 5))
10plt.bar(k - 0.2, binom.pmf(k), width=0.4, label='Binomial(100, 0.03)', alpha=0.7)
11plt.bar(k + 0.2, poisson.pmf(k), width=0.4, label='Poisson(3)', alpha=0.7)
12plt.xlabel('k')
13plt.ylabel('P(X = k)')
14plt.title('Binomial vs Poisson Approximation')
15plt.legend()
16plt.show()

7. Geometric Distribution

7.1 Định nghĩa

X = số lần thử cho đến khi có lần thành công đầu tiên.

P(X=k)=(1p)k1pP(X = k) = (1-p)^{k-1} p

7.2 Tính chất

Thống kêCông thức
E(X)1/p
Var(X)(1-p)/p²

7.3 Code Python

Python
1from scipy import stats
2
3# P(thành công) = 0.2
4p = 0.2
5geom = stats.geom(p)
6
7# P(thành công lần thử thứ 3)
8print(f"P(X=3) = {geom.pmf(3):.4f}")
9
10# P(cần ít nhất 5 lần)
11print(f"P(X≥5) = {1 - geom.cdf(4):.4f}")
12
13# E(X)
14print(f"E(X) = {geom.mean():.4f}") # 5

8. Bảng tóm tắt các phân phối

Phân phốiPMFE(X)Var(X)Ứng dụng
Bernoullip, 1-ppp(1-p)1 lần thử
Binomial(nk)pk(1p)nk\binom{n}{k}p^k(1-p)^{n-k}npnp(1-p)n lần thử
Poissonλkeλk!\frac{\lambda^k e^{-\lambda}}{k!}λλĐếm sự kiện
Geometric(1p)k1p(1-p)^{k-1}p1/p(1-p)/p²Chờ thành công

9. Bài tập thực hành

Bài tập 1: Binomial

Một công ty có tỷ lệ chuyển đổi 5%. Trong 100 khách truy cập:

  1. P(đúng 5 khách mua)?
  2. P(ít nhất 3 khách mua)?
  3. E(số khách mua)?

Bài tập 2: Poisson

Trung bình có 2 tai nạn/ngày trên một đoạn đường:

  1. P(không có tai nạn trong 1 ngày)?
  2. P(nhiều nhất 3 tai nạn)?
  3. P(ít nhất 1 tai nạn trong 2 ngày)?

Bài tập 3: So sánh

n = 1000, p = 0.001. So sánh kết quả từ Binomial và Poisson cho P(X = 2).


Tóm tắt

Key Takeaways
  1. Binomial: n lần thử độc lập, đếm số thành công
  2. Poisson: đếm sự kiện trong khoảng, Mean = Variance
  3. Poisson ≈ Binomial khi n lớn, p nhỏ
  4. E(X)Var(X) là 2 thống kê quan trọng nhất
  5. Chọn phân phối phù hợp với bài toán