Phân tích kết quả A/B test sử dụng kiểm định chi-square
1.Đặt vấn đề :
Banner A1 đang có performance bình thường (ví dụ CTR là 1,2%). Team mong muốn sửa đổi banner (ví dụ như sửa chữ Chơi ngay trên nút CTA thành Tải ngay). Sau khi sửa và chạy thử trong 3 ngày (gọi banner đã sửa là banner A2), kết quả thu được CTR là 1,5%. Vậy, performance của A2 có tốt hơn performance của A1 hay không?
Một vấn đề tương tự, giả sử mình là nhân viên sòng bạc. Mình nhận một con xúc xắc về và cần phải kiểm tra xem con xúc xắc này có đạt chất lượng hay không. Theo thống kê thông thường, đạt chất lượng tức là mình gieo nó 600 lần thì mỗi mặt sẽ phải hiện ra 100 lần. Tuy vậy, kết quả tương ứng lần lượt là 95-103-100-98-96-108. Vậy, mình nên kết luận con xúc xắc này không đạt chất lượng?
2.Kiểm định Chi-Square :
Kiểm định này ra đời năm 1900 bởi nhà toán học Karl Pearson. Mặc dù kiểm định này là một trong các kiểm định gây tranh cãi trong giới học thuật nhưng nó vẫn được sử dụng khá nhiều cho tới nay bởi tính đơn giản trong việc tính toán.
Tại sao phải tính? Đơn giản là do mình chỉ có kết quả thử nghiệm ở một số lượng mẫu nhỏ, không đại diện cho toàn bộ dân số (ở trường hợp xúc xắc là mình không tung xúc xắc cho tới vô tận lần tung nên không kết luận chính xác được).
Theo StatTrek, để thực hiện kiểm định này cần trải qua 4 bước sau đây :
Trong bước này, cần đưa ra giả định vô hiệu (gọi là H0 – null hypothesis), ngược lại với giả thuyết ban đầu.
Ví dụ với xúc xắc ở trên, giả định là gieo xúc xắc 600 lần sẽ ra 100 lần đều ở 6 mặt. Do vậy, mình sẽ đưa ra giả định vô hiệu (H0) của giả định này nói rằng gieo 600 lần sẽ không ra được đều như vậy đâu. Mục tiêu của mình là phải xem với dữ liệu mình có, dữ liệu này có bác bỏ được giả thuyết vô hiệu hay không!
Trong bước này, cần đưa ra Significance level (giá trị từ 0 tới 1) còn được gọi là Hệ số ý nghĩa hay p-value. Hệ số này sẽ quyết định xem giả định H0 được chấp nhận hay không.
Thông thường, giá trị p-value sẽ được chọn =0,05. Ở đây, mình thử chọn p=0,05 theo khuyến cáo mặc định.
Trong bước này, mình sẽ tính toán giá trị Chi dựa trên công thức do ông Pearson đưa ra. Đây là công thức vô cùng phổ biến nên mình có thể kiếm được khá nhiều trang web tính giúp mình, ví dụ trang này. Mình cũng có thể sử dụng hàm CHISQ.TEST của Excel.
Mình sẽ thử tính bằng LibreOffice với trường hợp xúc xắc ở trên nhé :
Kết quả ra là 0,947. Thì sao?
Trong bước này, dựa trên giá trị mới tính toán được và giả định về Hệ số ý nghĩa p-value ban đầu để đưa ra kết luận : vậy mình chấp nhận giả thuyết vô hiệu (H0) hay bác bỏ giả thuyết vô hiệu?
Để kết luận, còn cần phải tính thêm Degree of Freedom – bậc tự do (viết tắt là dF – tính bằng số cách phân loại trừ đi 1). Trong trường hợp này, dF = 6 (mặt xúc xắc) -1 = 5. Cần nhớ rằng 0.947 là kết quả được tính với dF = 5, nếu dF lớn hơn hoặc nhỏ hơn kết quả sẽ khác (hàm này làm luôn hộ mình việc đó, nếu không hồi xưa sẽ phải đi tra bảng).
Ở đây, 1-0.947=0.053>0.05 (p-value), do vậy mình có thể nói rằng giả định vô hiệu H0 là đúng, lượt xúc xắc này có vấn đề. Bạn thử tự tính với dữ liệu (95,103,100,98,99,105) để coi mình có tự tin bác bỏ giả định vô hiệu H0 hay không nhé.
3.A/B Test với banner :
Quay trở lại chuyện banner, lúc đầu tiên nói banner A1 có CTR là 1,2%, banner A2 có CTR là 1,5%, vậy có thể kết luận performance của banner A2 (sau khi sửa) tốt hơn A1 hay không? Nhìn cái bảng ảo diệu này chút :
Tiếp tục lấy p-value = 0.05 (ở đây dF = 1 nhé, bằng 2-1=1). Với cả hai bảng này thì con số đều không đạt được tới mức độ significane để bác bỏ giả định vô hiệu (là kết quả hai banner này là khác nhau). Do vậy, mình không đủ tự tin để nói kết quả A/B test này thực sự có kết quả rõ ràng.
Bạn có thể tự thay số Click từ 120 trong ví dụ trên lên thành 200 (và sửa tương ứng số Impression không có click giảm xuống) để xem kết quả ra sao nha.
Bắt đầu ảo ảo rồi nhỉ? Có hai cái note để kết thúc :
- Chú ý tới một thuật ngữ gọi là “Bonferroni correction“. Có nghĩa là nếu bạn làm thí nghiệm nhiều lần thì phải chia số p-value cho số lần thí nghiệm để ra được ngưỡng so sánh. Nếu không, bạn cứ tung đồng xu tới khi nào bạn có kết quả vừa ý mới thôi thì chết.
- Chi-square vs t-test. Chi-square chỉ sử dụng được với các biến phân loại (ví dụ xúc xắc ngửa mặt số 1, số 2, số 3… ví dụ impression có click vs impression không có click). T-Test sử dụng được với các biến liên tục (continuous variable).
- Bài này mình viết có thể sai, vì mình cũng dốt môn này lắm, nhưng nếu không viết ra thì là giấu dốt. Ai thấy sai cứ hô lên nhé.