
Đừng gọi ngày quan trọng đầu tiên là một chiến thắng
Kiểm tra thử nghiệm A/B cho đến khi nó vượt qua p < 0,05 có thể biến tỷ lệ dương tính giả danh nghĩa 5% thành gần 28%. Tôi sử dụng mô phỏng hạt giống để cho thấy mức độ thiệt hại lớn như thế nào và so sánh các cách khắc phục liên tục dừng sớm một cách trung thực. Bài đăng Hãy ngừng gọi ngày quan trọng đầu tiên là một chiến thắng xuất hiện đầu tiên trên Hướng tới khoa học dữ liệu.
Quản lý sản phẩm
Đừng gọi ngày quan trọng đầu tiên là một chiến thắng
Kiểm tra thử nghiệm A/B cho đến khi nó vượt qua p < 0,05 có thể biến tỷ lệ dương tính giả danh nghĩa 5% thành gần 28%. Tôi sử dụng mô phỏng hạt giống để cho thấy mức độ thiệt hại lớn như thế nào và so sánh các giải pháp khắc phục liên tục dừng sớm một cách trung thực.
Mila Sudarikova
Ngày 11 tháng 8 năm 2026
đọc 12 phút
Chia sẻ
Hầu hết các nhóm xử lý thử nghiệm A/B theo cách khá đơn giản. Họ khởi chạy một thử nghiệm, mở bảng điều khiển vào mỗi buổi sáng và đợi giá trị p giảm xuống dưới 0,05. Khi đó, kết quả có vẻ đủ chính thức để gửi đi. Đường dây đã bị vượt qua, con số trông rõ ràng và người chiến thắng dường như đã sẵn sàng gọi.
Tôi sẽ không nói rằng thói quen này luôn được thực hiện một cách bất cẩn. Trong hầu hết các trường hợp, nhóm đang thực hiện chính xác những gì hướng dẫn tiêu chuẩn đã dạy họ làm: xác định giả thuyết, chọn số liệu, chạy thử nghiệm z hai tỷ lệ hoặc thử nghiệm t và loại bỏ giá trị rỗng khi p giảm xuống dưới 0,05. Một số hướng dẫn thậm chí còn bổ sung thêm bước tính toán cỡ mẫu cần thiết trước khi bắt đầu thử nghiệm.
Nhưng có một điều quan trọng thường bị bỏ qua. Tỷ lệ dương tính giả 5 phần trăm được ghi cho một lần xem xét một mẫu cố định và phép toán sẽ thay đổi sau khi cùng một bảng điều khiển được kiểm tra đi kiểm tra lại trước khi thử nghiệm kết thúc.
Tôi đã chạy mô phỏng để hiển thị điều này. Việc thiết lập có chủ ý là bình thường: hai phiên bản, A và B, cả hai đều chuyển đổi ở cùng một tỷ lệ 10% thực sự; 1.000 lượt khách mỗi cánh tay mỗi ngày; một bài kiểm tra hai mặt ở mức 5 phần trăm; và 30 ngày lưu thông. Không có gì khác biệt giữa A và B. Không tìm thấy cải tiến sản phẩm nào. Điều duy nhất mà bài kiểm tra có thể phát hiện ra là tiếng ồn.
nhập numpy dưới dạng np
từ số liệu thống kê nhập scipy
RNG = np.random.default_rng(5)
n_sim = 60_000
n_ngày = 30
khách truy cập_per_arm_day = 1_000
p_true = 0,10
def two_prop_z(succ_a, n_a, succ_b, n_b):
pa, pb = succ_a/n_a, succ_b/n_b
pool = (succ_a + succ_b) / (n_a + n_b)
se = np.sqrt(pool * (1 - pool) * (1 / n_a + 1 / n_b))
z = (pb - pa) / se
trả về z, 2 * stats.norm.sf(np.abs(z))
inc_a = RNG.binomial(visitors_per_arm_day, p_true, size=(n_sims, n_days))
inc_b = RNG.binomial(visitors_per_arm_day, p_true, size=(n_sims, n_days))
cum_a, cum_b = inc_a.cumsum(axis=1), inc_b.cumsum(axis=1)
n = np.cumsum(np.full((n_sims, n_days), khách truy cập_per_arm_day), axis=1)
_, p_daily = two_prop_z(cum_a, n, cum_b, n)
false_posit_daily = (p_daily < 0,05).any(axis=1).mean()
Nếu xét nghiệm chỉ được kiểm tra một lần vào cuối, tỷ lệ dương tính giả sẽ đạt mức cần thiết: khoảng 5%. Nhưng nếu xét nghiệm được kiểm tra hàng ngày và dừng ngay khi p giảm xuống dưới 0,05 thì tỷ lệ dương tính giả lên tới 27,7%. Nói cách khác, hơn một phần tư “chiến thắng” là chiến thắng được tạo ra bởi quy tắc dừng chứ không phải bởi sản phẩm.
Những gì phần này bổ sung là phép đo trực tiếp về lạm phát và điểm chuẩn song song của các bản sửa lỗi trên cùng một dữ liệu mô phỏng. Tôi sử dụng mô phỏng hạt giống để đo tỷ lệ dương tính giả khi nhìn trộm hàng ngày, sau đó so sánh thiết kế mẫu cố định, ranh giới Pocock tuần tự theo nhóm và giá trị p luôn hợp lệ bằng mức độ hợp lệ và tốc độ của mỗi mẫu.
Phiên bản hướng dẫn là không đủ
Lời giải thích công khai thông thường về thử nghiệm A/B tạo ấn tượng rằng số liệu thống kê thử nghiệm là toàn bộ câu chuyện. Bạn tính giá trị p, so sánh nó với 0,05 và thực hiện cuộc gọi. Bản thân quy trình đó là ổn, nhưng nó chưa hoàn chỉnh đối với cách các nhóm sản phẩm thực sự chạy thử nghiệm.
Trong thực tế, mọi người hiếm khi im lặng chờ đợi cho đến khi kết thúc bài kiểm tra theo kế hoạch trước. Họ nhìn vào bảng điều khiển nhiều lần. Nếu kết quả có vẻ tốt vào ngày thứ tư, ngày thứ tám hoặc ngày thứ mười hai thì áp lực phải dừng lại sẽ trở nên rất thực tế. Bảng điều khiển cho biết quan trọng, lộ trình đang chờ và doanh nghiệp muốn có câu trả lời.
Vấn đề là mỗi giao diện mới đều mang lại cho cùng một quy trình ngẫu nhiên một cơ hội khác để đi lang thang trên đường. Giá trị p không phải là thuộc tính ổn định của thử nghiệm trong khi dữ liệu vẫn đang được tích lũy. Nó di chuyển theo nhóm người dùng tiếp theo, có nghĩa là sự sụt giảm có vẻ quyết định vào một ngày nào đó có thể biến mất hoàn toàn vào ngày tiếp theo.
Hình 1. Sáu bài kiểm tra A/A không có gì khác biệt, được theo dõi hàng ngày. Giá trị p di chuyển theo thời gian và một số thử nghiệm vượt qua giới hạn trong một ngày trước khi quay trở lại trên mức đó. Hình ảnh của tác giả.
Đây là lý do tại sao cụm từ “chúng tôi dừng lại khi nó trở nên quan trọng” không phải là một chi tiết hoạt động vô hại. Nó là một phần của thiết kế thống kê. Nếu quy tắc dừng không hợp lệ, giá trị p tại ngày dừng không có nghĩa như nhóm nghĩ.
Nó tệ đến mức nào tùy thuộc vào mức độ thường xuyên bạn nhìn
Thiệt hại tăng lên theo số lần nhìn. Trong mô phỏng:
Tần suất bạn nhìn Tỷ lệ dương tính giả1 lần nhìn, chỉ kết thúc5,0%2 lần nhìn8,3%5 lần nhìn14,0%10 lần nhìn19,1%Hàng ngày, 30 lần nhìn27,7%
Trực giác rất đơn giản. Nếu bạn tạo nhiều cơ hội cho tiếng ồn trông giống như một tín hiệu thì một số trong số đó sẽ tình cờ vượt qua ngưỡng. Và đội dừng lại ở ý nghĩa đầu tiên sẽ không bao giờ nhìn thấy sự điều chỉnh sau này. Kết quả là nó ghi lại ngày may mắn.
Trong số các thử nghiệm ở cánh tay giống hệt nhau đã vượt qua ngưỡng 0,05 ít nhất một lần, một nửa đã vượt qua vào ngày thứ năm. Đó chính xác là thời điểm mà một đội muốn tuyên bố giành chiến thắng nhanh chóng nhất. Nhưng đó cũng chính xác là khi mẫu vẫn còn nhỏ và ước tính dễ vỡ nhất.
Hình 2. Trong số các thử nghiệm cánh tay giống hệt nhau đã vượt qua p = 0,05 ít nhất một lần, nhiều thử nghiệm đã vượt qua lần đầu tiên trong vài ngày đầu tiên. Ý nghĩa ban đầu thường chỉ là tiếng ồn ban đầu. Hình ảnh của tác giả.
Ngay cả người chiến thắng thực sự cũng bị phóng đại
Vấn đề tương tự xuất hiện ngay cả khi hiệu ứng là có thật. Tôi chạy lại mô phỏng với B thực sự tốt hơn A: A chuyển đổi ở mức 10% và B ở mức 11%, mức tăng tương đối thực sự là 10%. Một thử nghiệm kéo dài trong khoảng thời gian 30 ngày cố định đã ghi nhận mức tăng trung bình là 10,1%, về cơ bản tập trung vào sự thật.
Nhưng một thử nghiệm dừng lại ở mức quan trọng đầu tiên đã ghi nhận mức tăng trung bình là 12,7%. Người chiến thắng là có thật, nhưng



Nguồn tin: Towards Data Science — Tác giả: Mila Sudarikova. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.