Nếu bạn là nhà khoa học dữ liệu, nhà phân tích dữ liệu, giám đốc sản phẩm trong một công ty dựa trên dữ liệu, bạn sẽ thử nghiệm sản phẩm của mình rất nhiều và thường thì bạn thực hiện nhiều bài kiểm tra AB
Giả sử bạn có một bài kiểm tra AB với các nhóm kiểm soát và điều trị. Khi phân tích kết quả, bạn so sánh số lượng đơn đặt hàng/lượt truy cập/lượt xem trung bình [hoặc bất kỳ số liệu nào khác] trong các nhóm thử nghiệm. Rõ ràng, bạn có thể tính giá trị trung bình của một số liệu, thậm chí bạn có thể nói bằng cách sử dụng kiểm tra t và giá trị p nếu có sự khác biệt có ý nghĩa thống kê giữa hai giá trị trung bình. Nhưng thông thường, họ nói rằng đừng chỉ nhìn vào giá trị p, hãy nhìn vào khoảng tin cậy
Trong bài đăng trên blog này, chúng tôi khám phá cách tính khoảng tin cậy bằng cách sử dụng bootstrapping. Bootstrapping là một phương pháp hay để ước tính khoảng tin cậy vì nó không dựa vào bất kỳ giả định nào về phân phối dữ liệu [ví dụ như so với kiểm tra t Welch phổ biến] và nó khá dễ dàng để bạn tự thực hiện [tôi chia sẻ một liên kết đến cách triển khai của mình bên dưới
Định nghĩa và nguyên tắc Bootstrap
Bootstrap là một phương pháp để ước tính các lỗi tiêu chuẩn và tính toán khoảng tin cậy. Bootstrapping bắt đầu vào năm 1970 bởi ;
Tuy nhiên, mặc dù có nhiều biến thể, nhưng tất cả các bước bootstrap đều như sau
- Lấy mẫu dữ liệu x1,x2,…,xn rút ra từ phân phối F
- Xác định u – thống kê được tính toán từ mẫu [trung bình, trung vị, v.v.]
- Mẫu x*1, x*2,. . . , x*n với sự thay thế từ mẫu dữ liệu gốc. Hãy để nó là F* – phân phối theo kinh nghiệm. Lặp lại n lần [n là số lần lặp bootstrap]
- Tính u* – thống kê được tính từ mỗi mẫu lại
Sau đó, nguyên tắc bootstrap nói rằng
- Phân phối theo kinh nghiệm từ bootstraps xấp xỉ bằng phân phối dữ liệu mẫu. F* ≈ F
- Biến thể của thống kê được tính toán từ mẫu u được tính gần đúng bởi biến thể của thống kê được tính toán từ mỗi mẫu lại u*. Vì vậy, thống kê được tính toán u* từ bootstrapping là một đại diện tốt cho thống kê dữ liệu mẫu
Như đã đề cập, bootstrap có thể được áp dụng cho các mục tiêu khác nhau
- Ước tính khoảng tin cậy
- kiểm định giả thuyết
- loại bỏ thiên vị
Mỗi chủ đề xứng đáng có một bài đăng riêng biệt và hôm nay chúng tôi chỉ tập trung vào khởi động khoảng tin cậy
Các phương pháp cho khoảng tin cậy Bootstrapping
Khi tôi nghiên cứu chủ đề này, tôi không tìm thấy một nguồn duy nhất nào có tất cả các phương thức bootstraps cùng một lúc, mỗi tài liệu tham khảo đều có các loại riêng. Những cái phổ biến nhất được trình bày dưới đây
- Bootstrapping theo kinh nghiệm
Tóm lại, phương pháp này xấp xỉ sự khác biệt giữa phương tiện khởi động và giá trị trung bình mẫu
Hãy xem xét một ví dụ [nó cũng sẽ tiếp tục cho các phương pháp khác]. ước tính giá trị trung bình μ của phân phối cơ bản và đưa ra khoảng tin cậy bootstrap 80%
Bootstrapping theo kinh nghiệm nói
- Bắt đầu lấy mẫu lại bằng cách thay thế từ dữ liệu gốc n lần
- Đối với mỗi bootstrap tính trung bình x*.
- Tính toán δ* = x* − x cho mỗi mẫu bootstrap [x là giá trị trung bình của dữ liệu gốc], sắp xếp chúng từ nhỏ nhất đến lớn nhất.
- Chọn δ. 1 là phân vị thứ 90, δ. 9 là phân vị thứ 10 của danh sách đã sắp xếp của δ*, cung cấp khoảng tin cậy 80% cho [x−δ. 1, x−δ. 9]
Cuốn sách “Tất cả các thống kê” của Wasserman cung cấp ký hiệu toán học sau đây cho bootstrap theo kinh nghiệm
trong đó x là giá trị trung bình của dữ liệu gốc và x* là phương tiện bootstrap
2. bootstrap phần trăm
Thay vì tính toán sự khác biệt δ*, phương pháp phần trăm bootstrap sử dụng phân phối thống kê mẫu bootstrap như một xấp xỉ trực tiếp của thống kê mẫu dữ liệu
Đối với bootstrap Percentile
- Bắt đầu lấy mẫu lại bằng cách thay thế từ dữ liệu gốc n lần
- Đối với mỗi bootstrap, hãy tính giá trị trung bình x*, sắp xếp chúng từ nhỏ nhất đến lớn nhất.
- Chọn x*. 1 là phân vị thứ 10, x*. 9 là phân vị thứ 90 của danh sách được sắp xếp của x*, cung cấp khoảng tin cậy 80% cho [x*. 1, x*. 9]
Hay nói cách khác
Phương pháp phân vị bootstrap khá đơn giản, nhưng nó phụ thuộc vào phân phối bootstrap của x* dựa trên một mẫu cụ thể là một xấp xỉ tốt với phân phối thực của x [vì lý do đó, nguồn này khuyên không nên sử dụng bootstrap phân vị]
3. bootstrap bình thường
Thay vì lấy phần trăm của phương tiện khởi động, phương pháp khởi động thông thường sẽ tính toán khoảng tin cậy cho các phương tiện khởi động này
- Bắt đầu lấy mẫu lại bằng cách thay thế từ dữ liệu gốc n lần
- Đối với mỗi bootstrap tính trung bình x*
- Tính khoảng tin cậy 80% cho mảng x* bằng cách sử dụng ví dụ: kiểm tra t Student
trong đó x* là giá trị trung bình mẫu từ phương tiện bootstrap, se là lỗi tiêu chuẩn của phương tiện bootstrap, z* là giá trị tới hạn [được tìm thấy từ bảng phân phối của CDF thông thường]
Khi tôi so sánh phương pháp này với các phương pháp khác, CI của nó luôn rất hẹp so với các phương pháp khác khiến tôi rất băn khoăn. Theo tôi hiểu, đó là do định nghĩa dựa nhiều vào giả định về phân phối dữ liệu bình thường
Một thời gian sau, tôi tình cờ thấy cách diễn đạt hơi khác về phương pháp này trong cuốn “Tất cả các thống kê” của Wasserman. Tính toán khác nhau chỉ bởi một tham số, nhưng nó mang lại sự khác biệt rất lớn
4. Bootstrap khoảng thời gian bình thường
Bootstrap khoảng thời gian bình thường lặp lại tất cả các bước của bootstrap bình thường, nhưng sử dụng công thức sau cho CI
trong đó se_boot là ước tính bootstrap của lỗi tiêu chuẩn
Khoảng này không chính xác trừ khi phân phối của x* gần với Bình thường
Về cơ bản, công thức ở đây không có chia cho căn bậc hai của n. Tôi chưa tìm thấy lời giải thích tại sao nó được thực hiện theo cách đó. Nếu bạn có bất kỳ ý tưởng, xin vui lòng, chia sẻ chúng trong các ý kiến
5. Bootstrap tham số
Bootstrap tham số rất gần với cách tiếp cận thực nghiệm, điểm khác biệt duy nhất là ở nguồn của mẫu bootstrap. Đối với bootstrap tham số, chúng tôi tạo mẫu bootstrap từ phân phối tham số hóa. Nó thường được sử dụng để tính toán hiệu quả phân bố hậu nghiệm Bayes, không dùng cho phân tích thực nghiệm nên tôi sẽ không đi sâu vào chi tiết ở đây
phương pháp so sánh
Như đã hứa trước đó, tại đây bạn có thể tìm thấy triển khai Python của tất cả các phương thức. Mục tiêu là ước tính khoảng tin cậy bootstrap 95% cho giá trị trung bình của chỉ số mục tiêu. Tôi đã chơi với các phương thức bootstrap, số lượng mẫu bootstrap và kích thước mẫu của chính dữ liệu
Câu hỏi chính tôi có. phương pháp bootstrap nào sẽ hiển thị kết quả đáng tin cậy hơn. Trước hết, bootstrap bình thường rõ ràng tạo ra CI quá hẹp [vì các giả định về tính quy tắc]. 3 phương pháp khác thường gần nhau với mẫu đủ lớn. Ưu điểm của các loại phần trăm và theo kinh nghiệm là chúng cung cấp các khoảng thời gian khác nhau từ bên trái và bên phải [ngược lại với bootstrap khoảng thời gian bình thường]. Thông thường, nó tốt hơn vì nó chiếm phần phân phối dữ liệu. Như bạn có thể thấy trên biểu đồ bên dưới, các khoảng thời gian cho phân vị phần trăm và bootstraps theo kinh nghiệm được chào đón từ phía bên trái – phía mà ý nghĩa dân số nằm ở đó.
[“ci” là khoảng tin cậy cho dữ liệu mẫu được ước tính bằng bài kiểm tra t của sinh viên]
Lựa chọn giữa phương pháp phân vị và phương pháp thực nghiệm, tôi thiên về phương pháp phân vị hơn vì tính đơn giản của nó. Kết quả của nó rất gần với phương pháp thực nghiệm, đồng thời yêu cầu tính toán ít hơn một bước
Một câu hỏi quan trọng khác. có bao nhiêu lần lấy mẫu bootstrap để làm. Nó phụ thuộc vào kích thước dữ liệu. Nếu có ít hơn 1000 điểm dữ liệu, thì việc lấy số bootstrap không quá hai lần ít hơn kích thước dữ liệu [nếu có 400 mẫu, sử dụng không quá 200 bootstrap – tăng thêm không mang lại bất kỳ cải tiến nào]. Nếu bạn có nhiều dữ liệu hơn, số lượng bootstrap từ 100 đến 500 là đủ [số lượng cao hơn thường sẽ không làm tăng độ chính xác của CI]
Thay cho kết luận
Một lưu ý quan trọng mà người ta nên nhớ khi sử dụng bootstrapping là nó không thể cải thiện ước tính điểm, nghĩa là chất lượng của bootstrapping phụ thuộc vào chất lượng của dữ liệu được thu thập. Nếu dữ liệu mẫu bị sai lệch và không thể hiện tốt dữ liệu dân số, thì điều tương tự cũng sẽ xảy ra với các ước tính bootstrap. Vì vậy, hãy luôn nhớ rằng dữ liệu được thu thập trong quá trình thử nghiệm phải là dữ liệu gần đúng của toàn bộ dữ liệu dân số
Trong bài đăng trên blog này, tôi đã mô tả và so sánh các phương thức bootstrap cơ bản. Trên thực tế, còn tồn tại nhiều phương thức khác [như Poisson, Gaussian, Block, v.v.]. Ngoài ra, bootstrap không chỉ về khoảng tin cậy, nó được sử dụng để ước tính sai số chuẩn của trung vị, phần trăm 75%, kiểm tra giả thuyết, v.v. Tất cả chúng đều là những chủ đề hay cho các bài đăng trên blog tiếp theo 🙂