A/B-test och experimentdesign
Kunna designa ett kontrollerat experiment, beräkna stickprovsstorlek och undvika p-hacking.
Förkunskaper
Intuition
Ett A/B-test randomiserar användare till två varianter och mäter en förbestämd metrik. Randomiseringen är det som gör orsakssambandet giltigt — allt annat är i genomsnitt lika mellan grupperna.
Innan testet startar ska du ha bestämt:
- Primär metrik — en enda. (Sekundära får rapporteras, men de avgör inte.)
- Minsta intressanta effekt (MDE) — hur stor skillnad är värd att agera på?
- Stickprovsstorlek ur MDE, baslinje, α = 0,05 och styrka 0,8.
- Testets längd — minst en hel vecka (veckodagseffekter).
- Stoppregel.
Skriv ner det. Annars blir varje resultat efterhandskonstruerat.
Formellt
Stickprovsstorlek per grupp för att upptäcka en absolut skillnad i andelar kring baslinjen :
Med (z = 1,96) och styrka 0,8 (z = 0,84) blir konstanten .
Exempel: , vill upptäcka (10 % → 11 %): 14 100 per grupp.
Tre fällor:
- Peeking: titta varje dag och stoppa när p < 0,05 → den faktiska falsklarmsrisken blir 20–30 %, inte 5 %. Lösning: förbestämd längd, eller sekventiella test (always-valid p-values).
- Multipla metriker: 20 metriker ger i snitt en «signifikant» av slump. Korrigera eller förbestäm en.
- Interferens: användare påverkar varandra (sociala nätverk, marknadsplatser) → randomisera på grupp- eller marknadsnivå i stället.
Kod
from math import ceil
def n_per_grupp(baslinje, mde_absolut, alfa=0.05, styrka=0.8):
z = {0.05: 1.96}[alfa] + {0.8: 0.84, 0.9: 1.28}[styrka]
return ceil(2 * z**2 * baslinje * (1 - baslinje) / mde_absolut**2)
for mde in (0.005, 0.01, 0.02):
print(f"MDE {mde:.1%}: {n_per_grupp(0.10, mde):>7,} per grupp")
# MDE 0.5%: 56,376 per grupp
# MDE 1.0%: 14,094 per grupp
# MDE 2.0%: 3,524 per grupp
Halverad MDE → fyrdubblat n. Det är därför små förbättringar kräver stor trafik — och varför team med lite trafik ska testa stora förändringar, inte knappfärger.
Behärskning innebär
- Designar ett A/B-test med förbestämd metrik
- Beräknar nödvändig stickprovsstorlek
- Undviker p-hacking och peeking
Logga in för att göra övningarna och bygga upp din behärskning.
Källor
- Wikipedia — A/B testing (CC BY-SA 4.0) — CC BY-SA 4.0
- Kohavi m.fl. — Trustworthy Online Controlled Experiments (referens) — fri läsning