RSS Amplifier

Growth/Product Design · Jul 10, 2025

A/B test dành cho Product Designer với sample size rất nhỏ

0
Sign in to vote or save

Thai Lam · Growth/Product Design

Sketch by Borbála Tölgyesi
credit: https://agostontorok.github.io/2017/03/26/bayes_vs_frequentist/

Hôm nay chúng ta sẽ nói chuyện khoa học, số má một chút nhé.

Mình đọc thấy 🔗 bài phân tích một Bài tập trong khóa học sử dụng A/B test, trên Linkedin của tác giả Hieu Van

Xin phép copy lại ảnh sang đây:

Mình xin tóm tắt nhanh đại ý của bài phân tích:

  • Bài viết của bạn Hieu Van chỉ ra rằng ví dụ A/B test trong bài giảng có sample size quá bé (chỉ có 10)

  • Dẫn đến kết quả p-value < 0.05 là không đáng tin cậy → kết luận Design B giúp giảm thời gian thao tác đi 10% so với Design A là không chính xác

Cụ thể:

Text within this block will maintain its original spacing when published

Cách diễn giải kết luận “Cannot reject H0 → Không có sự khác biệt” là sai bản chất. Trong nghiên cứu thống kê, p value > 0.05 chỉ đơn thuần là KHÔNG CÓ ĐỦ BẰNG CHỨNG VỀ MẶT DỮ LIỆU ĐỂ CHỨNG MINH SỰ KHÁC BIỆT, và tác giả phải đối mặt với vấn đề False Negative do cỡ mẫu quá bé.

Sau đó, tác giả Hieu Van có đăng thêm bài thứ 2: https://www.linkedin.com/posts/vanhieutrann2510_l%C3%A0m-g%C3%AC-khi-sample-size-b%C3%A9-trong-ng%C3%A0nh-activity-7346079422791225344-gEzg

Lần này, bài viết hướng dẫn phương pháp khác khi gặp sample size bé. Trong đó bao gồm 2 phương pháp:

  1. Giải pháp 1️⃣ - Sử dụng Kiểm định phi tham số (Non-parametric Tests) bằng Mann-Whitney U test.

  2. Giải pháp 2️⃣ - Bootstrapping

Cụ thể, là sử dụng Mann-Whitney U Test thay cho t-test. Nhưng trước hết, để tránh phức tạp hóa vấn đề, mình sẽ nói một cách dễ hiểu nhất về các phương pháp này như sau

Thực tế, cả 2 phương pháp T-test (là cách làm trong bài giảng gốc) hay Mann-Whitney U Test, đều là cách diễn giải kết quả A/B test theo trường phái thống kê Frequentist, nhưng khác biệt ở chỗ, T-test là Parametric còn M-WU test là Non-parametric.

ParametricNon-parametric khác nhau cơ bản nhất ở chỗ, parametric test sử dụng phân bổ mẫu chuẩn (normal distribution). Tức là sample mà bạn sử dụng có phân bổ đồng đều, có giá trị trung bình (mean) ở giữa và không có Outliers (đuôi kéo dài, hay một giá trị cực đoan cách rất xa phần lớn dữ liệu còn lại), có thể thể hiện đơn giản dễ hiểu nhất dưới dạng hình chuông như bên dưới:

Một ví dụ đơn giản khác: trung bình chiều cao người Việt Nam là 1m60, trong đó có rất ít người cao dưới 1m4 và rất ít người cao trên 1m9. Đây được xem như một sample có normal distribution.

Vậy thì quay lại bài giảng A/B Test ban đầu, tác giả sử dụng t-test (parametric test) trên mẫu số chỉ có 10 users, đây là mẫu sample không đạt được normal distribution. Lý do là vì sao, hãy thử xem cụ thể chính ví dụ trên nhé:

Với bảng kết quả trên và để dễ hình dung hơn, chúng ta sẽ vẽ lên biểu đồ và khi đó, ta thấy distribution có phần skew về phía phải, phần kết quả lớn.

Đây không phải normal distribution - điều kiện quan trọng để sử dụng parametric t-test. Nguyên nhân là bởi vì với mẫu số nhỏ, một sự kiện khác biệt lớn xảy ra cũng đủ làm cho Mean bị xê dịch.

Vậy thì, lời khuyên sử dụng Mann-Whitney U test là hợp lý, đối với trường hợp này khi sample nhỏ, bởi MWU Test không yêu cầu Phân bổ chuẩn (normal distribution), không phụ thuộc vào giá trị mean, quan trọng nhất là MWU test có thể áp dụng cho dữ liệu dạng ordinal, rất phù hợp cho các research của UX có tính qualitative (đánh giá mức độ hài lòng theo thang điểm 1-5 chẳng hạn), hay như chính trong bài giảng, secondary metrics là Mức độ dễ sử dụng ease of use từ 1-5. Với metrics này, gợi ý nên dùng MWU thay vì T-test, vì đây là dạng dữ liệu có tính thứ tự (ordinal) và là cảm tính, không đảm bảo khoảng cách đều nhau (interval) trong dữ liệu, cụ thể:

  • User thứ 1 cảm thấy “4” chỉ hơi tốt hơn “3”.

  • User thứ 2 thấy “4” cực kỳ tốt hơn “3”.

Không có gì đảm bảo cảm giác tốt hơn giữa 4 và 3 giữa 2 user là giống nhau. Ordinal chỉ đảm bảo thứ tự, không đảm bảo khoảng cách đều. Ví dụ nhé:

⭐ Bạn khảo sát Ease of Use trên 5 điểm:

  • User 1: 4

  • User 2: 4

  • User 3: 3

  • User 4: 5

  • User 5: 3

Cho ra Mean = 3.8.

Nhưng 3.8 không có nghĩa trên thang 1–5, vì ngay từ đẩu không có 3.8 trong lựa chọn. Khoảng cách giữa 3–4 và 4–5 không chắc đều nhau.

Trong khi đó, Mann-Whitney U tiếp cận đề bài này theo cách xếp hạng dữ liệu chứ không tính trung bình (mean). Tuy nhiên, cách làm như thế nào, mình sẽ không giải thích ở đây, mình muốn nói sâu hơn một chút về điểm yếu của Mann-Whitney U test.

Mann-Whitney U Test vẫn có một điểm cần thận trọng khi thực hiện test với sample nhỏ, cụ thể ở đây là chỉ khoảng 10 người trở lại. Đó là khi sample nhỏ, statistical power sẽ thấp, dẫn đến xác suất phát hiện được khác biệt thật sẽ thấp. Chúng ta có thể dùng Mann-Whitney U Test khi mà hiệu ứng, kết quả có sự khác biệt lớn. Ví dụ với metric Ease of use rating ở trên:

Giả sử kết quả mức độ dễ sử dụng cho ra giữa 2 design:

  • A: 3,4,4,3,4,3,3,4,4,3

  • B: 4,5,4,5,4,5,5,4,5,4

Đây là kết quả có “Hiệu ứng nhẹ” vù sự khác biệt nhỏ

Ngược lại nếu kết quả là:

  • A: 3,3,3,3,3,3,3,4,3,3

  • B: 5,5,5,5,5,4,5,5,5,5

Đây là kết quả có “Hiệu ứng mạnh”. Khi đó p-value của Mann-Whitney U test là p ≈ 0.003 → kết quả đáng tin cậy

  • Phù hợp cho ordinal, n nhỏ.

  • Dùng được và có thể chính xác dù cho n≤10.

  • Nhưng statistical power hạn chế → cần hiệu ứng đủ lớn để phát hiện với n nhỏ.

Vậy, bạn cần lưu ý khi present cho stakeholder:

“Mann-Whitney vẫn hoạt động chính xác với n nhỏ, nhưng nếu hiệu ứng nhẹ, ta sẽ cần nhiều người hơn để phát hiện ra sự khác biệt.”

Điều này dẫn đến một câu chuyện khác, cuối cùng thì mục đích A/B test với sample nhỏ của chúng ta là gì? Câu chuyện đằng sau mọi bài test này, cuối cùng chính là để chứng minh một thiết kế có tốt hơn hay không, và có đủ thuyết phục hay không, trong đặc thù làm sản phẩm với deadline ngắn, resource hạn chế. Thật không dễ dàng gì để có thể làm research interview với 5 users, chứ đừng nói là A/B test với 10-15 hay thậm chí 20 users.

Vậy thì, mình xin giới thiệu một cách tiếp cận khác, một trường phái thống kê có thể giúp chúng ta diễn giải kết quả A/B test phù hợp hơn với sample bé, đó là trường phái Bayesian.

Được rồi, lại thêm một thuật ngữ nữa 🤦‍♂️ dù sao thì mình cũng sẽ cố giải thích ngắn gọn dễ hiểu hơn cho mọi người nhé (đối với những ai còn mới mẻ với statistics và probability).

📊 Frequentist sẽ giải thích kết quả A/B dựa trên p-value và Null hypothesis (tức giả định ban đầu hay được ký hiệu là H0) – giả định ban đầu H0 cho rằng không có sự khác biệt giữa 2 phiên bản A và B. Sau đó chúng ta sẽ test giả thuyết H1 – cho rằng có sự khác biệt giữa design A và design B. Sau khi test, chúng ta sẽ tính ra p-value, nếu p-value là rất nhỏ, thường <0.05 (5%), tức là việc xảy ra giả định H1 một cách tình cờ (by chance) - lưu ý “by chance nha” - có xác xuất rất thấp, khi đó ta có đủ cơ sở để nghi ngờ giả định ban đầu (H0) là không đúng. Như vậy, giả định có sự khác biệt giữa design A và B là đúng (H1).

Tóm lại: P-value doesn’t tell us the probability that A and B are different. Instead, it answers:

‘If A and B were the same, how surprising would this data be?’

Hay:

A small p-value means “this result would be weird if there’s no difference.” A large p-value means “this result is normal even if there’s no difference.”

Như vậy, trong khi Frequentist giải thích sự không bình thường của dữ liệu nếu như A và B không có sự khác biệt, 🪬 Bayesian sẽ tiếp cận vấn đề như sau:

‘Given the data we observed, what’s the probability that B is better than A?’

Như vậy, chúng ta sẽ “quantify” niềm tin vào sự khác biệt giữa phiên bản B so với phiên bản A, cụ thể khi thực hiện Bayesian, chúng ta sẽ kết luận như sau:

“Dựa trên kết quả test, có XX% xác suất mà Design B sẽ dẫn đến kết quả time to complete nhanh hơn Design A.”

Vậy thì áp dụng vào Ví dụ A/B test của bài giảng xem như thế nào nhé. Cách tính chi tiết mình sẽ không trình bày ở đây, có thể sẽ post sau ở growth/product design community. Trong bài post này, mình sẽ đưa ra kết quả và cách diễn giải giữa 2 trường phái:

→ posterior probability: “Probability that mean_B < mean_A ≈ >99%.”

→ “Dựa trên kết quả test, có xác suất cao hơn 99% rằng Design B sẽ giúp user hoàn thành task nhanh hơn Design A.”

Hay → “Chúng ta có thể tự tin hơn 99% rằng Design B hiệu quả nhanh hơn Design A.”

“Chúng ta reject Giả thuyết ban đầu (H0) rằng design A và design B không có sự khác biệt (p ≈ 0.0012).”

Rõ ràng là thực tế sample size vẫn rất nhỏ (n=10), vì vậy, chúng ta sẽ communicate với stakeholder như sau:

“Dựa vào kết quả test với 10 users, mô hình Bayesian cho thấy có đến 99% cơ hội design B có hiệu quả nhanh hơn. Tuy nhiên, với sample nhỏ có thể vẫn chưa chính xác và có nhiễu, để generalize được kết quả, chúng ta cần sẽ test với nhiều user hơn.”

Khác biệt ở đây, là với Bayesian approach, chúng ta có thể quantify (định lượng hóa) mức độ tự tin với kết quả chỉ có 10 users, quan trọng là vẫn cho stakeholder thấy được chúng ta có bằng chứng, có thực nghiệm để yêu cầu thực hiện với sample lớn hơn. Đặc biệt là khi ta nói 99% xác suất với 10 users nghe vẫn có tính thuyết phục hơn so với p-value ≈ 0.0012, reject null hypothesis Design A và Design B không khác biệt trên 10 users, đúng không nào?

Như vậy, giả sử bạn vẫn chỉ có thể thực hiện A/B test cho sample size nhỏ, thay vì diễn giải với p-value, hãy thử tiếp cận bằng Bayesian, trong đó bạn hãy nhớ rằng

  • Phương pháp này rất phù hợp khi chúng ta thực hiện early research cho sản phẩm, sản phẩm ở giai đoạn mới bắt đầu, hoặc đối với startup với nguồn lực hạn chế cần validate nhanh.

  • Giúp diễn giải mức độ tin cậy khi thảo luận nội bộ với các stakeholders, dù là với sample nhỏ. Quan trọng là chúng ta xem nó như một indicator - yếu tố xác định xem có nên tiếp tục release sản phẩm ra sample lớn hơn (một phương pháp hypothesis driven design) và test tiếp hay không. Đây không phải là final proof.

Bằng cách này, chúng ta vẫn có thể linh động hơn trong research mà vẫn đảm bảo chất lượng kết quả, tập trung vào tìm giải pháp, nhất là trong bối cảnh ngành nghề product design hiện nay.

Phương pháp Frequentist rất phù hợp khi:

  • Bạn có tập dữ liệu lớn và sạch.

  • Các phép toán đơn giản, dễ hiểu và đã được chuẩn hóa.

  • Có yêu cầu từ quy định, ngành công nghiệp, hoặc chuẩn mực học thuật.

  • Bạn muốn dùng các phép kiểm định tiêu chuẩn (như t-test, ANOVA) với tính chất đã được biết rõ.

Phương pháp Bayesian rất phù hợp khi:

  • Bạn chỉ có cỡ mẫu nhỏ.

  • Bạn muốn kết hợp kiến thức trước đó (prior knowledge).

  • Bạn cần mô hình hóa sự bất định một cách rõ ràng.

  • Bạn quan tâm đến ra quyết định trong điều kiện bất định.

  • Bạn muốn có xác suất về tham số (chứ không chỉ về dữ liệu quan sát).

Đối với hầu hết trường hợp, là một product designer bạn có thể gặp nhiều khó khăn trong việc thực hiện A/B Test, hoặc gặp các vấn đề về sample size. Bài viết này hướng đến việc giúp bạn hiểu rõ hơn về A/B test với 2 hướng tiếp cận, qua đó bạn có thể linh động hơn trong các trường hợp khác nhau

Ngoài ra, sampling không chỉ là sample size, mà còn bao gồm cả lựa chọn sample đúng. Cụ thể từ nhóm user group của sản phẩm, chúng ta cần narrow xuống behavior phù hợp với tính năng đang muốn research hoặc mở rộng các use case thông qua differentiation của từng nhóm bên trong.

Cũng vì lý do này mà đôi khi cho dù có lựa chọn đúng sample size, đến khi research xong vẫn cho ra kết quả có vẻ... "cũng cũng" bởi rất nhiều bias ngầm gây ra do sample chưa đủ tốt. Đây là một chủ đề khác nếu có thời gian mình sẽ viết thêm sau.

Frequentist vs Bayesian

https://agostontorok.github.io/2017/03/26/bayes_vs_frequentist/

Tìm hiểu về Fisher’s Lady Tasting Tea: https://en.wikipedia.org/wiki/Lady_tasting_tea → thử nghiệm nổi tiếng giúp hiểu rõ hơn về p-value.

Read the original on thailam.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.