Khi nào chấm dứt thử nghiệm A / B Bayes?


10

Tôi đang cố gắng thực hiện thử nghiệm A / B theo cách Bayes, như trong Lập trình xác suất cho các thử nghiệm A / B của HackerBayesian . Cả hai bài viết đều cho rằng người ra quyết định quyết định biến thể nào tốt hơn chỉ dựa vào xác suất của một số tiêu chí, ví dụ , do đó, tốt hơn. Xác suất này không cung cấp bất kỳ thông tin nào về việc liệu có đủ lượng dữ liệu để rút ra bất kỳ kết luận nào từ nó hay không. Vì vậy, nó không rõ ràng với tôi, khi dừng thử nghiệm.P(pA>pB)=0.97A

Giả sử có hai RVs nhị phân, và , và tôi muốn để ước tính bao nhiêu khả năng nó là , và dựa trên những quan sát của và . Ngoài ra, giả sử rằng và sau được phân phối beta.ABpA>pBpApBpA>5%ABpApB

Vì tôi có thể tìm thấy các tham số cho và , tôi có thể lấy mẫu sau và ước tính . Ví dụ trong trăn:α,βpA|datapB|dataP(pA>pB | data)

import numpy as np

samples = {'A': np.random.beta(alpha1, beta1, 1000),
           'B': np.random.beta(alpha2, beta2, 1000)}
p = np.mean(samples['A'] > samples['B'])

Tôi có thể nhận được, ví dụ: . Bây giờ tôi muốn có một cái gì đó như .P(pA>pB)=0.95P(pA>pB | data)=0.95±0.03

Tôi đã nghiên cứu về các khoảng tin cậy và các yếu tố Bayes, nhưng không thể hiểu làm thế nào để tính toán chúng cho trường hợp này nếu chúng có thể áp dụng được. Làm cách nào tôi có thể tính toán các số liệu thống kê bổ sung này để tôi có tiêu chí chấm dứt tốt?


1
Một bài viết hay về điều này, hãy kiểm tra phụ lục để biết ví dụ với các tính toán ... support.google.com.vn/analytics/2/2484870? Hl = vi
Fabio Beltramini

Câu trả lời:


10

Tôi rất vui vì bạn đã đề cập đến ví dụ này, vì một dự án tôi đang thực hiện là viết cả một chương về thử nghiệm A / B của Bayes.

Chúng tôi quan tâm đến hai số lượng: và một số biện pháp "tăng". Trước tiên, tôi sẽ thảo luận về số lượng .P(pA>pB|data)P(pA>pB|data)

Không có giới hạn lỗi trên , đó là một đại lượng thực sự. Điều này tương tự như nói "Ý nghĩa của hậu thế là gì?", Chỉ có 1 nghĩa và chúng ta có thể tính toán bằng cách lấy trung bình của tất cả các mẫu (Tôi bỏ qua mọi lỗi Monte Carlo, vì chúng có thể được giảm để không đáng kể bằng cách lấy mẫu nhiều hơn). Tôi nghĩ rằng bạn đang trộn lẫn số lượng không xác định, nơi chúng ta có thể nói điều gì đó như "+ - 3%" và số lượng được tính toán sau.P(pA>pB|data)

Điều tôi đang nói là là chắc chắn: với dữ liệu quan sát và linh mục của bạn, đây là kết luận của bạn.P(pA>pB|data)=0.95

Lưu ý rằng chúng ta sẽ biết một cách nhanh chóng: nó chỉ đòi hỏi một lượng vừa phải quan sát cho đủ khác nhau và . Khó hơn nhiều, và thú vị hơn, để đo lường mức tăng A có trên B (và thường đây là mục tiêu của thử nghiệm A / B: chúng ta tăng bao nhiêu chuyển đổi). Bạn đã đề cập rằng 5% - bạn chắc chắn về điều này như thế nào?pA>pBpApBpApBpB>

Lưu ý rằng mặc dù là boolean và do đó dễ đo lường, chắc chắn không phải là boolean. Nó là một sự phân phối các khả năng:pA>pBpApBpB

nhập mô tả hình ảnh ở đây

Khi ngày càng có nhiều dữ liệu được thu thập, phân phối này hội tụ với mức tăng tương đối thực tế, có thể nói phân phối ổn định. Đây là nơi tôi đề nghị suy nghĩ về việc chấm dứt thử nghiệm. Khi phân phối này có vẻ "bình tĩnh" và chúng tôi có thể cảm thấy tự tin về mức tăng, sau đó chấm dứt thử nghiệm.


Cảm ơn vi đa trả lơi! Mong được gặp chương mới sớm. Hiện tại, tôi đang xem xét phương sai mẫu của và chấm dứt thử nghiệm khi nó gần bằng không. pApBpA
Bogdan Kulynych

hey @ Cam.Davidson.Pilon, cảm ơn bạn đã trả lời. Tôi vẫn bối rối khi đưa ra các xác suất như: "Xác suất là A tốt hơn 10% so với B là X%" Tôi đã tạo 2 bản phân phối; một cái tốt hơn 10% so với cái kia và được sử dụng giá trị N rất lớn, do đó, diff (A / B-1), có phân phối giống như bình thường với giá trị trung bình là 10%. Do đó (diff> .10) .mean () trả về ~ 50%, nhưng không nên là 100%?
CanCeylan

@CanCeylan bạn có mã để chia sẻ không? Tôi không chắc chắn cách bạn tạo các bản phân phối ...
Cam.Davidson.Pilon

0

Tôi đã thử nghiệm các cách để ngăn chặn bài kiểm tra A / B của Bayes và bạn nói đúng - không có nhiều cách rõ ràng từ việc đi vòng quanh. Phương pháp tôi thích nhất là phương pháp dựa trên độ chính xác, dựa trên điều này: http://doingbayesiandataanalysis.blogspot.com/2013/11/optional-stopping-in-data-collection-p.html . Tuy nhiên, tôi không tìm thấy nhiều tài liệu toán học xung quanh vấn đề này, vì vậy ngay bây giờ nó chỉ là một heuristic tốt.

Tôi đã thấy rằng trong khi các thử nghiệm của mình cần chạy lâu hơn để đạt được độ chính xác mong muốn, thì nó trực quan hơn và bạn đang dành thời gian để phân phối để "bình tĩnh" trong một mục tiêu cách, tức là thay vì bắt mắt.P(A>B|data)


0

Dường như có hai cách tiếp cận chính để đưa ra quyết định trong thử nghiệm A / B của Bayes. Cuốn đầu tiên dựa trên một bài báo của John Kruschke từ Đại học Indiana (K. Kruschke, Bayesian Ước tính thay thế bài kiểm tra, Tạp chí Tâm lý học thực nghiệm: General, 142, 573 (2013)). Quy tắc quyết định được sử dụng trong bài viết này dựa trên khái niệm Vùng tương đương thực tế (ROPE).

Một khả năng khác là sử dụng khái niệm về tổn thất dự kiến. Nó đã được đề xuất bởi Chris Stucchio (C. Stucchio, Thử nghiệm A / B Bayesian tại VWO). Đó là một cách tiếp cận khác mà tôi sẽ xem xét.

Cách tiếp cận được đề xuất bởi Cam.Davidson.Pilon xem xét phân phối sau của có nhiều ý nghĩa và sẽ phù hợp với phương pháp ROPE. Sử dụng phương pháp ROPE có thêm lợi thế là đưa ra một quy tắc khi thử nghiệm không có kết quả (không chỉ khi các biến thể "A" hoặc "B" có thể được tuyên bố là người chiến thắng). (pApB)/pA

Bạn có thể tìm thấy nhiều hơn trong bài đăng trên blog này: Thử nghiệm A / B Bayesian : hướng dẫn từng bước . Nó cũng bao gồm một số đoạn mã Python chủ yếu dựa trên dự án Python được lưu trữ trên Github .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.