Fare gli A/b test come li fa Microsoft
Foto di copertina dell'articolo sull'A/B testing

Riccardo

Visioli

Fare un A/b test potrebbe sembrare facile come rubare dei dolci ad un bambino, d’altronde non si deve far altro che confrontare una pagina con un’altra, non riuscire in un compito così banale potrebbe essere sinonimo di scarse facoltà cognitive, no?

La realtà è però leggermente diversa, difatti ci sono tanti, troppi step che vengono tralasciati quando si decide di avviare un a/b test, invalidando così la “scientificità” del dato raccolto.Quindi, oggi voglio farvi vedere come creare un A/b test secondo Ron Kohavi (Vice president and technical fellow) di Airbnb (ex microsoft) e Roger Longbotham EX Data Scientist di Microsoft.

Ma sappi mi limiterò alla parola di questi due autorevoli personaggi perché durante la scrittura dell’articolo mi è scappata la mano (diverse volte) e quindi mi sono preso la briga di inserire qualcosina in più (è già la terza volta che aggiorno e revisiono questo articolo originariamente scritto per il mio LinkedIn 😂)

Licenza CC immagine di: https://commons.wikimedia.org/wiki/File:A-B_testing_example.png

Chi trova un OEC trova un tesoro

C’è chi nella vita sale e chi scende, ed è così è anche per gli A/b test, infatti non è raro che durante uno di questi test una KPI importante salga, ed un’altra KPI importante scenda.

Per ovviare a ciò i due tecnici della casa dei blue screen utilizzano una scala di valutazione globale chiamata OEC.

L’OEC banalmente è: una metrica che riflette l’andamento generale del business, tale metrica deve però riflettere in un breve periodo (es:2 settimane) l’andamento che il business potrebbe avere sul lungo periodo.Quindi bisogna scegliere una metrica generale, globale che in un breve lasso di tempo sappia predirre l’andamento futuro del business.

Farlo sui “guadagni” sarebbe inutile, perché questi possono aumentare drasticamente in un breve periodo e diminuire di seguito, questo accade (in alcuni casi) quando si aumenta di botto il prezzo dei nostri prodotti, inizialmente potrebbe esserci un aumento delle entrate, ma con il tempo queste potrebbero scemare perché i clienti potrebbero non essere più disposti a comprare.Per questo Microsoft per il suo esperimento su Bing scelse il numero di sessioni per utente/visite ripetute.

Ma tralasciando Microsoft per un secondo, io che ho una PMI come posso trovare l’OEC?

Per un’app l’OEC potrebbe essere il numero di utenti settimanali connessi, per il business di un libero professionista si potrebbe cercare l’OEC nei 2-3 step precedenti alla vendita (andando a ritroso), ovviamente ci deve essere una proporzionalità/forte collegamento con il numero di vendite.

Molti potrebbero non comprendere la scelta di Bing: <<perché hanno scelto il numero di sessioni quando mio cuggino mi ha detto che X ed Y>>

Beh Microsoft ha scelto il numero di sessioni perché sono predittive sulla qualità di ricerca (e questa si collega alle vendite) infatti troppe ricerche per una singola keyword potrebbero essere sinonimo di:” non riesco a trovare ciò che cerco”Allo stesso modo, se la ricerca è troppo bassa allora potrebbe voler dire che molti atterrano su Bing e poi vanno direttamente nella barra di ricerca senza passare da Bing.

Bisogna fallire? Ok, ma… (di nuovo)

Qui invece si torna ad un concetto molto ribadito dai Growth hacker, così tanto ribadito che l’unica reazione che ho quando lo risento è:<< E mo basta però!>>

Tale concetto è quello del: “la maggior parte degli esperimenti falliscono”Ciò viene confermato anche da Microsoft, ed anzi, nel 2012 Google disse che solo il 10% di esperimenti ha portato a reali cambiamenti aziendali.

Però ci tengo ad aggiungere che ciò di cui ha parlato Microsoft è valido per ambienti pluri-ottimizzati come quelli di Google, Netflix e compagnia cantante, ma se possiedi un sito nuovo o un’app nuova, non è così complesso migliorare l’OEC tramite delle buone implementazioni.

Ma riguardo ai nuovi siti/app ci sarebbe un discorso aggiuntivo, infatti molti esperti suggeriscono di evitare gli A/B test nel momento in cui non si è in grado di soddisfare il campione minimo di utenti necessari per l’esperimento ( o per le conversioni).

Uno dei massimi esperti di A/B testing di CXL suggerisce di evitare A/b test fino a che non si raggiungono almeno le prime 1000 transizioni, ma quest’ultimo ha dato anche una seconda indicazione forse più chiara: se non si è in grado di far raggiungere almeno 100 eventi per gruppo (sia per il gruppo di trattamento che di controllo) allora è meglio lasciar perdere l’A/B testing in quanto i costi (anche di tempo) supererebbero i benefici.

Invespcro si spinge addirittura oltre, e invita a non fare A/B test finché non si raggiungono almeno le 500 conversioni per gruppo (500×2 in questo caso) o addirittura le 10.000 conversioni al mese nel caso si voglia fare un test multi-variabile (testare più variabili insieme aumenta il rischio di ottenere dei “falsi positivi” ad ogni singolo gruppo di test che viene introdotto).

E quindi come fare?In questo caso ha più senso buttarsi sulla sola lettura dei dati qualitativi (Mappe di calore, sondaggi, colloqui 1 ad 1 ecc…) facendo così si eviteranno delle grandi perdite di soldi e di tempo.

Signori accendiamo il 50:50?

Ma come dividere il nostro A/b test? 30/70? 40/60?

La risposta è 50:50, lo so è banale, ci si aspettava che ci fosse qualche hack, ma nulla da fare, l’opzione migliore è quella di dividere in due gruppi uguali (in termini di quantità).Difatti non si troveranno mai in medicina dei trial clinici (l’esempio di A/b test più rigoroso che possa esistere) troppo sbilanciati tra i gruppi, questo ne invaliderebbe il risultato.

Il test del bandito

Ma esiste anche un approccio più avanzato chiamato “Bandit Test”.Il bandit test a differenza del classico 50:50 statico va ad allocare il pubblico in maniera “automatica” a seconda del gruppo che sta performando meglio, andando così a stringere nel tempo verso la variante vincente senza però invalidare la significatività dell’esperimento.

Questa metodologia è stata adottata da diverse big (es:Google) Anche se non sempre risulta essere la scelta migliore, solitamente questo metodo viene scelto quando si ha pochissimo tempo a disposizione per raccogliere dati statisticamente significativi o quando il rapporto tra costi/opportunità rischia di sbilanciarsi facilmente verso i costi (quando anche una singola vendita può fare la differenza).

Il bandit test non è di facile implementazione, infatti i software base di a/b testing come google optimize non lo calcolano nemmeno. Però soluzioni più complete e complesse come VWO danno la possibilità di implementare questi test più specifici.

Cambiare la distribuzione così a caso…

Un errore gravissimo molto comune è quello di cambiare la distribuzione dei campioni in maniera totalmente casuale.

Vediamo che il gruppo B funziona di più allora cambiamo l’allocazione dei campioni, passando da un 50:50 ad un 30:70 (B) favorendo così il gruppo B.Ciò non va assolutamente fatto, questo invaliderà l’esperimento generando quello che in statistica è chiamato il paradosso di simpson.

Insomma, il rischio è di trovarsi con risultati totalmente ribaltati in poco tempo, invalidando tutto il nostro lavoro.

Vari…CHE?

Un’altra cosa di massima importanza sono le variabili interne ed esterne.

Sostanzialmente, per minimizzare le variabili interne bisognerebbe cercare di fare un a/b test dove A e B sono uguali tranne per l’oggetto in studio. Quindi bisogna fare un A/b test su un banner?

Bene, si modifica solo quello tra le due pagine, e nient’altro! A patto che ovviamente si stia confrontando solo un oggetto come un banner, e non delle intere pagine (è corretto farlo)Proseguendo con il nostro banner, andando ad alterare qualcos’altro (per quanto questa alterazione sia piccola) si rischia di invalidare tutto l’esperimento.

Questo perché una singola modifica aggiuntiva può portare ad una cascata di modificazioni nel comportamento dell’utente che noi neanche possiamo immaginare.

Le variabilità esterne sono invece quelle che possono minacciare l’esperimento da fuori, un esempio è banalmente il tempo.

Fare un A/B test, dove A e B sono eseguiti in due date diverse ridurrebbe la replicabilità esterna dell’esperimento, e quindi l’esperimento diventerebbe meno rappresentativo al di fuori della popolazione dell’esperimento.

Quindi gli esperimenti vanno fatti partire rigorosamente insieme, però il tempo non è l’unica variabile esterna, ad esempio il COVID può essere tranquillamente considerato come una variabile esterna, studi effettuati a marzo potrebbero perdere la loro validità con la modifica della variabile (Covid) così come qualsiasi calamità naturale, persino le stagioni, le temperature, gli avvenimenti locali e tanto altro sono considerati tra le variabili esterne che possono alterare anche significativamente gli esiti di un nostro esperimento.

Altre variazioni esterne a cui nessuno pensa sono: i giorni in cui vengono pagati gli stipendi ai propri prospect, un avvenimento narrato al telegiornale che fa riferimento al tuo settore di business e tanto altro ancora.Purtroppo con il digital le variabili esterne galoppano alla grande, ad esempio: vogliamo confrontare l’effetto sull’ER di Linkedin dei PDF contro i normali video?

Possiamo fare un A/b test dove cambiamo solamente il formato del post e vedere che succede, il problema è che abbiamo una variabile esterna che è l’algoritmo di Linkedin, sulla quale non abbiamo assolutamente controllo, e ciò vale ancora di più per gli algoritmi in costante modificazione (Machine Learning).E gli algoritmi possono creare una concatenazione di aggiunte di fattori esterni non da poco.

Il non riuscire ad eliminare le variabili esterne invaliderà automaticamente gli A/b test? Non è detto, questo dipende da come è stato strutturato il test (grandezza campione, confidenza etc…

Le dimensioni del campione

E qui casca l’asino, perché solitamente è il campo in cui si vedono fare i peggiori errori concepibili dalla mente umana.

Difatti sarebbe bene prima di avviare un A/b test calcolare il campione minimo necessario per poter ottenere dei risultati soddisfacenti dal proprio test.

Questo per evitare di raccogliere dei dati spazzatura, con una significatività bassissima ed una variabilità del risultato altrettanto alta.A parlarci delle insidie delle dimensioni (lasciando perdere un secondo Microsoft) è Peep Laja di CXL, esperto di CRO già citato in precedenza.

Peep ci illustra nel suo blog un a/b test che inizialmente vede B perdente di tantissimi punti, ma che dopo pochi giorni (10 giorni di differenza) diventa predominante su A.

Per spiegare meglio il concetto lascio qui sotto delle tabelle sicuramente più esplicative

Utenti/conversioni% conversione
Controllo [Giorno 2]11/1278,66% ±3%
Variazione 1 [Giorno 2]1/1100,91%±1%
VS
Controllo [Giorno 10]87/63713,66% ±2%
Variazione 1 [Giorno 10]106/62017,10% ±2%

Esatto, dopo 10 giorni il gruppo che convertiva il 0,91% è diventato quello del 17,10%, un bel cambiamento no? Ma di certo questo non è l’unico esempio di “ribaltamento” delle percentuali, infatti questi fenomeni sono molto frequenti se non si riescono a racimolare le giuste visite, o si va incontro ad un effetto novità.

Ma tornando a noi, quanti utenti ci servirebbero per vedere se un banner quadrato (che già abbiamo nel nostro ipotetico sito) converte di più di uno quadrato? Beh, per trovare questo dato bisogna cercare l’MDE (effetto minimo rilevabile) ed avere ben chiaro il conversion rate basale della variabile del gruppo di controllo, ed oltre a ciò è bene sapere quale sarà la potenza statistica desiderata.

Facendo un esempio: mettiamo che io abbia una pagina web di viaggi, su questa pagina “gira” un ADS con obbiettivo traffico – click sul link, la mia ipotesi è che settando come obbiettivo traffico – visualizzazione della pagina aumentino i click sul link (sto sparando a caso).

Quindi per testare questa mia ipotesi metterò in piedi un A/b test:·

  • Gruppo di controllo: Ads normale senza variazioni· Variazione 1: cambio l’obbiettivo delle mie ADS da Traffico – click sul link a traffico – visualizzazione del contenuto.

Ora ipotizziamo di avere (solitamente) un conversion rate del 20% per il nostro gruppo di controllo, in questo caso come “conversion” non intendo un acquisto ma bensì un click sull’ads.

Oltre a ciò, decidiamo che vogliamo un effetto minimo rilevabile relativo del 15% (percentuale di miglioramento relativo minimo rispetto al gruppo di controllo, è come se fosse un indice di sensibilità dell’esperimento, in questo caso inserisco il 15% perché è il risultato dalla quale voglio partire) Ora impostiamo una potenza statistica del 90% e…3814!

Cosa vuol dire? Che nel nostro A/b test dovremmo avere almeno 3814 persone per variazione, quindi almeno 3814 per A e 3814 per B, Per poter effettuare questo calcolo basta munirsi di un MDE calculator che si trova facilmente su Google.

Durata

Grafici statistici

Sappiamo quanto dovrebbe essere grande il campione, ora noi dovremmo essere in grado di raggiungere questa cifra nel giro di un minimo di 3 settimane ed un massimo di 12 (c’è chi dice 6).

Ma perché? Perché prolungare troppo l’esperimento potrebbe incrementare vertiginosamente i fattori inquinanti esterni, ed allo stesso modo creare un test troppo breve potrebbe restituire risultati dalla bassa significatività statistica.

Lo so, sono passati cinque giorni e sembra che abbiamo già un nostro vincitore nell’A/B test, che facciamo, stoppiamo prematuramente il test?Ovviamente no, il test non deve mai essere stoppato dopo un periodo così breve. Il motivo è semplice, e ti propongo un esperimento per fartelo capire: prendi un qualsiasi a/b test appena iniziato, ed ogni giorno segnati i parametri più importanti della tua campagna (conversion rate del singolo gruppo, e numero degli utenti passati per gruppo).

Scegli il metodo di convalida della significatività statistica e noterai (molto probabilmente) che nei primi giorni i campioni sono stati altamente instabili nella loro significatività, spesso si assiste a dei veri e propri “ribaltamenti” di risultato che potrebbero prima apparire significativi per il metodo frequentista ma che in realtà nel tempo finiscono per diventare il risultato perdente, èer intenderci basta guardare gli esempi di CXL che ho fatto qui sopra.

Oltre il campione

E se i 3814 partecipanti per gruppo fossero raggiunti troppo velocemente?Beh, anche in questo caso il test dovrebbe perlomeno andare oltre le 2-3 settimane, tranne nel caso che a livello di costo/beneficio vi siano dei problemi nel proseguire.

Ovviamente interrompendolo prima bisognerebbe assumersi la responsabilità di aver potenzialmente invalidato il risultato del test.

Va aggiunto a ciò che le ADS di FB sono estremamente suscettibili alle variabili esterne, proprio per come è architettato il loro sistema di ottimizzazione, ergo: raccogliere diversi dati per diverse settimane è preferibile agli stop prematuri.

Accorciare la durata

Come dicevo; se si usa il normale A/B test basato sul metodo frequentistico allora è assolutamente vietato stoppare il test prima del raggiungimento dell’MDE, tuttavia esistono due metodi come l’A/B test Bayesiano (si abbandona alle logiche frequentiste per abbracciare quelle probabilistiche) ed in seconda istanza ci sarebbe l’A/B test sequenziale.

Ma essendo un argomento complesso ho voluto giusto accennarlo, ne parlerò in maniera più approfondita in un secondo momento.

Bibliografia

1..Kohavi, Ron & Longbotham, Roger. (2017). Online Controlled Experiments and A/B Testing. 10.1007/978-1-4899-7687-1_891. (Microsoft)

2.Kohavi, Ron & Tang, Diane & Xu, Ya. (2020). Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. 10.1017/9781108653985.

Sitografia

Sitografia (non in ordine):

1.https://it.shopify.com/blog/test-a-b
2.https://help.surveymonkey.com/…/What-is-Random-Assignment
3.https://cxl.com/blog/statistical-power/
4.https://cxl.com/…/can-you-run-multiple-ab-tests-at-the…/
5.https://cxl.com/…/12-ab-split-testing-mistakes-i-see…/
6.https://www.invespcro.com/blog/ab-testing-mistakes/
7.https://www.dynamicyield.com/lesson/bayesian-testing/

Altri
Articoli