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

