statistica

Calcolatore di Significatività per A/B Test

Il nostro A/B test è arrivato alla fine: la variante B mostra un tasso di conversione più alto della variante A. La tentazione di dichiarare il vincitore e implementare la modifica è forte. Ma prima c’è una domanda a cui rispondere, ed è la stessa che attraversa tutto il nostro percorso: la differenza che osserviamo è un segnale reale o solo rumore statistico?

Questo calcolatore è il complemento naturale del calcolatore di sample size: quello lavora prima del test e ci dice quanti utenti servono; questo lavora dopo e ci dice se il risultato ottenuto è statisticamente significativo. Chi ha letto l’articolo sul test delle ipotesi riconoscerà subito il meccanismo: dietro le quinte c’è un test z per il confronto tra due proporzioni.

L’uso è immediato: inseriamo visitatori e conversioni delle due varianti, scegliamo il livello di significatività, e il calcolatore restituisce p-value, verdetto e intervallo di confidenza della differenza.


Il calcolatore

I valori precaricati sono quelli dell’esempio che svolgeremo passo passo più sotto: possiamo sostituirli con i numeri del nostro test.

Calcolatore di significatività

Variante A (controllo)





Variante B







La formula: come funziona il calcolo

Il ragionamento è quello classico del test delle ipotesi. Partiamo dall’ipotesi nulla: le due varianti convertono allo stesso modo, e la differenza osservata è frutto del caso. Poi misuriamo quanto questa differenza è “sorprendente” se l’ipotesi nulla fosse vera: se è troppo sorprendente, l’ipotesi nulla non regge.

I protagonisti sono tre:

  • A e B: i tassi di conversione osservati delle due varianti (conversioni diviso visitatori).
  • : la proporzione pooled, cioè il tasso di conversione complessivo calcolato mettendo insieme i dati delle due varianti. Perché? Sotto l’ipotesi nulla le due proporzioni coincidono, e la stima migliore di quell’unica proporzione usa tutti i dati disponibili.
  • nA e nB: i visitatori delle due varianti.

La statistica del test misura la differenza osservata in unità di errore standard:

\( z = \frac{\hat{p}_B – \hat{p}_A}{\sqrt{\hat{p}(1-\hat{p})\left(\frac{1}{n_A} + \frac{1}{n_B}\right)}} \)

Il denominatore è l’errore standard della differenza: ci dice di quanto oscillerebbe la differenza tra i due tassi se ripetessimo il test molte volte, in un mondo dove le varianti sono identiche. Lo z risultante si legge sulla distribuzione normale: il p-value è la probabilità di osservare una differenza almeno così estrema, in un verso o nell’altro, per puro caso. “In un verso o nell’altro” non è un dettaglio: il test è a due code, perché prima di guardare i dati non sappiamo se B farà meglio o peggio di A.

Per orientarsi, i valori di riferimento sono sempre gli stessi:

  • |z| > 1.645 → significativo al 90%
  • |z| > 1.96 → significativo al 95%
  • |z| > 2.576 → significativo al 99%

Facciamo un esempio, con i numeri precaricati nel calcolatore. La variante A ha ricevuto 8.500 visitatori e 204 conversioni; la variante B 8.300 visitatori e 251 conversioni:

  • A = 204 / 8.500 = 0.0240 (2.40%)
  • B = 251 / 8.300 = 0.0302 (3.02%) — un lift relativo del +26%
  • p̂ pooled = (204 + 251) / (8.500 + 8.300) = 455 / 16.800 = 0.0271
  • errore standard = √[0.0271 × 0.9729 × (1/8.500 + 1/8.300)] = 0.00250
  • z = (0.0302 − 0.0240) / 0.00250 = 2.49

Dunque: z = 2.49 supera la soglia 1.96 e il p-value vale 0.0127. La differenza è significativa al 95% — ma, come si vede, non al 99% (0.0127 > 0.01). Lo stesso risultato, due verdetti diversi a seconda del rigore che abbiamo scelto: il livello di significatività va deciso prima di guardare i dati, non dopo.


Verifichiamo in R

Verifico il calcolo in R con prop.test, disattivando la correzione di continuità per restare allineati al calcolo manuale:

prop.test(c(251, 204), c(8300, 8500), correct = FALSE)

 2-sample test for equality of proportions
 without continuity correction

data:  c(251, 204) out of c(8300, 8500)
X-squared = 6.2075, df = 1, p-value = 0.01272
alternative hypothesis: two.sided
95 percent confidence interval:
 0.001325762 0.011156166
sample estimates:
    prop 1     prop 2
0.03024096 0.02400000

I conti tornano: il p-value è lo stesso del calcolo manuale, e la statistica X-squared non è altro che il nostro z al quadrato (2.49² ≈ 6.21 — il test chi quadrato su una tabella 2×2 e il test z su due proporzioni sono lo stesso test, come avevamo visto nell’articolo sul chi quadrato). In più, R ci regala l’intervallo di confidenza della differenza: tra 0.13 e 1.12 punti percentuali. È l’informazione più preziosa di tutte, e vediamo subito perché.


Come interpretare il risultato (senza farsi ingannare)

Significativo non vuol dire importante. Va sempre tenuto bene a mente: con campioni molto grandi, anche differenze irrisorie e commercialmente irrilevanti diventano statisticamente significative. La significatività ci dice che la differenza non è frutto del caso, non che sia grande. Per capire quanto è grande, guardiamo l’intervallo di confidenza della differenza: nel nostro esempio va da +0.13 a +1.12 punti percentuali. Se anche il limite inferiore giustifica lo sforzo di implementare la modifica, possiamo procedere con fiducia; se l’intervallo include valori trascurabili, il verdetto “significativo” da solo non basta.

Il p-value vale se il test si ferma quando deciso. Il calcolo presuppone che la dimensione campionaria sia stata fissata in anticipo (con il calcolatore di sample size) e che il test si fermi lì. Controllare i risultati ogni giorno e fermarsi al primo p-value sotto 0.05 — il famigerato peeking, come dicono gli anglosassoni — gonfia drasticamente i falsi positivi: è come lanciare una moneta finché non escono tre teste di fila e dichiarare la moneta truccata. Ne abbiamo parlato nella guida ai test statistici per le analisi A/B.

n.b.: il calcolatore usa un test a due code, la scelta prudente e standard. Esistono versioni a una coda che “premiano” l’ipotesi direzionale con p-value dimezzati, ma vanno usate solo quando la direzione dell’effetto è davvero nota a priori — nella pratica quotidiana degli A/B test, quasi mai.


Potrebbe interessarti anche


Il p-value risponde a una sola domanda: l’effetto esiste? Non ci dice quanto è grande, né se vale lo sforzo di implementarlo. Per quello servono altri due strumenti — l’effect size e la power analysis — ed è esattamente lì che il nostro percorso andrà nel prossimo articolo.


Per approfondire

Il riferimento più completo sulla conduzione rigorosa di esperimenti online resta Trustworthy Online Controlled Experiments di Ron Kohavi, Diane Tang e Ya Xu: il capitolo sulle insidie dell’interpretazione dei risultati (peeking incluso) vale da solo il prezzo del libro.

Paolo Gironi

Recent Posts

La biblioteca di Statistica e SEO: i libri che consiglio (e perché)

C'è una domanda che torna, puntuale, ogni volta che pubblico un articolo di questo percorso:…

1 giorno ago

Il Paradosso di Simpson nella SEO: quando i dati aggregati possono mentire

È l'ultimo giorno del mese. Stiamo preparando il report SEO per il cliente principale. Apriamo…

2 settimane ago

Campionamento e Dimensione Campionaria: Quanti Dati Servono?

In questo articolo: Come scegliere chi misurare: i tipi di campionamento La dimensione campionaria: la…

1 mese ago

Calcolatore Sample Size per A/B Test

Una delle domande più ricorrenti quando si progetta un A/B test è: quanti utenti mi…

3 mesi ago

Anomaly detection: come identificare valori anomali nei dati

Tre metodi statistici per identificare valori anomali nei dati: z-score, IQR di Tukey e test…

4 mesi ago

Statistica bayesiana: come imparare dai dati, un passo alla volta

Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, l'inferenza statistica da una prospettiva…

4 mesi ago