Jak obliczyć wielkość próby do testu A/B i kiedy wyniki są wiarygodne?

Cztery parametry wystarczą, żeby obliczyć wielkość próby do testu A/B i ocenić, czy wynik nadaje się do decyzji: bazowa konwersja, minimalny efekt do wykrycia, poziom istotności oraz moc testu. A/B testing polega na porównaniu dwóch wersji elementu na losowo podzielonym ruchu (najczęściej 50/50), więc patrzysz na realne zachowania użytkowników, a nie na deklaracje. Za mała próba łatwo produkuje przypadkowych „zwycięzców”, a zbyt szybkie zamknięcie testu psuje wniosek. Wiarygodność wyniku pojawia się dopiero wtedy, gdy próba została domknięta zgodnie z założeniami.

Co oznacza odpowiednia wielkość próby i jak ją ustalić

Przy CVR 4% ta sama liczba wejść może wystarczyć do jednej decyzji i kompletnie nie wystarczyć do drugiej. Odpowiednia wielkość próby nie oznacza więc po prostu „dużo ruchu”, tylko tyle obserwacji, ile potrzeba, by odpowiedzieć na konkretne pytanie biznesowe. Najpierw zapisujesz hipotezę liczbowo, a dopiero potem liczysz użytkowników.

Dla współczynnika konwersji na poziomie 4% wzrost do 4,1% i skok do 5,0% oznaczają dwa różne testy. Ten pierwszy wymaga znacznie więcej ruchu i cierpliwości (z 4% do 4,1%), drugi szybciej daje odpowiedź. Już na tym etapie zwykle widać, czy eksperyment ma sens przy twojej skali. Sposób wyboru hipotez przed startem opisujemy w osobnym poradniku o backlogu eksperymentów growth.[1]

Czym jest wielkość próby w eksperymencie

Plan „20 000 użytkowników” brzmi konkretnie, ale w eksperymencie liczy się podział na warianty. Wielkość próby to liczba użytkowników przypisana do każdej wersji, potrzebna do oceny, czy zmiana w CVR jest realna, czy mieści się jeszcze w naturalnym wahaniu danych. Przy podziale ruchu 50/50 takie „20 000 użytkowników” oznacza zwykle 10 000 osób dla wersji A i 10 000 dla wersji B (po 10 000 na stronę), bo wynik liczysz per wariant.[2]

Najmocniej na kalkulację działa minimalny wykrywalny efekt (MDE). Im mniejszą różnicę chcesz wychwycić, tym większej próby potrzebujesz. Dla sklepu z CVR 4,0% próg 4,4% bywa rozsądny, ale cel 4,1% mocno podbija wymaganą liczbę użytkowników, nawet przy 95% poziomu ufności i 80% mocy statystycznej (to właśnie ten zestaw ustawień pojawia się najczęściej). Przy bazie 4,0% i celu 4,1% test potrafi ciągnąć się długo. Wielkość próby działa więc jak filtr decyzji: od razu pokazuje, które pomysły brzmią dobrze, lecz przy twoim ruchu będą trwały za długo. Po domknięciu eksperymentu trzeba jeszcze przełożyć wynik na zmiany na stronie, o czym piszemy w Jak zoptymalizować współczynnik konwersji na podstawie danych z eksperymentów?[3]

Krok po kroku: jak obliczyć wielkość próby w teście A/B

Najpierw wpisujesz bazowy wynik, MDE, poziom istotności i moc testu, a dopiero potem patrzysz, czy ruch dowiezie taki plan w sensownym czasie. To zwykła procedura robocza, nie szybki szacunek. Na końcu zostaje jeszcze jedno pytanie: czy przy twoim tempie ruchu ten test w ogóle warto uruchamiać.

Jak rozpoznać małą lub dużą próbę

30 konwersji na wariant to często pierwszy próg, przy którym wynik zaczyna cokolwiek mówić. Mała próba daje chwiejny obraz, a duża próba utrzymuje kierunek różnicy, gdy dopływają kolejne dane. W praktyce bardziej liczy się liczba konwersji oraz zachowanie p-value względem progu 0,05 (nie sama liczba wizyt).

  • Najpierw policz konwersje w każdym wariancie, używając zamkniętego zakresu danych z jednej emisji. Gdy widzisz mniej niż 30 konwersji na wersję, rezultat jest raczej orientacyjny niż decyzyjny.[4]
  • Potem sprawdź wynik dzień po dniu, ale tylko wtedy, gdy w trakcie testu nie zmieniałeś kreacji ani targetowania. Lider, który zamienia się miejscami po każdym większym skoku ruchu, zwykle mówi jedno: próba nadal jest za mała.
  • A co z p-value? Patrz na nie po sensownych przyrostach danych, nie po każdej godzinie. Jeśli metryka długo nie zbliża się do 0,05, obecna próbka nie unosi zakładanego efektu.

Jak ustalić liczebność próby w praktyce

28 dni danych zwykle wystarcza, by złapać punkt wyjścia bez patrzenia na pojedyncze skoki. Wielkość próby liczysz od hipotezy i warunków pomiaru, a nie od samego dziennego ruchu. Użyteczna próbka łączy historyczny wynik, losowy podział ruchu, MDE i realne tempo pozyskiwania użytkowników.

  • Jedna metryka główna wystarczy na start. Weź dane historyczne z ostatnich 28 dni i nie mieszaj kilku wskaźników w jednej kalkulacji.[5]
  • Potem oszacuj aktualny poziom tej metryki na podstawie stabilnego okresu. Gdy baza pokazuje CVR 6,2%, możesz zapisać hipotezę liczbowo.[6]
  • Co ma być zmianą wartą wdrożenia? MDE zapisujesz tak, by uwzględniał koszt wdrożenia i potencjalny zysk. Jeśli sens ma dopiero wzrost do 7,1%, właśnie ten próg wkładasz do kalkulatora.[7]
  • Ustaw poziom istotności statystycznej oraz moc testu. Kalkulator zwróci minimalną liczbę obserwacji na wariant.
  • Przelicz to na czas. Przy 18 400 użytkowników na wersję i średnio 2 300 wejść dziennie plan testu to około 16 dni. Taki harmonogram szybko studzi zbyt optymistyczne terminy.[3]
  • Na końcu zamroź warunki stopu, mając policzoną próbę i datę końca. Dzięki temu chwilowy skok wyniku nie zamyka testu przedwcześnie, a zasady oceny masz spisane jeszcze przed startem; ten moment decyzji rozwija też Jak ocenić wyniki eksperymentu growth i zdecydować o skalowaniu?.

Od czego zależy reprezentatywność próby

Czy duża próba zawsze daje wiarygodny wynik? Sama liczba użytkowników nie wystarcza. Reprezentatywność zależy od tego, czy losowy podział naprawdę miesza podobnych użytkowników w obu wariantach i czy test obejmuje zwykłe warunki działania produktu.

  • Na początku porównaj strukturę ruchu w wariantach: urządzenia, źródła oraz nowych i powracających użytkowników. Gdy udział mobile różni się między wersjami o 8 punktów procentowych, mierzysz miks ruchu zamiast efektu zmiany.[8]
  • Druga rzecz to czas trwania. Uruchom test od początku do końca tygodnia, żeby próbka objęła różnice między dniami roboczymi a weekendem.
  • Użytkownicy, którzy wracają kilka razy przed konwersją, muszą widzieć tę samą wersję. Bez tej spójnej ekspozycji raporty zaczynają się rozjeżdżać, a problem bywa po stronie pomiaru i atrybucji (Dlaczego eksperymenty A/B dają sprzeczne wyniki w różnych narzędziach?).[9]

Jaka wielkość próby jest najczęściej wystarczająca

1 000 użytkowników na wariant wystarcza wyłącznie w prostszych testach z wysokim odsetkiem konwersji. W większości przypadków to za mało, by wynik prowadził do decyzji. Lepiej patrzeć na liczbę konwersji i szerokość niepewności niż na samą liczbę sesji.[10]

Kontekst Przykładowe liczby i efekty
Wysoki CVR (np. 12%) 1 000 użytkowników daje około 120 konwersji, więc wynik szybciej nabiera ciężaru decyzyjnego.
Niski CVR (np. 0,8%) Taka sama próbka to zaledwie 8 konwersji, więc margines błędu będzie bardzo szeroki.[11]
Typowy próg roboczy 150–200 konwersji na wariant często wystarcza w prostszych testach formularzy lub landing page’y, gdy zmiana jest wyraźna i dobrze mierzona.[12]
Test większych zmian Próbka powinna być dopasowana do skali eksperymentu, bo lokalna poprawka i decyzja o rolloutcie wymagają innego poziomu pewności. Szerzej ten podział opisuje Jak growth experiment różni się od zwykłego testu?.

Przed wdrożeniem spójrz jeszcze na przedział możliwych wyników. Gdy mieści zarówno sensowny wzrost, jak i realny spadek, uczciwy wniosek brzmi: „brak podstaw do decyzji”. Taki finał zdarza się częściej, niż sugeruje sam wykres.

Najczęstsze błędy przy szacowaniu wielkości próby

Jakie są skutki zbyt małej próby

Po 2 dniach test potrafi świecić na zielono, a po 11 dniach ten sam wariant kończy 3% niżej od wersji A. Tak wygląda klasyczny efekt zbyt małej próby. Błąd nie bierze się z samej liczby wizyt, tylko z braku dość mocnego sygnału, który oddzieliłby realną zmianę od zwykłego szumu.

Te pułapki wracają w testach najczęściej i każda prowadzi do kosztownej decyzji. Jedna kończy się wdrożeniem pozornego zwycięzcy, inna odrzuceniem zmiany, która działała. W notatkach z eksperymentów ten wzór pojawia się regularnie.

  • Najbardziej kusi zatrzymanie testu przy pierwszym „zielonym” wyniku (peeking problem). W małej próbce kilka dodatkowych konwersji wystarczy, by lider wskoczył na górę, a potem z niej spadł. Regułę stopu ustaw przed startem i trzymaj się jej.
    Przykład: po 2 dniach wariant B wydaje się lepszy o 18%, ale po 11 dniach kończy 3% niżej od wersji A.
  • Sesje potrafią napompować liczebność bardziej, niż wynika to z liczby ludzi. Gdy użytkownik wraca kilka razy przed zakupem, jednostką analizy powinien być użytkownik zgodny z losem przypisania do wariantu, a nie każda kolejna wizyta.
    Przykład: 600 osób generuje 1 400 sesji, więc raport wygląda solidnie, choć decyzję opierasz na zaledwie 600 unikalnych użytkownikach.
    [14][13]
  • 4 dni testu to często za mało. Taki wycinek łapie tylko fragment tygodniowego rytmu ruchu, zwłaszcza gdy w środku wpada kampania mailingowa.
    Przykład: test trwa 4 dni i wpada na środową kampanię mailingową, która podwaja udział powracających użytkowników; zwycięzca wynika wtedy bardziej z miksu ruchu niż z wersji strony.
    [15]
  • A co z podziałem ruchu? Przy małej próbce nierówny albo zanieczyszczony podział potrafi wypaczyć wynik szybciej, niż zdążysz to zauważyć. Przed interpretacją sprawdź, czy oba warianty dostają podobne wejścia.
    Przykład: wersja A dostaje 70% wejść z brandu, a wersja B 45%; przy takiej dysproporcji nawet poprawna zmiana może przegrać, bo trafiła na trudniejszy ruch.
    [16]
  • Brak wyraźnej różnicy bywa mylony z dowodem, że zmiana nie działa. Przy małej próbie częściej dostajesz wynik nierozstrzygnięty i właśnie tak trzeba go zapisać.
    Przykład: zmiana checkoutu kończy się przy 19 zakupach na wariant i zespół ją odrzuca; po ponownym teście na większym wolumenie okazuje się, że ta sama modyfikacja daje wzrost o 6%.
    [17]

Praktyczna zasada jest prosta: przy 19 zakupach na wariant nie wdrażaj zmiany tylko dlatego, że raport przez chwilę świecił na zielono. W takim momencie uczciwsza decyzja brzmi „nierozstrzygnięty”, a zespół wraca do testu dopiero po zebraniu większego wolumenu.

Źródła

  1. https://optimizely.com/insights/blog/sample-size-calculations-for-experiments/
  2. https://optimizely.com/sample-size-calculator/
  3. https://support.optimizely.com/hc/en-us/articles/4410283338253-Use-minimum-detectable-effect-to-prioritize-experiments
  4. https://cxl.com/blog/linkedin-ads-experimentation/
  5. https://convert.com/frequently-asked-questions/
  6. https://support.optimizely.com/hc/en-us/articles/4410283969165-How-long-to-run-an-experiment
  7. https://convert.com/blog/a-b-testing/minimum-detectable-effect-mde-ab-testing/
  8. https://cxl.com/blog/ab-testing-guide/
  9. https://support.optimizely.com/hc/en-us/articles/4410289514509-Discrepancies-in-third-party-data
  10. https://support.convert.com/hc/en-us/articles/204506349-project-configuration
  11. https://convert.com/blog/a-b-testing/i-dont-have-enough-traffic-to-a-b-test-now-what/
  12. https://convert.com/glossary/sample-size/
  13. https://statsig.com/perspectives/unique-visitors-sessions-ab-testing-insights
  14. https://docs.statsig.com/experiments/overview
  15. https://cxl.com/blog/12-ab-split-testing-mistakes-i-see-businesses-make-all-the-time/
  16. https://world.optimizely.com/contentassets/0911e2a50a6a4b6ab1bbeb3e938c530e/auto-srm-detection-1-pager.pdf
  17. https://statsig.com/perspectives/ab-test-sample-size

By Dorian

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *