Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Randomisering og Stikprøvestørrelse | Design af Effektive A/B-Tests
A/B-testning med Python

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.

1234567891011121314151617
import 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.

12345678910111213141516171819202122
from 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)}")
question mark

Hvad er den største risiko ved dårlig randomisering eller brug af for lille stikprøvestørrelse i A/B-testning?

Vælg det korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 2. Kapitel 2
some-alt