Chương 6: Các phép toán đối với phân bố

Trở về Mục lục cuốn sách

Độ bất đối xứng

Độ bất đối xứng là một đặc trưng thống kê để đo mức bất đối xứng của một phân bố. Với một chuỗi giá trị cho trước, xi, độ bất đối xứng của mẫu là:

g1 = m3/m23/2

m2 = 1/n i(xi – μ)2

m3 = 1/n i(xi – μ)3

Bạn có thể nhận ra rằng m2 là độ lệch bình phương trung bình (còn được gọi là phương sai); m3 là độ lệch lập phương trung bình.

Độ bất đối xứng âm cho thấy một phân bố “lệch qua trái;” có nghĩa là nó trải dài sang phía trái nhiều hơn là sang phải. Độ bất đối xứng dương cho thấy một phân bố lệch qua phải.

Trên thực tế, việc tính toán độ bất đối xứng của một mẫu thường không phải là cách làm hay. Một điểm biệt lập, nếu có mặt, sẽ làm ảnh hưởng đến g1 không theo tỉ lệ thông thường.

Một cách khác để đánh giá độ bất đối xứng của một phân bố là nhìn vào tương quan giữa trị trung bình và số trung vị. Các giá trị cực hạn sẽ có ảnh hưởng nhiều đến trị trung bình hơn là đến số trung vị, vì vậy nếu một phân bố bị lệch trái thì trị trung bình sẽ nhỏ hơn số trung vị.

Hệ số bất đối xứng trung vị của Pearson là một cách đo khác đối với độ bất đối xứng, trong đó thể hiện rõ quan hệ giữa trị trung bình, μ, và số trung vị, μ1/2:

gp = 3(μ – μ1/2)/σ

Đặc trưng thống kê này vững, theo nghĩa nó ít bị ảnh hưởng bởi các điểm biệt lập.

Hãy viết một hàm có tên Skewness để tính g1 của một mẫu.

Hãy tính độ bất đối xứng của các phân bố thời gian mang thai và cân nặng trẻ sơ sinh. Những kêt quả này có thống nhất với hình dạng của các phân bố không?

Hãy viết một hàm có tên PearsonSkewness để tính gp cho những phân bố này. Hãy so sánh gp với g1.

“Hiệu ứng Hồ Wobegon” là một tên đặt hài hước1 cho thói tự huyễn, vốn là xu hướng của người đánh giá quá cao khả năng của bản thân so với người xung quanh. Chẳng hạn, một số cuộc khảo sát cho thấy trên 80% người được hỏi tin rằng họ lái xe tốt hơn các tài xế bình thường (xem http://wikipedia.org/wiki/Illusory_superiority).

Nếu ta diễn giải “bình thường” [chỉ khả năng lái xe] là trung vị, thì kết quả này về logic sẽ không thể tồn tại, nhưng nếu “bình thường” là trị trung bình, thì kết quả này vẫn có thể, mặc dù không dễ xảy ra.

Có mấy phấn trăm dân số có nhiều hơn số chân trung bình?

Tổ chức Internal Revenue Service (IRS) của Hoa Kỳ cung cấp số liệu về thuế thu nhập và các con số thống kê khác, tại http://irs.gov/taxstats. Nếu đã làm Bài tập irs thì bạn đã từng làm việc với số liệu này. Nếu chưa, bạn có thể làm theo những hướng dẫn trong bài đó để lấy được các phân bố về thu thập từ bộ số liệu.

Có bao nhiêu phần dân số đã báo cáo thu nhập chịu thuế dưới mức trung bình?

Hãy tính số trung vị, trị trung bình, độ bất đối xứng và thông số này theo cách tính của Pearson, đối với số liệu thu nhập. Vì số liệu đã được chia ngăn, bạn sẽ phải tính gần đúng.

Hệ số Gini là một độ đo mức bất bình đẳng về thu nhập. Bạn có thể tìm hiểu ở http://wikipedia.org/wiki/Gini_coefficient rồi viết một hàm có tên Gini để tính hệ số này cho phân bố thu nhập.

Gợi ý: dùng PMF để tính độ khác biệt trung bình tương đối (xem http://wikipedia.org/wiki/Mean_difference).

Bạn có thể tải về một lời giải cho bài tập này từ http://thinkstats.com/gini.py.

Biến ngẫu nhiên

Biến ngẫu nhiên biểu diễn một quá trình phát sinh ra một số ngẫu nhiên. Biến ngẫu nhiên thường được kí hiệu bằng chữ in, như X. Khi bạn thấy một biến như vậy, bạn có thể hình dung là “một giá trị được lựa chọn từ một phân bố.”

Chẳng hạn, định nghĩa chính thức của hàm phân bố lũy tích là:

CDF X(X) = Pr(X  ≤  X)

Tôi đã tránh cách viết này suốt đến giờ vì nó rất xấu, nhưng cách hiểu của nó là thế này: CDF của một biến ngẫu nhiên X, được tính tại một giá trị X cụ thể, thì được định nghĩa bằng xác suất mà một giá trị được phát sinh bởi quá trình ngẫu nhiên X nhỏ hơn hoặc bằng X.

Là một nhà khoa học máy tính, tôi đã thấy rất có ích khi hình dung một biến ngẫu nhiên như một đối tượng có một phương thức, tạm gọi là generate; phương thức này dùng một quá trình ngẫu nhiên để phát sinh ra giá trị.

Chẳng hạn, sau đây là một định nghĩa lớp biểu thị các biến ngẫu nhiên:

class RandomVariable(object):
    """Parent class for all random variables.""" 

Và sau đây là một biến ngẫu nhiên với một phân bố lũy thừa:

class Exponential(RandomVariable): 
    def __init__(self, lam): 
        self.lam = lam 

    def generate(self): 
        return random.expovariate(self.lam)

Phương thức khởi tạo đã nhận vào tham biến, λ, rồi lưu nó dưới dạng thuộc tính. Phương thức generate trả lại một giá trị ngẫu nhiên từ phân bố lũy thừa với tham số đó.

Mỗi lần gọi generate, bạn sẽ nhận được một giá trị khác trước. Giá trị mà bạn nhận được gọi là giá trị ngẫu nhiên, điều đó giải thích tại sao nhiều tên hàm trong module random lại có chữ “variate” [biến].

Nếu chỉ cần phát sinh các biến ngẫu nhiên theo phân bố lũy thừa, tôi sẽ không bận tâm định nghĩa một lớp khác, mà dùng ngay random.expovariate. Nhưng với các phân bố khác, có thể sẽ cần dùng các đối tượng RandomVariable. Chẳng hạn, phân bố Erlang là một phân bố liên tục với các tham số là λk (xem http://wikipedia.org/wiki/Erlang_distribution).

Một cách phát sinh các giá trị từ phân bố Erlang là thêm vào k giá trị từ mộ phân bố lũy thừa có cùng λ. Sau đây là một cách viết:

class Erlang(RandomVariable): 
    def __init__(self, lam, k): 
        self.lam = lam 
        self.k = k 
        self.expo = Exponential(lam) 

    def generate(self):
        total = 0
        for i in range(self.k):
            total += self.expo.generate()
        return total 

Phương thức khởi tạo đã lập nên một đối tượng Exponential với tham số đã cho; sau đó phương thức generate sử dụng nó. Nói chung, phương thức khởi tạo có thể nhận một bộ tham số bất kì và hàm generate có thể thực hiện bất kì quá trình ngẫu nhiên nào.

Hãy viết định nghĩa một lớp để biểu thị một biến ngẫu nhiên theo phân bố Gumbel (xem http://wikipedia.org/wiki/Gumbel_distribution).

Hàm mật độ xác suất (PDF)

Đạo hàm của một CDF được gọi là hàm mật độ xác suất, hay PDF (probability density function). Chẳng hạn, PDF của một phân bố lũy thừa là

PDFLT(x) = λex

PDF của phân bố chuẩn là

Việc lượng giá PDF cho một giá trị cụ thể của X thường không mấy hữu ích. Kết quả không phải là một xác suất mà là một mật độ xác suất.

Trong vật lý, mật độ là khối lượng có trong một đơn vị thể tích. Để có được khối lượng, bạn bải đem nhân mật độ với thể tích, hay nếu mật độ không phải hằng số, thì cần lấy tích phân trên thể tích.

Tương tự, mật độ xác suất là số đo xác suất trên mỗi đơn vị của X. Để có được khối xác suất,2 bạn phải lấy tích phân theo X. Chẳng hạn, nếu X là một biến ngẫu nhiên có PDF là PDF X, ta có thể tính được xác suất để một giá trị từ X rơi vào khoảng giữa 0,5 và 0,5:

P(-0,5 ≤ X<0,5) = ∫-0,50,5PDFX(x)dx

Hoặc, vì CDF chính là tích phân của PDF, ta có thể viết

P(-0,5 ≤ X<0,5) = CDFX(0,5) – CDFX(-0,5)

Với một số dạng phân bố, ta có thể tính trực tiếp CDF và do vậy sẽ dùng cách thứ hai. Nếu không, ta thường phải lấy tích phân PDF bằng cách số trị.

Tính xác suất để một giá trị chọn sẵn từ phân bố lũy thừa với tham số λ rơi vào giữa 1 và 20? Hãy biểu diễn đáp số dưới dạng một hàm số phụ thuộc λ. Hãy ghi lại kết quả này; ta sẽ còn dùng nó ở Mục số liệu kiểm duyệt.

Trong BRFSS (xem Mục lognormal), phân bố chiều cao chỉ gần như dạng chuẩn với các tham số μ = 178 cm và σ2 = 59,4 cm đối với nam giới; μ = 163 cm và σ2 = 52,8 cm đối với nữ giới.

Để gia nhập được Nhóm Blue Man, bạn phải là nam giới có chiều cao giữa 5’10’’ và 6’1’’ (xem http://bluemancasting.com). Có bao nhiêu phần trăm nam giới Mỹ có chiều cao trong khoảng này? Gợi ý: xem Mục [phân bố chuẩn].

Tích chập

Giả sử ta có hai biến ngẫu nhiên, XY, với các phân bố CDF X và CDF Y. Khi đó phân bố của tổng Z = X + Y sẽ như thế nào?

Một cách làm là viết một đối tượng RandomVariable để phát sinh ra tổng:

class Sum(RandomVariable): 
    def __init__(X, Y): 
        self.X = X 
        self.Y = Y 

    def generate(): 
        return X.generate() + Y.generate() 

Cho trước các RandomVariable bất kì, XY, ta có thể tạo ra đối tượng Sum để biểu diễn cho Z. Sau đó ta có thể dùng một mẫu từ Z để tính xấp xỉ CDF Z.

Cách làm này đơn giản và linh hoạt, nhưng không hiệu quả lắm; ta phải phát sinh một mẫu lớn để có thể ước tính chính xác được CDF Z, và ngay cả khi đó cũng không nhận được giá trị đúng.

Nếu CDF X và CDF Y được biểu diễn dưới dạng các hàm, thì đôi khi ta có thể tìm được đúng CDF Z. Sau đây là cách làm:

  1. Để bắt đầu, hãy giả sử rằng giá trị cụ thể của XX. Khi đó CDF Z(Z) làP(Z ≤ z|X=x) = P(Y ≤ zx)

    Ta hãy đọc lại biểu thức này. Vế trái là “xác suất để tổng nhỏ hơn Z, khi cho trước số hạng đầu là X.” À, nếu số hạng đầu là X và tổng phải nhỏ hơn Z, thì số hạng thứ hai phải nhỏ hơn Z X.

  2. Muốn có được xác suất để Y nhỏ hơn Z X, ta đi tính CDF Y.P(Y ≤ zx) = CDFY(zx)

    Điều này được rút ra từ định nghĩa của CDF.

  3. Vẫn ổn chứ? Ta hãy tiếp tục nhé. Vì thực ra chúng ta vẫn chưa biết giá trị của X, nên ta cần phải xét tất cả các giá trị có thể nhận và lấy tích phân trên khắp khoảng giá trị đó:P(Z ≤ z) = ∫-∞P(Z ≤ z|X=x)PDFX(x)dx

    Biểu thức lấy tích phân là “xác suất để Z nhỏ hơn hoặc bằng Z, khi đã cho X = X, nhân với xác suất để X = X.”

    Thay thế kết quả từ các bước tính trước ta có

    P(Z ≤ z) = ∫-∞CDFY(zx)PDFX(x)dx

    Vế trái là định nghĩa của CDF Z, vì vậy ta đi đến kết luận:

    CDFZ(z) = ∫-∞CDFY(zx)PDFX(x)dx

  4. Để có được PDF Z, hãy lấy đạo hàm của cả hai vế theo Z. Kết quả làPDFZ(z) = ∫-∞PDFY(zx)PDFX(x)dx

    Nếu bạn đã học môn tín hiệu và hệ thống, bạn có thể nhận ra tích phân này. Đó là tích chập của PDF Y và PDF X, được biểu thị bởi toán tử *.

    PDF Z = PDF Y * PDF X

    Như vậy phân bố của tổng là tích chập của các phân bố. Hãy xem http://wiktionary.org/wiki/booyah!

Lấy ví dụ, giả sử XY là các biến ngẫu nhiên tuân theo phân bố lũy thừa với tham số λ. Phân bố của Z = X + Y là:

PDFZ(z) = ∫-∞PDFX(x)PDFY(zx)dx = ∫-∞λexλeλ(zx)

Bây giờ ta phải nhớ rằng PDFLT bằng 0 với mọi giá trị âm, nhưng ta có thể xử lý điều này bằng cách điều chỉnh các giới hạn của tích phân:

PDFZ(z) = ∫0zλexλe-λ(zx)dx

Bây giờ ta có thể kết hợp các số hạng và chuyển hằng số ra ngoài dấu tích phân:

PDFZ(z) = λ2ez0zdx = λ2zez

Hóa ra đây là PDF của một phân bố Erlang với tham số k = 2 (xem http://wikipedia.org/wiki/Erlang_distribution). Như vậy tích chập của hai phân bố lũy thừa (với cùng giá trị tham số) là một phân bố Erlang.

Nếu X có phân bố lũy thừa với tham số λ, còn Y có phân bố Erlang với các tham số kλ, thì phân bố của tổng Z = X + Y sẽ thế nào?

Giả sử tôi lấy hai giá trị từ cùng một phân bố thì phân bố của giá trị lớn hơn là gì? Hãy biêu diễn đáp số của bạn dưới dạng PDF hoặc CDF của phân bố tìm được.

Khi số giá trị tăng lên thì phân bố của giá trị lớn nhất sẽ hội tụ về một trong số các phân bố cực trị; xem http://wikipedia.org/wiki/Gumbel_distribution.

Nếu có sẵn các đối tượng Pmf, bạn có thể tính được phân bố của tổng bằng cách liệt kê hết các cặp giá trị:

for x in pmf_x.Values(): 
    for y in pmf_y.Values(): 
        z = x + y

Hãy viết một hàm nhận vào PMF X và PMF Y rồi trả về một Pmf mới biểu thị cho phân bố của tổng Z = X + Y.

Hãy viết một hàm tương tự để tính PMF của Z = max(X, Y).

Tại sao cần có phân bố chuẩn?

Như tôi đã nói trước đây, phân bố chuẩn rất tiện cho việc phân tích nhưng chưa giải thích tại sao. Một lý do là phân bố này có dạng khép kín dưới phép biến đổi tuyến tính và tích chập. Để nói rõ hơn, trước hết tôi sẽ giới thiệu một số kí hiệu.

Nếu phân bố của một biến ngẫu nhiên, X, có dạng chuẩn với các tham số μσ, thì bạn có thể viết

X ~ N (μ, σ)

trong đó ký hiệu ~ nghĩa là “tuân theo phân bố” và chữ cái N là viết tắt cho “normal” (chuẩn).

Một phép biến đổi tuyến tính của X có dạng kiểu như X’ = a X + b, trong đó ab là các số thực.

Một họ phân bố được gọi là khép kín trong phép biến đổi nếu như X’ có cùng họ với X. Phân bố chuẩn thỏa mãn tính chất này; nếu X ~ N (μ, σ2), thì

X~ N (a μ + b, a2σ)

Các phân bố chuẩn cũng khép kín trong phép tích chập. Nếu Z = X + YX ~ N (μX, σX2) và Y ~ N (μY, σY2) thì

Z ~ NX + μY , σX2 + σY2)

Các dạng phân bố khác mà ta đã xét đến không có các tính chất như vậy.

Nếu X ~ N (μX, σX2) và Y ~ N (μY, σY2), thì phân bố của Z = aX + bY sẽ là gì?

Ta hãy xem điều gì sẽ xảy ra khi thêm các giá trị vào từ những phân bố khác. Chọn một cặp phân bố (bất kì hai phân bố nào trong các dạng lũy thừa, chuẩn, loga chuẩn, và Pareto) rồi chọn các tham số để cho chúng có trị trung bình như nhau và phương sai như nhau.

Hãy phát sinh các số ngẫu nhiên từ các phân bố này rồi tính phân bố của tổng của chúng. Hãy dùng các phép thử ở Chương continuous để xem rằng liệu tổng này có thể được mô phỏng bởi một phân bố liên tục hay không.

Định lý giới hạn trung tâm

Cho đến giờ ta đã thấy được:

  • Nếu ta cộng các giá trị được lấy từ các dạng phân bố khác nhau, thì phân bố của giá trị tổng có dạng chuẩn.
  • Nếu ta cộng các giá trị được lấy từ các dạng phân bố khác thì tổng thu được nói chung sẽ không giống như dạng phân bố mà ta đã từng thấy.

Nhưng hóa ra là nếu ta cộng lại một rất nhiều các giá trì từ bất kì dạng phân phối nào, thì tổng thu được cũng sẽ hội tụ về phân bố chuẩn.

Cụ thể hơn, nếu phân bố của các giá trị số hạng có trung bình và độ lệch chuẩn lần lượt là μσ, thì phân bố của tổng sẽ xấp xỉ là N(n μ, n σ2).

Đây được gọi là Định lý giới hạn trung tâm. Nó là một trong những công cụ có ích nhất cho việc phân tích thống kê, nhưng cũng cần lưu ý một số điểm sau:

  • Các giá trị rút ra phải độc lập.
  • Các giá trị này phải được rút từ cùng một dạng thống kê (Cho dù điều này có thể được châm trước).
  • Các giá trị phải được rút từ một phân bố có trị trung bì và phương sai hữu hạn, vì thế phần lớn các phân bố Pareto đều bị loại trừ.
  • Số các giá trị cần đến thiết để đạt được sự hội tụ thì phụ thuộc vào độ bất đối xứng của phân bố. Tổng của các phần tử từ phân bố lũy thừa sẽ hội tụ ngay cả với mẫu kích thước nhỏ. Còn tổng từ phân bố loga chuẩn thì không.

Định lý giới hạn trung tâm giải thích rằng, ít nhất có phần đúng là, phân bố chuẩn chiếm chỗ quan trọng trong giới tự nhiên. Phần lớn các đặc điểm của động vật và những sinh vật khác đều bị ảnh hưởng bởi nhiều yếu tố gien và môi trường mà hiệu ứng của chúng có tính cộng. Các đặc điểm mà ta đo là tổng của rất nhiều những hiệu ứng nhỏ, vì vậy sự phân bố của chúng có xu thế giống như dạng chuẩn.

Nếu tôi rút ra một mẫu, x1 .. xn, độc lập từ một phân bố với trị trung bình μ và phương sai σ2 đều hữu hạn, thì phân bố của trị trung bình của mẫu,

= (1/n)∑xi

sẽ như thế nào? Khi n tăng lên, điều gì sẽ xảy ra với phương sai của trị trung bình mẫu? Gợi ý: hãy xem lại Mục [tại sao cần phân bố chuẩn].

Hãy chọn một phân bố (trong số các phân bố lũy thừa, loga chuẩn, hoặc Pareto) và chọn ra các giá trị cho (các) tham số. Hãy phát sinh các mẫu với kích cỡ 2, 4, 8, v.v., rồi xác định phân bố của tổng các mẫu. Hãy dùng một đồ thị xác suất chuẩn để xem rằng liệu có phải phân bố xấp xỉ với dạng chuẩn hay không. Bạn phải thêm vào bao nhiêu số hạng để thấy được sự hội tụ?

Thay vì phân bố của tổng, hãy xác định các dạng phân bố của tích; điều gì sẽ xảy ra khi tăng số thừa số lên? Gợi ý: hãy xét đến phân bố các loga của tích.

Sơ đồ phân bố

Một sơ đồ liên hệ giữa các dạng biểu diễn của hàm phân bố.

Đến lúc này ta đã gặp các PMF, CDF và PDF; ta hãy cùng dành một phút để ôn lại. Hình dist_framework cho thấy cách liên hệ giữa các hàm này.

Chúng ta bắt đầu từ PMF, vốn biểu diễn cho tần suất trong một tập hợp các giá trị rời rạc. Để thu được CDF từ PMF, ta đi tính tổng lũy tích. Lẽ ra để cho thống nhất, một CDF rời rạc phải được gọi là hàm khối lũy tích (CMF), nhưng theo những gì tôi được biết đến thì không ai dùng thuật ngữ như vậy.

Để tính được PMF từ CDF, bạn phải tính các hiệu số giữa các xác suất lũy tích.

Một các tương tự, PDF là đạo hàm của CDF liên tục; hoặc theo cách nói tương đương, CDF là tích phân của PDF. Nhưng cần nhớ rằng một PDF cho ánh xạ từ giá trị đến mật độ xác suất; để thu được xác suất, bạn phải tính tính phân.

Để đi từ phân bố rời rạc đến liên tục, bạn có thể thực hiện một số phương pháp làm trơn. Một cách làm trơn là giả sử rằng số liệu thu được từ một phân bố liên tục có công thức giải tích (như phân bố lũy thừa hoặc chuẩn) và ước tính các tham số của phân bố đó. Và đây chính là điều mà Chương ước lượng tham số đề cập đến.

Nếu bạn chia một PDF vào một dãy các ngăn, bạn có thể phát sinh ra một PMF ít nhất xấp xỉ được PDF đó. Chúng ta có thể dùng kĩ thuật này trong Chương estimation để ước tính Bayes.

Hãy viết một hàm có tên MakePmfFromCdf nhận vào một đối tượng Cdf, rồi trả về đối tượng Pmf tương ứng.

Bạn có thể tìm thấy một lời giải bài tập này trong thinkstats.com/Pmf.py.

Thuật ngữ

độ bất đối xứng:
Đặc tính của một phân bố; theo trực giác, đó là độ đo mất cân đối của hình dạng phân bố.
vững:
Một đặc trưng thống kê được gọi là vững khi nó ít chịu ảnh hưởng từ sự có mặt của điểm biệt lập.
thói tự huyễn:
Xu thế trong đó con người tưởng tượng rằng mình tốt hơn người bình thường xung quanh.
biến ngẫu nhiên:
Đối tượng biểu thị cho một quá trình ngẫu nhiên.
trị ngẫu nhiên:
Giá trị được phát sinh từ một quá trình ngẫu nhiên.
PDF:
(probability density function) Hàm mật độ xác suất, đạo hàm của một CDF liên tục.
tích chập:
Phép toán để tính ra phân bố của tổng các giá trị từ hai dạng phân bố khác.
Định lý giới hạn trung tâm:
“Định luật tối thượng của sự lười suy nghĩ,” theo Sir Francis Galton, một nhà thống kê học thời trước.

  1. Nếu bạn vẫn chưa hiểu, hãy xem http://wikipedia.org/wiki/Lake_Wobegon.
  2. Để mở rộng sự tương tự này, cần lưu ý rằng trị trung bình của một phân bố là trọng tâm của nó, còn phương sai là mô-men quán tính.
Advertisements

%(count) bình luận

Filed under Think Stats

One response to “Chương 6: Các phép toán đối với phân bố

  1. Pingback: Think Stats: Xác suất thống kê dành cho người lập trình | Blog của Chiến

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s