Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Randomizzazione e Dimensione del Campione | Progettare Test A/B Efficaci
A/B Testing con Python

Randomizzazione e Dimensione del Campione

Scorri per mostrare il menu

L'assegnazione casuale è la base di test A/B affidabili. Assegnando gli utenti ai gruppi in modo casuale, si garantisce che entrambi i gruppi siano statisticamente simili, riducendo il rischio di bias di selezione. Il bias di selezione si verifica quando alcuni utenti hanno maggiori probabilità di finire in un gruppo rispetto a un altro, il che può distorcere i risultati e portare a conclusioni errate. Senza un'adeguata randomizzazione, le differenze tra i gruppi potrebbero essere causate da caratteristiche sottostanti piuttosto che dalla variabile che si sta testando.

Diverse tecniche di randomizzazione sono comunemente utilizzate nei test A/B:

  • Randomizzazione semplice: ogni utente ha la stessa probabilità di essere assegnato a qualsiasi gruppo, spesso utilizzando un generatore di numeri casuali;
  • Randomizzazione a blocchi: gli utenti sono raggruppati in blocchi e, all'interno di ciascun blocco, vengono assegnati casualmente ai diversi gruppi per mantenere l'equilibrio durante tutto il test;
  • Randomizzazione stratificata: gli utenti sono suddivisi in strati in base a caratteristiche (come età o posizione), e la randomizzazione avviene all'interno di ciascuno strato per garantire che tutti i sottogruppi siano rappresentati.

La randomizzazione semplice è la più diretta ed è spesso sufficiente per la maggior parte degli esperimenti digitali. Tuttavia, tecniche più avanzate aiutano a mantenere l'equilibrio quando si lavora con campioni di dimensioni ridotte o sottogruppi importanti.

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}")

Determinare la dimensione del campione corretta è fondamentale per l'affidabilità dei risultati di un test A/B. Un campione troppo piccolo può portare a risultati inaffidabili o inconcludenti, mentre un campione inutilmente grande spreca risorse. La dimensione del campione influisce direttamente sulla potenza statistica del test, ovvero la probabilità di rilevare una vera differenza se esiste.

I concetti chiave nel calcolo della dimensione del campione includono:

  • Effetto minimo rilevabile (MDE): la più piccola differenza tra i gruppi che si desidera poter rilevare;
  • Livello di significatività (alfa): la probabilità di un falso positivo (solitamente impostata a 0,05);
  • Potenza (1 - beta): la probabilità di rilevare un vero effetto (solitamente impostata a 0,8 o 80%).

L'analisi della potenza combina questi fattori per stimare il numero minimo di utenti necessari in ciascun gruppo. Effetti di dimensioni maggiori o livelli di significatività più alti richiedono meno utenti, mentre effetti più piccoli o una potenza maggiore richiedono più utenti.

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

Qual è il principale rischio di una scarsa randomizzazione o dell'utilizzo di una dimensione campionaria troppo piccola nei test A/B?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 2. Capitolo 2
some-alt