A/B testing i eksperymenty - kompendium praktyczne
Dobry eksperyment zaczyna się przed zobaczeniem wyników: hipoteza, primary metric, guardraile, populacja i warunek zakończenia powinny być ustalone wcześniej. Dzięki temu test ogranicza ryzyko dopasowania interpretacji do wyniku.
Powiązane tematy: Web analytics i tagging, Testowanie oprogramowania oraz Web Performance.
1. Czym jest A/B test
A/B test porównuje dwie lub więcej wersji rozwiązania na losowo podzielonym ruchu.
Przykład:
A - obecny przycisk
B - nowy przycisk
Celem jest sprawdzenie, czy zmiana wpływa na wybraną metrykę.
2. Hipoteza
Dobry eksperyment zaczyna się od hipotezy.
Przykład:
Jeśli uprościmy formularz,
to wzrośnie odsetek jego ukończenia,
bo użytkownik będzie miał mniej pól do wypełnienia.
Hipoteza powinna mieć:
- zmianę,
- oczekiwany efekt,
- uzasadnienie,
- metrykę.
3. Primary metric
Wybierz główną metrykę przed startem testu.
Przykłady:
- conversion rate,
- completion rate,
- revenue per user,
- activation rate.
Nie wybieraj zwycięskiej metryki po zobaczeniu wyników.
4. Guardrail metrics
Guardrails chronią przed poprawą jednego wyniku kosztem innego.
Przykład:
primary: conversion
guardrail: error rate
guardrail: page performance
5. Randomizacja
Użytkownicy powinni być przydzielani losowo.
Typowy podział:
50% A
50% B
Przydział powinien być stabilny dla tego samego użytkownika lub jednostki eksperymentalnej.
6. Jednostka eksperymentu
Może to być:
- user,
- session,
- account,
- device.
Wybór zależy od produktu.
7. Sample size
Za mała próba zwiększa ryzyko błędnych wniosków.
Na wymaganą próbę wpływają:
- baseline,
- oczekiwany efekt,
- poziom istotności,
- moc testu,
- wariancja.
Nie kończ testu po pierwszym „ładnym” wyniku.
8. Minimum Detectable Effect
MDE to najmniejsza zmiana, którą test ma sensownie wykrywać.
Im mniejszy MDE, tym zwykle większa potrzebna próba.
9. Statistical significance
Istotność statystyczna nie oznacza automatycznie znaczenia biznesowego.
Przykład:
+0.1% może być statystycznie istotne,
ale operacyjnie bez znaczenia.
10. Confidence interval
Przedział ufności pokazuje zakres niepewności estymowanego efektu.
Nie patrz wyłącznie na pojedynczy punkt.
11. Peeking
Ciągłe sprawdzanie wyniku i zatrzymywanie testu „gdy wygląda dobrze” może zwiększać ryzyko fałszywego wyniku.
Trzymaj się wcześniej ustalonego planu albo używaj metod zaprojektowanych do sequential testing.
12. Multiple comparisons
Jeśli testujesz wiele wariantów i metryk, rośnie ryzyko przypadkowego „znalezienia” efektu.
Im więcej porównań, tym ostrożniej interpretuj wynik.
13. Novelty effect
Nowa wersja może chwilowo działać lepiej tylko dlatego, że jest nowa.
Dłuższy test pomaga odróżnić trwały efekt od krótkiego zainteresowania.
14. Seasonality
Nie porównuj testu prowadzonego tylko przez nietypowy dzień lub wydarzenie.
Uwzględnij:
- dni tygodnia,
- weekend,
- sezon,
- kampanie,
- awarie.
15. Sample Ratio Mismatch
Jeśli planowano 50/50, a dane pokazują np. 70/30, może być problem z eksperymentem.
To ważny sygnał diagnostyczny.
16. A/A test
Porównuje identyczne wersje.
Przydaje się do sprawdzenia:
- randomizacji,
- pipeline'u danych,
- wariancji,
- poprawności platformy.
17. Feature flag
Eksperyment często jest wdrażany przez feature flag.
Przykład:
new_checkout = true/false
Flaga powinna mieć właściciela i plan usunięcia.
18. Segmentacja
Po zakończeniu można analizować segmenty, ale ostrożnie.
Przykłady:
- mobile vs desktop,
- new vs returning,
- kraj,
- źródło ruchu.
Analiza segmentów po fakcie jest bardziej eksploracyjna niż potwierdzająca.
19. Eksperyment techniczny
Nie każdy test dotyczy wyglądu.
Można testować:
- algorytm sortowania,
- cache,
- rekomendacje,
- onboarding,
- routing,
- sposób ładowania danych.
20. Eksperyment a rollout
A/B test:
mierzy wpływ
Rollout:
kontroluje wdrożenie
Można robić rollout bez eksperymentu.
21. Dokument eksperymentu
Przed startem zapisz:
hipoteza
warianty
primary metric
guardrails
jednostka
podział ruchu
czas / warunek zakończenia
ryzyka
22. Raport
Po teście:
- wynik,
- niepewność,
- wpływ na guardrails,
- problemy techniczne,
- decyzja,
- czego się nauczono.
23. Typowe błędy
- brak hipotezy,
- kilka primary metrics,
- kończenie testu za wcześnie,
- zmiana testu w trakcie,
- błędny tracking,
- nierówny podział,
- interpretowanie korelacji jako przyczyny,
- ignorowanie negatywnych guardrails.
24. Kiedy nie robić A/B
Nie warto, gdy:
- ruch jest bardzo mały,
- zmiana jest oczywistym bugfixem,
- ryzyko wariantu jest niedopuszczalne,
- wynik będzie zdominowany przez jednorazowe wydarzenie.
25. Co trzeba umieć
- sformułować hipotezę,
- wybrać primary metric,
- rozumieć sample size i MDE,
- unikać peeking,
- sprawdzać SRM,
- rozumieć guardrails,
- odróżniać eksperyment od rollout.
Źródła i dalsza lektura
- Microsoft Experimentation Platform: https://www.microsoft.com/en-us/research/group/experimentation-platform-exp/
- NIST Engineering Statistics Handbook: https://www.itl.nist.gov/div898/handbook/