La metodologia classica di test A/B si basa su una dimensione campionaria fissa: attendi di raggiungere il numero di visitatori precalcolato, poi calcoli la significatività statistica e infine decidi. Questo approccio ha funzionato negli anni 2010 perché il traffico era costoso e i test potevano durare mesi. Nel 2026 il performance marketing opera in cicli settimanali, il creative refresh avviene ogni 14 giorni, la strategia di campagna cambia mensilmente. Testare una variante di landing page per 6 settimane non è più un lusso — è una perdita. Il test A/B bayesiano risolve questo problema con un meccanismo decisionale sequenziale: ogni giorno la distribuzione posteriore si aggiorna, e nel momento in cui raggiungi la soglia di confidenza, interrompi il test e pubblichi il vincitore.
La Trappola della Dimensione Campionaria nel Test Frequentist
Il test A/B frequentist classico si basa sulla condizione p-value < 0.05. Per raggiungere questa soglia, esegui in anticipo un'analisi di potenza: se punti a una baseline del 5% di conversione, un lift relativo del 10% e una potenza statistica dell'80%, hai bisogno di almeno 3100 utenti per variante. Con 500 visitatori unici al giorno, il test dura 12 giorni. Il problema è questo: al 5º giorno la variante B sta chiaramente vincendo, ma non hai ancora significatività statistica — devi aspettare. Al 12º giorno la significatività arriva, ma il competitor ha già lanciato una landing page diversa, il messaggio è invecchiato. Il test frequentist ha un doppio danno: se decidi troppo presto commetti un errore di Tipo I (falso positivo), se aspetti troppo subisci un costo opportunità.
Il sequential testing esiste anche nel framework frequentist (correzione di Bonferroni, alpha spending functions), ma è complesso. Devi allocare il budget alpha per ogni analisi intermedia — se vuoi fermarti presto, il valore critico si indurisce. Il risultato: il test si allunga o la confidenza diminuisce.
L'approccio bayesiano ti libera da questo dilemma perché ogni osservazione è nuova informazione — la posteriore precedente diventa la priore attuale. La dimensione campionaria non è fissa, è sequenziale. Ogni giorno la distribuzione posteriore si aggiorna, e quando "la probabilità che B sia migliore di A superi il 95%", interrompi e pubblichi. Fermarsi presto non è una penalità, è una caratteristica.
Distribuzione Posteriore e Aggiornamento Sequenziale
Nel test bayesiano inizi con una distribuzione priore: la tua convinzione precedente sul tasso di conversione. Se stai testando una landing page di e-commerce, la baseline potrebbe essere del 3% di conversione con una deviazione standard del 0.5% (basato sui dati passati). Questo diventa una priore Beta(30, 970). Nei primi 100 visitatori, la variante B registra 4 conversioni. La posteriore si aggiorna così:
Priore: Beta(α=30, β=970)
Likelihood: 4 successi, 96 fallimenti
Posteriore: Beta(α=30+4, β=970+96) = Beta(34, 1066)
Media posteriore = 34/(34+1066) = 0.0309 (3.09%). Il giorno seguente arrivano 200 visitatori con 7 conversioni. La posteriore di ieri diventa la priore di oggi:
Priore: Beta(34, 1066)
Likelihood: 7 successi, 193 fallimenti
Posteriore: Beta(41, 1259)
Media posteriore = 0.0316 (3.16%). Nel frattempo, la variante A ha registrato 500 visitatori con 14 conversioni. La posteriore di A = Beta(44, 1456), media = 0.0293. A questo punto confronti le due distribuzioni posteriori: calcoli P(B > A) estraendo 10000 campioni tramite simulazione Monte Carlo e conteggiando quante volte B è maggiore. Se il risultato è il 73%, non sei ancora sicuro. Al 5º giorno P(B > A) = 96% — hai raggiunto la tua soglia decisionale (95%) e interrompi il test.
Nel test frequentist questo è impossibile. Ogni sguardo intermedio crea il rischio di inflazione alfa, problema di confronti multipli. Nel bayesiano, ogni giorno la posteriore si aggiorna, ma il criterio decisionale rimane stabile: il livello di confidenza. Fermarsi presto non introduce bias perché l'inferenza bayesiana è condizionata alla likelihood — non c'è obbligo di fissare la dimensione campionaria.
Implementazione Pratica: Regola di Arresto e Scelta della Soglia
Il test A/B bayesiano è facile da impostare, ma richiede disciplina nella regola di arresto. Devi definire tre soglie:
1. Dimensione campionaria minima (rete di sicurezza): Evita di fermarti troppo presto. Non decidere con meno di 100 utenti per variante — la varianza posteriore è troppo ampia e il rischio di falso positivo è alto. Nel white paper di Google Optimize 2019 si consigliavano 250 conversioni, in pratica 50-100 conversioni sono sufficienti (dipende dalla forza della priore).
2. Soglia di confidenza: P(B > A) > 0.95 è la scelta classica. Se vuoi una decisione più aggressiva, usa 0.90; per test conservativi, 0.97. Se l'impatto finanziario è alto (modifiche al flusso di checkout), scegli 0.99.
3. Significatività pratica (soglia di lift): Una differenza statistica dello 0.5% di lift relativo potrebbe essere significativa dal punto di vista statistico, ma irrilevante dal punto di vista aziendale. Imposta una soglia pratica come lift > 5%. Calcola non solo P(B > A), ma anche P(B > A * 1.05).
Esempio di codice (Python + PyMC):
import pymc as pm
import numpy as np
# Priore: Beta(30, 970) — baseline 3%
with pm.Model() as model:
p_A = pm.Beta("p_A", alpha=30, beta=970)
p_B = pm.Beta("p_B", alpha=30, beta=970)
# Dati osservati
obs_A = pm.Binomial("obs_A", n=500, p=p_A, observed=14)
obs_B = pm.Binomial("obs_B", n=500, p=p_B, observed=18)
trace = pm.sample(5000, return_inferencedata=True)
# Confronto posteriore
p_B_samples = trace.posterior["p_B"].values.flatten()
p_A_samples = trace.posterior["p_A"].values.flatten()
prob_B_better = np.mean(p_B_samples > p_A_samples)
prob_lift_5pct = np.mean(p_B_samples > p_A_samples * 1.05)
print(f"P(B > A) = {prob_B_better:.2%}")
print(f"P(B > A*1.05) = {prob_lift_5pct:.2%}")
Questo codice si esegue ogni giorno; quando prob_B_better > 0.95 e prob_lift_5pct > 0.80, interrompi il test. Se queste condizioni si verificano al 5º giorno, mentre il frequentist aspetta 12 giorni, tu guadagni 7 giorni.
Trade-off: Scelta della Priore e Analisi di Sensibilità
Il punto critico dei test bayesiani è la scelta della priore, che è soggettiva. Se usi una priore debole (Beta(1, 1) — uniforme), la posteriore dipende interamente dai dati e la convergenza è lenta. Se usi una priore forte (Beta(300, 9700)), la convinzione precedente domina la posteriore — l'impatto dei nuovi dati è ridotto. Serve un equilibrio.
Strategia di scelta della priore:
| Scenario | Priore | Motivo |
|---|---|---|
| Nuovo prodotto, nessun dato | Beta(1, 1) | Uniforme, lascia che i dati parlino |
| Pagina simile disponibile | Beta(α=30, β=970) | Informazione sulla conversione passata al 3% |
| Lancio aggressivo | Beta(3, 97) | Priore debole, convergenza veloce |
| Checkout critico | Beta(300, 9700) | Priore forte, aggiornamento conservatore |
Per testare l'impatto della priore, esegui un'analisi di sensibilità: esegui gli stessi dati con Beta(1,1), Beta(10,990), Beta(30,970). Se le posteriori differiscono per più del 5%, la priore è dominante — scegli una priore più debole o raccogli più dati.
Un altro trade-off: il test bayesiano non è altrettanto "publication-ready" quanto il frequentist. Se scrivi un articolo accademico, hai bisogno del p-value; se presenti un briefing al C-suite, il grafico della posteriore è sufficiente. Nei processi di Conversion Rate Optimization, la velocità è critica — nei cicli sprint settimanali il test bayesiano sequenziale è il 40% più veloce (secondo il benchmark VWO 2023: mediana di 8 giorni invece di 5).
Impatto Aziendale della Velocità di Test
Il vero guadagno del sequential testing bayesiano è la velocità. Nel performance marketing la creative fatigue si verifica in 10-14 giorni, il ciclo di campagna è di 30 giorni. Se chiudi il test della landing page in 12 giorni, fai 2 iterazioni al mese. Con il bayesiano in 5 giorni, ne fai 6. Assumendo un lift del 5% per iterazione, il composto annuale nel frequentist è 12% (1.05^12), mentre nel bayesiano è 34% (1.05^6).
Il sequential testing moltiplica i vantaggi nei test multivariati (A/B/C/D). Nel test frequentist con confronti multipli, la correzione di Bonferroni aumenta la dimensione campionaria di 3-4 volte. Nel bayesiano, ogni variante ha una posteriore separata, i confronti pairwise avvengono senza alpha spending. Con 4 varianti, il frequentist richiede 15 giorni mentre il bayesiano termina in 6.
Un ultimo punto: fermarsi presto non vale solo per il test vincente, ma anche per quello perdente. Se la variante B registra un calo del 20% nelle conversioni, al 3º giorno P(A > B) = 99% — interrompi il test e previeni lo spreco di traffico. Nel frequentist devi aspettare 12 giorni, mandando traffico a una pagina con scarsa conversione per 9 giorni. Il sequential testing bayesiano fornisce questa protezione al ribasso.
Il test A/B bayesiano sequenziale non è più un lusso — è una necessità. Dopo il deprecamento dei cookie, l'attribuzione è difficile; i cicli di campagna sono brevi, il refresh creativo è rapido. I test frequentist classici non riescono a stare al passo con questa velocità. Con l'aggiornamento della posteriore bayesiana, ogni giorno raccogli nuove informazioni e decidi quando raggiungi la soglia di confidenza. Fermarsi presto non è un bias, è una caratteristica. Purché mantieni disciplina nella scelta della priore, chiarezza nella regola di arresto e un filtro sulla significatività pratica, il test bayesiano è sia veloce che affidabile.