Nella vita di tutti i giorni, come nella web analytics, dobbiamo spesso prendere decisioni basate su informazioni incomplete. Quanti dati mi servono per capire se questa modifica alla landing page ha funzionato? Mille visite bastano? Diecimila sono troppe?
Non possiamo quasi mai misurare l’intera popolazione (ad esempio, tutti i futuri visitatori di un sito). Dobbiamo lavorare su un campione. E qui sta l’equilibrio delicato: un campione troppo piccolo porta a conclusioni sbagliate, uno inutilmente grande fa sprecare tempo e risorse. La domanda diventa allora: quanti dati ci servono davvero?
Prima di capire quanti dati ci servono, dobbiamo capire come raccoglierli. I tre metodi principali sono:
L’intuizione è semplice: più è piccolo l’effetto che cerchiamo (o più i dati sono variabili), più dati ci servono per distinguerlo dal rumore di fondo. Sembra difficile da formalizzare? È più lineare di quanto sembri.
Per calcolare il numero esatto, ci servono tre ingredienti:
La formula per stimare una proporzione (come il Conversion Rate) è:
n = (Z² × p(1 – p)) / E²
Facciamo un esempio al volo. Vogliamo stimare il Conversion Rate di una nuova pagina con un margine di errore dell’1% (0.01) e un livello di confidenza del 95% (Z = 1.96). Per cautela, impostiamo p = 0.5.
Gli esempi seguono sia in R sia in Python: ognuno scelga il linguaggio con cui ha più familiarità.
Calcoliamo in R:
# Calcolo della dimensione campionaria per una proporzione
Z <- 1.96
p <- 0.5
E <- 0.01
n <- (Z^2 * p * (1-p)) / E^2
print(paste("Dimensione necessaria:", round(n)))
# Output: Dimensione necessaria: 9604 Verifichiamo in Python:
# Calcolo della dimensione campionaria per una proporzione
Z = 1.96
p = 0.5
E = 0.01
n = (Z**2 * p * (1-p)) / E**2
print(f"Dimensione necessaria: {round(n)}")
# Output: Dimensione necessaria: 9604 Come si vede, servono circa 9.604 utenti per avere quella precisione. n.b.: se accettassimo un margine di errore del 2% (E=0.02), il numero crollerebbe a circa 2.401. È l’effetto dell’E al quadrato a denominatore: dimezzare la pretesa di precisione significa dividere per quattro il campione richiesto. Va sempre tenuto bene a mente quando si decide quale margine accettare.
La formula vista finora serve a stimare una singola proporzione. Ma nella pratica quotidiana della CRO (Conversion Rate Optimization) il problema è quasi sempre un altro: confrontare due proporzioni, come in un A/B test.
In quel caso la logica è la stessa, ma la formula si complica perché entrano in gioco due concetti nuovi: l’Effect Size (la minima differenza che vogliamo rilevare) e la Potenza Statistica (come dicono gli anglosassoni, power).
Per evitare di calcolarlo a mano ho preparato un calcolatore interattivo del sample size per A/B test: fa il lavoro sporco al posto nostro e indica anche per quanti giorni far girare il test, dato il traffico medio della pagina.
Va sempre tenuto bene a mente un punto, prima di chiudere. L’errore di campionamento (quello che la formula gestisce) è inevitabile e si riduce aumentando i dati. Ma c’è un nemico molto più insidioso, e nessuna formula lo cattura: il bias.
Se testiamo una pagina solo durante il weekend, possiamo anche raccogliere un milione di visite (errore campionario praticamente nullo), ma il campione non sarà rappresentativo degli utenti infrasettimanali. Dunque: nessuna formula può salvare un campione distorto all’origine. Meglio mille osservazioni ben raccolte di un milione raccolte male.
Una pagina prodotto riceve circa 10.000 impressioni al mese su Google, con un CTR osservato del 3,5%. Vogliamo stimare il vero CTR con un margine di errore di 1 punto percentuale (E = 0,01) e una confidenza del 95%.
Suggerimento: in R basta una funzione minima — sample_size <- function(Z, p, E) ceiling((Z^2 * p * (1-p)) / E^2) — da chiamare due volte con i due valori di p.
Adesso sappiamo come raccogliere un campione adeguato e quanti dati ci servono. Resta una domanda: come usiamo quel campione per confrontare in modo rigoroso due versioni della stessa pagina? È qui che entra in gioco l’A/B testing vero e proprio, ed è il prossimo tassello del percorso.
Se vuoi approfondire il tema del campionamento, dei bias che possono distorcerlo e della logica dell’inferenza statistica, L’arte della statistica di David Spiegelhalter è il compagno di viaggio più adatto. Spiegelhalter dedica pagine illuminanti a casi reali — sondaggi sbagliati, campioni di convenienza, statistiche che ingannano — e mostra come la matematica del campionamento valga poco senza una riflessione attenta su come i dati vengono raccolti.
Una delle domande più ricorrenti quando si progetta un A/B test è: quanti utenti mi…
Tre metodi statistici per identificare valori anomali nei dati: z-score, IQR di Tukey e test…
Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, l'inferenza statistica da una prospettiva…
Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, come funziona il test delle…
Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, la distribuzione normale e le…
Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, come funziona il test delle…