Buổi 5 — Thiết kế và chạy thử nghiệm
Giả thuyết trước, thay đổi sau
Giả thuyết tốt có ba phần: thay đổi cụ thể, kết quả kỳ vọng đo được, và lý do tin rằng nó sẽ xảy ra.
Ví dụ: "Nếu chuyển bước xác minh số điện thoại xuống sau khi người dùng tạo dự án đầu tiên, tỉ lệ kích hoạt tuần đầu sẽ tăng từ 34% lên ít nhất 40%, vì dữ liệu funnel cho thấy 22% người dùng rời đi đúng ở bước này."
Phần thứ ba là phần quan trọng nhất và hay bị bỏ. Không có lý do thì dù thắng hay thua bạn cũng không học được gì mang sang thử nghiệm sau.
Tính cỡ mẫu trước khi chạy
Đây không phải hình thức. Nếu không tính trước, bạn sẽ nhìn kết quả mỗi ngày và dừng lại vào ngày nó có vẻ thắng — hành vi này làm tỉ lệ dương tính giả tăng lên nhiều lần.
Ba tham số: tỉ lệ chuyển đổi hiện tại, mức khác biệt nhỏ nhất bạn quan tâm (MDE), và mức tin cậy. MDE càng nhỏ thì cần càng nhiều mẫu — muốn phát hiện chênh 1% thì cần lượng dữ liệu gấp nhiều lần so với chênh 10%.
Nếu tính ra cần 6 tháng để đủ mẫu, đừng chạy A/B — dùng nghiên cứu định tính, nó cho hiểu biết nhanh hơn.
Guardrail: bắt buộc trong mọi thử nghiệm
Với mỗi thử nghiệm, chọn trước một hoặc hai chỉ số không được xấu đi.
Tăng tỉ lệ đăng ký bằng cách giấu thông tin về giá sẽ thắng ở chỉ số chính và giết chết giữ chân. Không có guardrail thì bạn sẽ triển khai nó.
Ba lỗi thống kê hay gặp
Peeking — nhìn kết quả liên tục và dừng khi có lợi. Khắc phục bằng cách cố định thời điểm dừng từ đầu.
So sánh nhiều lần — chạy 20 thử nghiệm thì trung bình một cái sẽ "thắng" hoàn toàn do ngẫu nhiên ở mức tin cậy 95%.
Nhầm p-value với xác suất đúng. p = 0.03 không có nghĩa "97% khả năng giả thuyết đúng". Nó nghĩa là: nếu không có khác biệt thật, xác suất thấy kết quả này hoặc cực đoan hơn là 3%.
Kết quả không có ý nghĩa thống kê nghĩa là gì
Nghĩa là chưa đủ bằng chứng để kết luận có hiệu ứng ở cỡ mẫu này — không phải "không có hiệu ứng". Vắng bằng chứng khác với bằng chứng về sự vắng mặt.
Sau khi thắng
Đừng triển khai 100% ngay. Mở dần và theo dõi guardrail — hiệu ứng trên mẫu thử không phải lúc nào cũng giữ nguyên trên toàn bộ người dùng, đặc biệt khi có novelty effect.
Rồi ghi lại bài học vào growth model: thử nghiệm này đã dạy bạn điều gì về cách người dùng hành xử?
Bài tập
Viết ba giả thuyết đầy đủ ba phần cho sản phẩm của bạn. Với mỗi cái, tính cỡ mẫu cần thiết. Bạn sẽ phát hiện một số ý tưởng không thể kiểm chứng được bằng A/B — và biết điều đó trước khi bắt đầu là một kết quả có giá trị.
<!--les-append-->
Bốn thứ chốt trước khi chạy
| Chốt trước | Vì sao |
|---|---|
| Giả thuyết đủ ba phần | Thay đổi gì, kết quả kỳ vọng, và lý do tin |
| Chỉ số chính duy nhất | Chọn sau khi thấy dữ liệu là cách tự lừa mình |
| Cỡ mẫu và thời gian chạy | Không tính trước thì bạn sẽ dừng vào ngày nó có vẻ thắng |
| Chỉ số canh gác | Thắng một chỗ, hại chỗ khác là kết quả phổ biến |
Vì sao nhìn kết quả liên tục là vấn đề
Nếu bạn kiểm tra mỗi ngày và dừng ngay khi thấy có ý nghĩa thống kê, tỉ lệ dương tính giả tăng vọt — bạn gần như luôn tìm được "kết quả", kể cả khi không có tác động thật.
Cách chống: chốt thời gian chạy trước và không nhìn kết quả chính giữa kỳ. Nếu buộc phải theo dõi, chỉ theo dõi chỉ số canh gác để dừng sớm khi có hại.
Kiểm tracking trước khi mở lưu lượng
Bước bị bỏ nhiều nhất và tốn nhất khi bỏ: chạy thử nghiệm hai tuần rồi phát hiện sự kiện không bắn đúng ở một nhánh.
Danh sách kiểm 10 phút:
- Sự kiện bắn ở cả hai nhánh
- Người dùng được chia nhóm đúng tỉ lệ
- Một người luôn thấy cùng một nhánh
- Chỉ số chính tính được từ dữ liệu đang thu
Khi kết quả không rõ ràng
Phần lớn thử nghiệm cho kết quả không có ý nghĩa thống kê. Đó là bình thường, không phải thất bại.
| Kết quả | Nghĩa là | Làm gì |
|---|---|---|
| Thắng rõ | Tác động thật | Triển khai, ghi lại lý do đã đúng |
| Thua rõ | Giả thuyết sai | Ghi lại — thông tin này có giá trị |
| Không rõ | Tác động nhỏ hơn cỡ mẫu phát hiện được | Không triển khai; đừng chạy dài thêm để "cố tìm" |
Làm ngay
Lấy thử nghiệm gần nhất của đội bạn. Kiểm bốn thứ ở trên. Nếu "lý do tin" không được viết ra, thêm nó vào mẫu thử nghiệm — đó là thay đổi một dòng với tác động lớn nhất. <!--/les-append-->