Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

Giới thiệu phương pháp Bootstrap

(Tác giả: Nguyễn Văn Chức – Nguồn: bis.net.vn/forums)

Bootstrap method (chưa biết dịch sang tiếng việt như thế nào !) là tập hợp một số kỹ thuật phân tích dựa vào nguyên lý chọn mẫu có hoàn lại (sampling with replacement) để ước tính các thông số mà thống kê thông thường không giải được. Phương pháp Bootstrapping do nhà thống kê học Bradley Efron thuộc đại học Stanford (Mĩ) phát triển từ cuối thập niên 1979s nhưng đến khi máy tính được sử dụng phổ biến thì phương pháp này mới trở thành phương pháp phổ biến trong phân tích thống kê và được ứng dụng rộng rãi trong rất nhiều lĩnh vực khoa học. Boostrapping method được xem là phương pháp chuẩn trong phân tích thống kê và đã làm nên một cuộc cách mạng trong thống kê vì nó giải quyết được nhiều vấn đề mà trước đây tưởng như không giải được.

Bootstrap là gì: Tư tưởng chính của Bootstrap method

Bootstrap method là phương pháp lấy mẫu có hoàn lại (sampling with replacement). Phương pháp lấy mẫu có hoàn lại có nghĩa là một cá thể có thể xuất hiện nhiều lần trong một lần lấy mẫu. Giả sử ta có 5 quan sát (observation) được đánh nhãn A,B,C,D và E trên 5 quả bóng và bỏ tất cả chúng vào trong 1 cái giỏ.

Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

Từ 5 quan sát này, ta lấy ra 1 quả bóng từ giỏ một cách ngẫu nhiên và ghi lại nhãn của chúng, sau đó bỏ lại quả bóng vừa bốc được vào giỏ và tiếp tục lấy ra một quả bóng một cách ngẫu nhiên, ghi lại nhãn của bóng và bỏ lại quả bóng vào trong giỏ và tiếp tục thực hiện việc lấy mẫu như vậy cho đến khi kết thúc. Việc lấy mẫu này gọi là lấy mẫu có hoàn lại. Kết quả của việc lấy mẫu như trên có thể như sau (giả sử kích thước mẫu là 10):

C, D, E, E, A, B, C, B, A, E

Các quan sát có thể lặp lại trong mẫu và đó là đặc trưng của Bootstrap method

Tại sao cần Bootstrap method ?

Tư tưởng của Bootstrap method rất đơn giản là cách lấy mẫu có hoàn lại, vậy tại sao cần dùng Bootstrap method?

Trong thực tế, từ một mẫu ta chỉ có thể có được một số trung bình của mẫu, ta không biết được khoảng tin cậy cho số trung bình này hoặc không biết được phân bố của số trung bình ra sao. Thêm vào đó thực tế ta không biết được hàm phân bố của tổng thể nên việc ước lượng các tham số đặc trưng thông kê rất khó khăn và thiếu chính xác.  Bootstrap method có thể cung cấp nhiều thông tin chi tiết hơn hơn về phân bố của số trung bình, khoảng tin cậy cũng như xác suất của số trung bình dựa trên một mẫu duy nhất.

Bootstrap method xem một mẫu (sample) như một tổng thể (population).

Các bước chính của Bootstrap method:

1.      Sinh ra các mẫu (Bootstrap sampling) ngẫu nhiên có hoàn lại kích thước n từ tổng thể (từ mẫu ban đầu).

2.      Tính các thông số thống kê đặc trưng cho của mẫu được sinh ra (mean, Confident interval, Standard Deviation, Inter Quartile,…)

3.      Lặp lại bước 1 và bước 2 với số lần lớn (thường trên 1000)

4.      Sử dụng các ước lượng thống kê của Bootstrap sampling đã tính ở bước 2 để đánh giá độ chính xác các ước lượng thống kê của mẫu ban đầu (Original sample, Training Data).

Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

Ví dụ sau đây trình bày cách lấy mẫu có hoàn lại và cách tính các tham số đặc trưng thống kê dựa trên Bootstrap method. Ví dụ được minh họa trên  trên MS Excel (Download file Excel minh họa tại đây).

Giả sử rằng ta có mẫu dữ liệu ban đầu (original sample) gồm 30 quan sát như sau:

Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

1. Định nghĩa tên “sample” tham chiếu đến vùng chứa dữ liệu  mẫu ban đầu ($B$6:$K$8)

2. Từ mẫu ban đầu, lấy mẫu với Bootstrap method (lấy mẫu có hoàn lại) như sau:

Giả sử ta cần lấy 201 mẫu, mỗi mẫu gồm 10 quan sát được lấy ngẫu nhiên (có lặp lại) từ mẫu ban dầu. Từ ô nào đó trong bảng tính (giả sử ô B10), sử dụng công thức sau (chú ý trong công thức sau “sample” là tên đã định nghĩa ở bước 1, là vùng chứa dữ liệu mẫu ban đầu) :

=INDEX(sample, ROWS(sample)*RAND()+1,COLUMNS(sample)*RAND()+1)

3. Copy công thức từ ô B10 tới B10:K210 (hoặc nhiều hơn nếu bạn muốn). Ta có được một bootstrap sample (mỗi hàng là một mẫu với 10 quan sát và ta có 201 mẫu)

4. Bước tiếp theo ta tính các thống kê của Bootstrap (bootstrap statistics). Bạn có thể tính các thống kê nào bạn muốn. Trong ví dụ này chỉ tính các thông kê đặc trưng như số trung bình (mean), trung vị (median), khoảng cách giữa QT3- QT1 (inter quartile range)  và độ lệch chuẩn (standard deviation).

Tính mean của 1 mẫu  =AVERAGE(B10:K10)  =AVERAGE(B10:K10)

Tính số trung vị=MEDIAN(B10:K10) =MEDIAN(B10:K10)

Tínhinter quartile range =QUARTILE(B10:K10,3)-QUARTILE(B10:K10,1) inter quartile range =QUARTILE(B10:K10,3)-QUARTILE(B10:K10,1)

Tính độ lệch chuẩn =STDEV(B10:K10)=STDEV(B10:K10)

Các công thứ trên tính cho 1 mẫu vì vậy ta phải copy  các công thức trên để tính cho các mẫu còn lại. Kết quả như sau :

Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

 Chú ý: Để có một bootstrap sample mới thì bấm phím F9

Khoảng tin cậy (Bootstrap Confidence interval)

Độ tin cậy (Confident level): 100(1-2α). Trong đó α là mức ý nghĩa (thường dùng 5%)

Khoảng tin cậy được xác định như sau:

Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

N: Tổng số mẫu, α: Mức ý nghĩa

Sử dụng hàm SMALL trong MS Excel để xác định khoảng tin cậy [lower bound, upper bound] như sau:

Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

Chú ý rằng vì phân bố mẫu có thể không tuân theo phân phối chuẩn (Normal distribution) nên ta không thể dũng công thức tính khoảng tin cậy dựa vào số trung bình và mức ý nghĩa α.

Đồ thì phân bố tầng suất của Bootstrap

Để vẽ đồ thì phân bố tầng suất của số trung bình (mean) từ Bootstrap sample đã tạo ra, ta tạo ra các khoảng (bin) và tính tầng suất dùng hàm Frequency trong Excel. Vì giá trị của mẫu trong khoảng từ 0 đến 100 nên ta tạo ra 10 bin như sau:

Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

Giả sử rằng vùng chứa giá trị 10 khoảng (Bin) là R10:R19 và Bootstrap sample là vùng  M10:M210.

Công thức tính tầng suất: {=FREQUENCY(M10:M210,R10:R19)}. Đây là công thức mảng nên phải bấm phím Ctrl+Shift+Enter để thực hiện

Sau khi tính được tầng suất, ta tính xác suất xuất hiện của các Bin và vẽ đồ thị phân phối của Bin và xác suất như sau:

Hướng dẫn bootstrap in data science - bootstrap trong khoa học dữ liệu

Sử dụng Bootstrap method, ta không cần biết phân phối thực sự của tổng thể (thực tế rất khó biết), chỉ với một mẫu dữ liệu ban đầu, thông qua phương pháp lấy mẫu có hoàn lại, ta có thể sinh ra nhiều mẫu mới theo yêu cầu nghiên cứu, từ đó ta có thể ước lượng được các tham số đặc trưng của nghiên cứu thống kê như (khoảng tin cậy, phương sai, độ lêch chuẩn,…). Ý tưởng chìa khóa để làm nên thành công của Bootstrap method là “đối xử với mẫu như là tổng thể” cùng với phương pháp lấy mẫu có hoàn lại.

————–&&————–

Filed under: DS & ML & AI, Thống kê |