Chương 8: Ước lượng

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

Trò chơi ước lượng

Ta hãy cùng tham gia một trò chơi. Tôi sẽ nghĩ trong đầu một dạng phân bố, còn bạn phải đoán xem đó là phân bố gì. Chúng ta sẽ bắt đầu một cách dễ dàng rồi sau đó sẽ khó dần lên.

Tôi đang nghĩ đến một dạng phân bố. Sau đây là hai lời gợi ý; đó là một phân bố chuẩn, và sau đây là một mẫu ngẫu nhiên được rút từ nó:

{0,441 ; 1,774 ; 0,101 ; 1,138 ; 2,975 ; 2,138}

Bạn thử đoán xem tham số trị trung bình, μ, của phân bố này bằng bao nhiêu?

Một cách lựa chọn là dùng trị trung bình mẫu để ước tính μ. Cho đến giờ ta dùng kí hiệu μ chung cho cả trị trung bình mẫu và tham số trung bình, nhưng bây giờ để phân biệt chúng, tôi sẽ dùng  cho trị trung bình mẫu. Ở ví dụ này,  bằng 0,155; vì vậy sẽ có lý khi dự đoán μ = 0,155.

Quá trình này được gọi là ước lượng, và đặc trưng thống kê mà ta xét đến (trị trung bình mẫu) được gọi là tham số ước lượng.

Việc dùng trị trung bình mẫu để ước lượng μ là hiển nhiên đến nỗi thật khó tưởng tượng nổi một cách làm khác. Nhưng giả dụ rằng chúng ta thay đổi trò chơi bằng cách đưa vào các điểm biệt lập.

Tôi đang nghĩ về một phân bố. Đó là một phân bố chuẩn, và sau đây là một mẫu thu thập được bởi người điều tra viên không đáng tin cậy, đôi khi lại mắc lỗi đặt nhầm dấu phẩy của phần thập phân.

{0.441, 1.774, 0.101, 1.138, 2.975, 213.8}

Bây giờ ước đoán của bạn về μ bằng bao nhiêu? Nếu bạn dùng trị trung bình mẫu thì ước đoán sẽ bằng 35,12. Liệu đó có phải là lựa chọn tốt nhất không? Còn có những cách nào khác?

Có một cách khác là nhận biết và loại bỏ các điểm biệt lập, rồi tính trị trung bình mẫu của những số còn lại. Một cách nữa là dùng số trung vị để ước lượng.

Ước lượng nào là tốt nhất còn phụ thuộc vào từng trường hợp cụ thể (chẳng hạn, liệu có điểm biệt lập hay không) và vào mục tiêu của ước lượng. Bạn nhằm mục đích giảm thiểu sai số, hay nâng cao tối đa khả năng tìm được đáp số đúng?

Nếu như không có điểm biệt lập nào thì trị trung bình mẫu sẽ làm giảm thiểu sai số quân phương (mean squared error, MSE). Nếu bạn chơi trò đoán số này nhiều lần, và mỗi lần tính sai số   μ, thì trị trung bình mẫu sẽ làm giảm thiểu đại lượng

MSE = (1/m) ∑( – μ)2

trong đó m là số lần đoán (khác với n, là kích thước mẫu dùng để tính ).

Giảm thiểu MSE là một điều tốt, nhưng nó không phải luôn là chiến lược tối ưu. Chẳng hạn, giả sử ta cần ước tính dạng phân bố tốc độ gió tại một công trường. Nếu ta đoán gió quá mạnh thì có thể sẽ phải xây dựng với chi phí quá đắt. Nhưng nếu ta đoán gió quá yếu thì công trình có thể sẽ sụp đổ. Bởi vì chi phí xây dựng phụ thuộc vào sai số theo một dạng bất đối xứng nên việc giảm thiểu MSE không phải là cách tốt nhất.

Lấy một ví dụ khác, chẳng hạn khi tôi gieo xúc sắc 3 lần và đề nghị bạn ước tính tổng số chấm. Nếu đoán đúng, bạn sẽ nhận một phần thưởng; còn nếu không thì sẽ chẳng được gì. Trong trường hợp này giá trị làm giảm thiểu MSE là 10,5; nhưng nó sẽ là một dự đoán hoàn toàn sai. Trong trò chơi này, bạn muốn có một ước đoán có khả năng đúng nhiều nhất, tức là một ước đoán khả năng cao nhất (Maximum Likelihood Estimator, MLE). Nếu bạn chọn 10 hoặc 11, bạn sẽ có khả năng đoán trúng bằng 1 phần 8, và đó là khả năng tốt nhất bạn có thể đạt được.

Hãy viết một hàm để rút ngẫu nhiên 6 giá trị từ một phân bố chuẩn với μ = 0 và σ = 1. Hãy dùng trị trung bình mẫu để ước tính μ rồi tính sai số   μ. Gọi hàm này 1000 lần và tính MSE.

Bây giờ hãy sửa lại chương trình để lấy số trung vị làm giá trị ước đoán. Tính lại MSE rồi so sánh nó với MSE trong trường hợp dùng .

Ước lượng phương sai

Tôi đang nghĩ về một phân bố. Đó là phân bố chuẩn, và sau đây là một mẫu (quen thuộc):

{0,441 ; 1,774 ; 0,101 ; 1,138 ; 2,975 ; 2,138}

Theo bạn thì phương sai, σ2, của phân bố này bằng bao nhiêu? Một lần nữa, lựa chọn hiển nhiên nhất là lấy phương sai mẫu làm giá trị ước lượng. Tôi sẽ kí hiệu phương sai mẫu là S2, để phân biệt với tham số chưa biết là σ2.

S^2 = \frac{1}{n}\sum (x_i - \bar{x})^2

Với những mẫu lớn, S2 là một ước lượng thích hợp, nhưng với mẫu bé thì giá trị nó thiên nhỏ. Vì đặc điểm không may này mà nó được gọi là một ước lượng chệch.

Một ước lượng được gọi là không chệch nếu như sai số tổng cộng (hoặc trung bình) được trông đợi sau nhiều lượt chơi bằng 0. Thật may là còn có một đại lượng thống kê đơn giản khác làm ước lượng không chệch cho σ2:

S_{n-1}^2 = \frac{1}{n-1}\sum (x_i - \bar{x})^2

Vấn đề nan giải nhất đối với ước lượng này là cách dùng tên gọi và kí hiệu của nó không thống nhất. Cái tên “phương sai mẫu” có thể được dùng cho cả S2Sn-12, còn kí hiệu S2 được dùng để chỉ cả hai đại lượng này.

Để hiểu được tại sao S2 là ước lượng chệch, và chứng minh rằng Sn-12 không chệch, bạn có thể tham khảo http://wikipedia.org/wiki/Bias_of_an_estimator.

Hãy viết một hàm để rút ngẫu nhiên 6 giá trị từ một phân bố chuẩn với μ = 0 và σ = 1. Hãy dùng phương sai mẫu để ước tính σ2 rồi tính sai số S2  σ2. Gọi hàm này 1000 lần và tính sai số trung bình (không bình phương).

Bây giờ hãy sửa lại chương trình để dùng ước lượng không chệch Sn-12. Tính lại sai số trung bình rồi xem xét liệu nó có hội tụ về 0 khi bạn tăng số lượt chơi hay không.

Hiểu được các sai số

Trước khi tiếp tục, ta hay gỡ một chỗ rắc rỗi dễ gây hiểu nhầm. Các thuộc tính như MSE và độ lệch là những giá trị được trông đợi lâu dựa trên nhiều lượt chơi trò ước đoán.

Trong bạn đang chơi, bạn không biết sai số bằng bao nhiêu. Nghĩa là, nếu tôi giao cho bạn một mẫu và yêu cầu ước tính tham số, bạn có thể tính giá trị của một ước lượng, nhưng không thể tính giá trị sai số. Nếu tính được sai số, bạn đã chẳng phải ước lượng làm gì nữa!

Nguyên do mà ta bàn về việc ước tính sai số là để miêu tả động thái của các ước lượng khác nhau về lâu dài. Trong chương này ta sẽ chạy các thử nghiệm mô phỏng để kiểm tra những động thái như vậy; các thí nghiệm này là “nhân tạo” vì ta đã biết giá trị thật của các tham số, vì vậy mà tính được ra sai số. Nhưng khi bạn làm việc với số liệu trên thực tế thì bạn không biết giá trị tham số nên không thể tính được sai số.

Bây giờ ta hãy tiếp tục trò chơi.

Phân bố lũy thừa

Tôi đang nghĩ về một dạng phân bố. Đó là phân bố lũy thừa, và sau đây là một mẫu:

{5,384 ; 4,493 ; 19,198 ; 2,790 ; 6,122 ; 12,844}

Bạn thử đoán xem tham số, λ, của phân bố này bằng bao nhiêu?

Nói chung, trị trung bình của một phân bố lũy thừa bằng 1/λ, vì vậy tính ngược lại, bạn có thể lấy

= 1/

Thông thường ta dùng dấu mũ để kí hiệu cho các ước lượng; ở đây là ước lượng của λ. Và không chỉ với một ước lượng bất kì, nó cũng là ước lượng khả năng cao nhất1. Vì vậy nếu bạn muốn có cơ hội nhiều nhất để đoán trúng λ, thì chính là cách làm.

Nhưng ta biết rằng  không còn vững nếu xuất hiện các điểm biệt lập, vì vậy ta đoán rằng cũng gặp vấn đề tương tự.

Có thể ta sẽ tìm được một cách tính khác dựa trên số trung vị mẫu. Nhớ lại rằng số trung vị của một phân bố lũy thừa bằng log(2) / λ, vì vậy lại tính ngược, ta có định nghĩa cho ước lượng sau

\hat{\lambda}_{1/2} = \log(2) \mu_{1/2}

trong đó μ1/2 là số trung vị mẫu.

Hãy chạy một thử nghiệm để xem giữa \hat{\lambda}_{1/2} , cái nào cho MSE thấp hơn. Kiểm tra xem cái nào là ước lượng chệch, nếu có.

Khoảng tin cậy

Đến giờ ta mới thấy những ước lượng cho ra giá trị đơn lẻ; chúng được gọi là ước lượng điểm. Với nhiều bài toán, ta có thể cần một khoảng giá trị, có giới hạn trên và dưới, cho một tham số chưa biết.

Hoặc, tổng quát hơn, ta có thể muốn cả một dạng phân bố; nghĩa là khoảng các giá trị mà tham số có thể nhận, và với mỗi giá trị trong khoảng, có một con số chỉ khả năng xuất hiện là bao nhiêu.

Đầu tiên, ta hãy xét đến khoảng tin cậy.

Tôi đang nghĩ về một dạng phân bố. Đó là phân bố lũy thừa, và sau đây là một mẫu:

{5,384 ; 4,493 ; 19,198 ; 2,790 ; 6,122 ; 12,844}

Tôi muốn bạn đưa ra một khoảng giá trị mà bạn nghĩ rằng có nhiều khả năng là tham số chưa biết, λ, sẽ rơi vào. Cụ thể hơn, tôi muốn một khoảng tin cậy 90%, nghĩa là nếu tôi cứ chơi đi chơi lại trò này thì λ sẽ có 90% số lần rơi vào trong khoảng đó.

Hóa ra kiểu trò chơi này cũng khó, cho nên tôi sẽ nói cho bạn biết lời giải, và việc bạn cần làm chỉ là kiểm tra lại nó.

Khoảng tin cậy thường được mô tả dưới dạng tỉ lệ trượt, α, vì vậy khoảng tin cậy 90% có một tỉ lệ trượt là α = 0,1. Khoảng tin cậy của tham số λ đối với phân bố lũy thừa thì bằng

trong đó n là kích thước mẫu, là ước lượng dựa trên trị trung bình, như ở mục trước, còn χ2(k,x) là CDF của một phân bố khi-bình phương với k bậc tự do, được tính tại x (xem http://wikipedia.org/wiki/Chi-square_distribution).

Nói chung, các khoảng tin cậy rất khó tính được theo cách giải tích, nhưng khá dễ tính được bằng cách mô phỏng. Song trước hết ta cần nói về ước lượng Bayes.

Ước lượng Bayes

Nếu bạn thu thập một mẫu và tính khoảng tin cậy 90%, thì bạn có thể sẽ muốn phát biểu rằng giá trị thật của tham số có 90% cơ hội rơi vào trong khảng này. Nhưng từ quan điểm tần suất, điều đó là không đúng vì tham số tuy chưa biết nhưng lại là một giá trị cố định. Nó chỉ có thể hoặc là rơi vào khoảng tính được, hoặc là không, vì vậy cách định nghĩa theo tần suất sẽ không áp dụng được.

Vì vậy ta hãy thử một phiên bản khác của trò chơi.

Tôi đang nghĩ về một dạng phân bố. Đó là phân bố lũy thừa, và tôi chọn λ từ một phân bố đều, nằm giữa 0,5 và 1,5. Sau đây là một mẫu, mà tôi sẽ gọi là x:

{2,675 ; 0,198 ; 1,152 ; 0,787 ; 2,717 ; 4,269}

Căn cứ vào mẫu này, theo bạn thì tôi đã chọn giá trị λ bằng bao nhiêu?

Trong phiên bản này của trò chơi, λ  một đại lượng ngẫu nhiên, vì vậy việc ta nói về phân bố của nó là hợp lý, và ta có thể dễ dàng tính được nó bằng định lý Bayes.

Sau đây là các bước thực hiện:

  1. Chia khoảng (0,5 ; 1,5) thành một tập hợp các ngăn có kích thước bằng nhau. Với mỗi ngăn, chúng ta định nghĩa Hi, vốn là giả thiết rằng giá trị thật của λ rơi vào ngăn thứ i. Vì λ được rút ra từ một phân bố đều, nên xác suất tiên nghiệm, P(Hi), là như nhau với tất cả mọi i.
  2. Với mỗi giả thiết, ta đi tính khả năng, P(x|Hi), vốn là cơ hội rút được mẫu x khi cho trước Hi.P(X|Hi) = ∏jexpo(λi, xj)trong đó expo(λ, x) là một hàm để tính PDF của phân bố lũy thừa với tham số λ, tại điểm giá trị x.

    PDFexpo(λ,x) = λex

    Kí hiệu biểu thị cho tích của một dãy số (xem http://wikipedia.org/wiki/Multiplication#Capital_Pi_notation).

  3. Từ đó bằng định lý Bayes, phân bố hậu nghiệm làP(Hi|x) = P(Hi) P(x|Hi) / ftrong đó f là thừa số chuẩn hóa

    f = ∑i P(Hi) P(X|Hi)

Cho trước một phân bố hậu nghiệm, ta dễ dàng tính được khoảng tin cậy. Chẳng hạn, để tinh được khoảng tin cậy 90%, bạn có thể dùng các số phần trăm thứ 5 và 95 của phân bố hậu nghiệm.

Tiến hành ước lượng Bayes

Để biểu thị phân bố tiên nghiệm, ta có thể dùng Pmf, Cdf, hoặc một cách biểu diễn bất kì nào khác cho một phân bố, nhưng vì ta muốn có sự tương ứng giữa mỗi giả thiết với một xác suất, nên Pmf là lựa chọn tự nhiên.

Mỗi giá trị trong Pmf biểu diễn cho một giả thiết; chẳng hạn, giá trị 0,5 biểu diễn cho giả thiết rằng λ bằng 0,5. Trong phân bố xác suất tiên nghiệm, tất cả những giả thiết đều có cùng xác suất. Vì vậy ta có thể thiết lập điều kiện tiên nghiệm như sau:

def MakeUniformSuite(low, high, steps): 
    hypos = [low + (high-low) * i / (steps-1.0) for i in range(steps)] 
    pmf = Pmf.MakePmfFromList(hypos) 
    return pmf

Hàm này tạo ra và trả lại một Pmf biểu thị cho một tập hợp các giả thiết có liên quan, được gọi là một bộ giả thiết. Mỗi giả thiết có cùng xác suất, vì vậy phân bố có dạng đều.

Các đối số lowhigh để chỉ định khoảng các giá trị; steps là số các giả thiết.

Để thực hiện việc cập nhật, ta lấy một bộ các giả thiết và một bằng chứng:

def Update(suite, evidence): 
    for hypo in suite.Values(): 
        likelihood = Likelihood(evidence, hypo) 
        suite.Mult(hypo, likelihood) 
    suite.Normalize()

Với mỗi giả thiết trong bộ, ta đem nhân xác suất tiên nghiệm với khả năng xuất hiện bằng chứng. Sau đó ta chuẩn hóa bộ này.

Trong hàm này, suite phải là một Pmf, nhưng evidence có thể là một kiểu bất kì, miễn sao Likelihood có thể nhận biết được kiểu đó.

Sau đây là hàm tính khả năng:

def Likelihood(evidence, hypo): 
    param = hypo 
    likelihood = 1 
    for x in evidence: 
        likelihood *= ExpoPdf(x, param) 

    return likelihood

Trong Likelihood, chúng ta giả thiết rằng evidence là một mẫu từ phân bố lũy thừa rồi tính tích số đã đề cập ở mục trước.

ExpoPdf có nhiệm vụ tính PDF của phân bố lũy thừa tại x:

def ExpoPdf(x, param): 
    p = param * math.exp(-param * x) 
    return p

Đem gộp tất cả lại, ta được đoạn mã sau đây để tạo ra điều kiện tiên nghiệm và tính xác suất hậu nghiệm:

evidence = [2.675, 0.198, 1.152, 0.787, 2.717, 4.269] 
prior = MakeUniformSuite(0.5, 1.5, 100) 
posterior = prior.Copy() 
Update(posterior, evidence)

Bạn có thể tải về đoạn mã trong mục này từ http://thinkstats.com/estimate.py.

Khi tôi nghĩ về ước lượng Bayes, tôi hình dung đến một phòng khách chật kín người, trong đó mỗi người có một phỏng đoán khác nhau về con số mà bạn hiện đang ước lượng. Như vậy, ở ví dụ này mỗi người khách sẽ dự đoán về giá trị đúng của λ.

Ban đầu, mỗi người đều có một độ đo sự tự tin riêng về giả thiết của mình. Sau khi biết được bằng chứng, từng người sẽ cập nhật độ tự tin này dựa trên P(E|H), hay khả năng của bằng chứng khi cho trước giả thiết của họ.

Thường thì hàm khả năng có nhiệm vụ tính một xác suất, vốn lớn nhất là bằng 1, vì vậy bạn đầu niềm tin của mọi người giảm xuống (hoặc không đổi). Nhưng sau đó ta thực hiện chuẩn hóa, và điều này làm tăng niềm tin của mọi người lên.

Vì vậy hiệu ứng tổng cộng là có người vững tin hơn, và có người giảm độ tin tưởng, tùy theo khả năng tương đối của giải thuyết mà họ xác lập.

Số liệu bị kiểm duyệt

Bài toán sau đây xuất hiện trong Chương 3 của cuốn Information Theory, Inference and Learning Algorithms (David McKay), mà bạn có thể tải về từ http://www.inference.phy.cam.ac.uk/mackay/itprnn/ps/.

Các hạt không bền được phát ra từ nguồn và phân rã ở một khoảng cách x, một số thực có phân bố xác suất lũy thừa với [tham số] λ. Sự phân rã chỉ có thể quan sát được nếu nó xảy ra trong một khung nhìn có phạm vi từ x = 1 cm đến x = 20 cm. Người ta đã quan sát được n sự phân rã tại các vị trí {x1, … , xN}. Hỏi λ bằng bao nhiêu?

Đây là một ví dụ về bài toán ước lượng với số liệu bị kiểm duyệt; nghĩa là ta biết rằng có một phần dữ liệu bị loại trừ một cách có hệ thống.

Một trong những điểm mạnh của ước lượng Bayes là nó có thể khá dễ dàng xử lý các số liệu bị kiểm duyệt. Ta có thể dùng phương pháp đã biết ở mục trước, và chỉ cần thay đổi một chỗ: ta phải thay thế PDFexpo với xác suất có điều kiện:

PDFcond(λ,x) = λex / Z(λ)

với 1 < x < 20, và 0 với trường hợp còn lại, trong đó

Z(λ) = ∫120λexdx = ee-20λ

Bạn có thẻ nhớ lại Z(λ) từ Bài tập [expo_pdf]. Tôi có nhắc bạn rằng hãy ghi lại một bản giá trị để có lúc cần dùng đến.

Hãy tải về http://thinkstats.com/estimate.py, trong đó có chứa mã lệnh từ mục trước, và lưu tại một bản sao có tên decay.py.

Sửa lại decay.py để tính được phân bố hậu nghiệm của λ đối với mẫu x = {1.5, 2, 3, 4, 5, 12}. Còn về xác suất tiên nghiệm, bạn có thể dùng dạng phân bố đều giữa 0 và 1,5 (không kể đến 0).

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

Vào năm 2008 cuộc tranh cử Minnesota Senate kết thúc với số phiếu 1.212.629 ủng hộ cho Al Franken và 1.212.317 cho Norm Coleman. Franken đã được công nhận thắng cử, nhưng tác giả Charles Seife đã chỉ ra trong Proofiness, rằng ranh giới trong việc quyết định thắng cử quá nhỏ so với ranh giới sai số trong quá trình kiểm phiếu, vì vậy kết quả nên được coi như bất phân thắng bại.

Giả sử rằng có khả năng là một lá phiếu bất kì bị thất lạc và khả năng cho lá phiếu bị đếm trùng 2 lần thì xác suất để Coleman mới thật là người chiếm đa số phiếu sẽ bằng bao nhiêu?

Gợi ý: bạn phải điền thêm các chi tiết vào mới mô phỏng được quá trình sai số.

Bài toán tầu hỏa

Bài toán tầu hỏa là loại bài toán ước lượng kinh điển, mà cũng được biết đến với tên gọi “bài toán xe tăng Đức”. Đây là đề bài xuất hiện trong cuốn sách của Mosteller, Fifty Challenging Problems in Probability:

“Một tuyến đường sắt có các đầu tàu được đánh số từ 1..N. Một ngày kia bạn thấy đầu tàu có đánh số 60. Hãy ước tính xem có bao nhiêu tàu trên tuyến đường.”

Trước khi đọc phần còn lại của mục này, bạn hãy thử trả lời các câu hỏi sau:

  1. Với một ước lượng cho trước, \hat{n}, thì khả năng của chứng cứ, P(E|\hat{n}), sẽ bằng bao nhiêu? Giá trị ước lượng khả năng cao nhất bằng bao nhiêu?
  2. Nếu ta nhìn thấy con tàu đánh số i thì có vẻ hợp lý để dự đoán con số bằng bội số của i vì vậy hãy giả sử rằng \hat{n}a i. Giá trị nào của a sẽ làm giảm thiểu sai số quân phương?
  3. Vẫn với giả thiết rằng \hat{n}a i, bạn có thể tìm được một giá trị của a để cho  là một ước lượng không chệch?
  4. Với giá trị nào của N thì 60 sẽ là giá trị trung bình?
  5. Phân bố hậu nghiệm tính theo phương pháp Bayes sẽ bằng bao nhiêu, nếu giả sử rằng phân bố tiên nghiệm là đều trong khoảng từ 1 đến 200?

Tốt nhất là bạn dành chút thời gian cố gắng giải đáp các câu hỏi trên trước khi đọc tiếp.

Với một phân bố cho trước, \hat{n}, khả năng thấy được tàu thứ i là 1/\hat{n} nếu i \le \hat{n}, và bằng 0 trong trường hợp còn lại. Vì vậy ước lượng khả năng cao nhất (MLE) bằng \hat{n}i. Nói cách khác, nếu bạn thấy tàu số 60 và muốn làm tối đa khả năng đoán trúng thì bạn nên đoán rằng có 60 con tàu.

Nhưng ước lượng này không được tốt lắm nếu xét về sai số quân phương (MSE). Ta có thể làm tốt hơn bằng cách chọn \hat{n} = ai; tất cả những gì cần làm là tìm một giá trị tốt cho a.

Giả sử rằng trên thực tế có n tàu. Mỗi lần chơi trò dự đoán này, ta nhìn thấy tàu số i và đoán ai, vì vậy sai số quân phương là (ai n)2.

Nếu ta chơi n lần và mỗi lần nhìn thấy một đoàn tàu thì sai số quân phương bằng

MSE = 1/Ni=1N(ai N)2

Để giảm thiểu MSE, ta cần lấy đạo hàm theo a:

dMSE/da = 1/Ni=1N2i(aiN)=0

Và giải ra a.

a = 3N/(2N + 1)

Thoạt nhìn, điều này dường như không có ích gì, vì n xuất hiện ở vế phải, tức là ta cần phải biết n mới chọn được a, mà đã biết n thì ngay từ đầu ta đã chẳng ước lượng làm gì.

Tuy nhiên, với các giá trị n lớn thì giá trị tối ưu của a hội tụ về 3/2, vì vậy ta có thể chọn \hat{N}3i/2.

Để tìm một ước lượng không chệch, ta có thể tính ra sai số trung bình (ME, mean error):

ME = 1/Ni=1N(aiN)

Và tìm giá trị của a sao cho ME = 0, vốn bằng

a = 2N/(N – 1)

Với các giá trị n lớn, a hội tụ về 2, vì vậy ta có thể chọn \hat{N}2i.

Đến đây ta đã phát sinh được ba ước lượng, i, 3i/2, và 2i, với các đặc tính lần lượt là làm tối đa khả năng, làm tối thiểu sai số quân phương, và không chệch.

Song còn một cách phát sinh ước lượng nữa là chọn giá trị để làm cho trị trung bình tổng thể bằng trị trung bình mẫu. Nếu ta thấy tàu số i, thì trị trung bình mẫu chính là i; tổng thể tàu có cùng trị trung bình sẽ là \hat{N}2i  1.

Phân bố hậu nghiệm của số tàu hỏa.

Cuối cùng, để tìm phân bố hậu nghiệm Bayes, ta đi tính

P(Hn|i) = P(i|Hn) P(Hn) / P(i)

Trong đó Hn là giả thiết rằng có n con tàu, và i là chứng cứ: ta đã nhìn thấy tàu số i. Một lần nữa, P(i|Hn) bằng 1/n nếu i < n, và bằng 0 trong trường hợp còn lại. Hằng số chuẩn hóa, P(i), chính là tổng của các tử số trong mỗi giả thiết.

Nếu phân bố tiên nghiệm có dạng đều từ 1 đến 200, ta sẽ bắt đầu với 200 giả thiết và tính khả năng cho từng giả thiết một. Bạn có thể tải về một cách làm từ http://thinkstats.com/locomotive.py. Hình locomotive cho thấy kết quả sẽ như thế nào.

Khoảng tin cậy 90% cho xác suất hậu nghiệm này là [63; 189], vốn vẫn còn khá rộng. Việc thấy được một con tàu chưa đủ là bằng chứng mạnh để ủng hộ một giả thiết bất kì nào (dù rằng nó đã loại bỏ một loạt các giả thiết có n < i).

Nếu ta khởi đầu với một điều kiện tiên nghiệm khác thì xác suất hậu nghiệm sẽ khác hẳn; điều này góp phần giải thích tại sao các ước lượng khác lại phân tán đến mức vậy.

Một cách nghĩ về các ước lượng khác nhau là chúng được ngầm dựa theo các điều kiện tiên nghiệm khác nhau. Nếu như có đủ chứng cứ để xóa nhòa các điều kiện tiên nghiệm, thì tất cả các ước lượng sẽ có xu hướng hội tụ lại; còn nếu không, như trong trường hợp này, thì chẳng có một ước lượng nào mang đủ những tính chất mà ta mong muốn.

Hãy khái quát hóa locomotive.py để xử lí trường hợp khi bạn nhìn thấy nhiều tàu. Bạn chỉ cần thay đổi vài dòng lệnh.

Thử xem bạn có thể trả lời được các câu hỏi khác trong trường hợp khi bạn nhìn thấy nhiều tàu. Bạn có thể xem thêm thông tin về bài toán này cùng một số lời giải ở http://wikipedia.org/wiki/German_tank_problem.

Glossary

ước lượng:
Quá trình suy luận ra các tham số của một dạng phân bố từ một mẫu.
ước lượng (danh từ):
Đặc trưng thống kê được dùng để ước lượng cho một tham số.
sai số quân phương:
Một độ đo cho sai số của ước lượng.
ước lượng khả năng cao nhất:
Ước lượng nhằm tính ra được ước lượng điểm với khả năng xảy ra lớn nhất.
chệch:
Xu hướng của ước lượng nằm trên hoặc dưới giá trị tham số thực tế, sau khi lấy trung bình qua các mẫu được lặp đi lặp lại.
ước lượng điểm:
Ước lượng được biểu diễn dưới dạng một điểm.
khoảng tin cậy:
Ước lượng được biểu diễn dưới dạng một khoảng với xác suất cho trước về việc sẽ chứa trong đó giá trị thực của tham số.
số liệu bị kiểm duyệt:
Bộ số liệu được lấy mẫu theo cách hệ thống để loại bớt một phần số liệu.
Advertisements

2 phản hồi

Filed under Think Stats

2 responses to “Chương 8: Ước lượng

  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

  2. Pingback: Chương 2: Thống kê mô tả | 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