Randomisering og Stikprøvestørrelse
Stryg for at vise menuen
Tilfældig tildeling er grundlaget for pålidelige A/B-tests. Ved at tildele brugere til grupper tilfældigt sikrer du, at begge grupper er statistisk ens, hvilket reducerer risikoen for selektionsbias. Selektionsbias opstår, når visse brugere har større sandsynlighed for at ende i én gruppe frem for en anden, hvilket kan forvride resultaterne og føre til forkerte konklusioner. Uden korrekt randomisering kan forskelle mellem grupper skyldes underliggende karakteristika i stedet for den variabel, du tester.
Flere randomiseringsteknikker anvendes ofte i A/B-tests:
- Simpel randomisering: hver bruger har lige stor sandsynlighed for at blive tildelt en hvilken som helst gruppe, ofte ved brug af en tilfældighedsgenerator;
- Blokrandomisering: brugere grupperes i blokke, og inden for hver blok tildeles brugere tilfældigt til forskellige grupper for at opretholde balance gennem hele testen;
- Stratificeret randomisering: brugere opdeles i strata baseret på karakteristika (såsom alder eller placering), og randomisering sker inden for hvert stratum for at sikre, at alle undergrupper er repræsenteret.
Simpel randomisering er den mest ligetil og er ofte tilstrækkelig til de fleste digitale eksperimenter. Mere avancerede teknikker hjælper dog med at opretholde balance, når man arbejder med mindre stikprøver eller vigtige undergrupper.
1234567891011121314151617import random # Simulating random assignment of 20 users to groups 'A' and 'B' users = [f"user_{i+1}" for i in range(20)] groups = ['A', 'B'] # Dictionary to hold group assignments assignment = {} for user in users: # Randomly choosing a group for each user assigned_group = random.choice(groups) assignment[user] = assigned_group # Printing out the assignment for user, group in assignment.items(): print(f"{user} assigned to group {group}")
Bestemmelse af den rette stikprøvestørrelse er afgørende for pålideligheden af dine A/B-testresultater. En for lille stikprøve kan føre til upålidelige eller uklare resultater, mens en unødvendigt stor stikprøve spilder ressourcer. Stikprøvestørrelsen påvirker direkte testens statistiske styrke – sandsynligheden for at opdage en reel forskel, hvis en sådan findes.
Vigtige begreber i beregning af stikprøvestørrelse inkluderer:
- Mindste detekterbare effekt (MDE): den mindste forskel mellem grupper, du ønsker at kunne opdage;
- Signifikansniveau (alfa): sandsynligheden for et falsk positivt resultat (ofte sat til 0,05);
- Styrke (1 - beta): sandsynligheden for at opdage en reel effekt (ofte sat til 0,8 eller 80%).
Styrkeanalyse kombinerer disse faktorer for at estimere det mindste antal brugere, der er nødvendige i hver gruppe. Større effekter eller højere signifikansniveauer kræver færre brugere, mens mindre effekter eller højere styrke kræver flere brugere.
12345678910111213141516171819202122from scipy.stats import norm import math # Parameters for sample size calculation alpha = 0.05 # Significance level power = 0.8 # Desired power p1 = 0.10 # Baseline conversion rate (control group) p2 = 0.13 # Expected conversion rate (treatment group) effect_size = abs(p2 - p1) # Minimum detectable effect # Calculate pooled standard deviation pooled_prob = (p1 + p2) / 2 std_dev = math.sqrt(2 * pooled_prob * (1 - pooled_prob)) # Z-scores for alpha and power z_alpha = norm.ppf(1 - alpha / 2) z_beta = norm.ppf(power) # Sample size formula for two-proportion z-test n = ((z_alpha + z_beta) * std_dev / effect_size) ** 2 print(f"Required sample size per group: {math.ceil(n)}")
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat