Publicerad: Text: Per Spetz Lästid: 10 min

Därför bör du använda bayesianska metoder för A/B-testning

Bayesiansk statistik har gått från att vara ett akademiskt trätoämne till en självklarhet inom modern A/B-testning, där marknadsledande verktyg från leverantörer som Google, VWO och AB Tasty bygger på bayesianska metoder. Men vad är det, varför är det en sån snackis inom A/B-testning, och vilka fördelar kan det ge dig?

I den här artikeln ger jag en introduktion till bayesiansk A/B-testning och delar mina tre främsta skäl till varför jag föredrar det.

Del 1: Vad är ”bayesiansk statistik”?

Låt oss börja med vad Bayesiansk statistik handlar om. Det är kanske enklast att beskriva i relation till det traditionellt dominerande paradigmet inom statistik, frekventism. Frekventistisk statistik är det som flest känner igen från skolbänken och det vi oftast stöter på i opinionsundersökningar och liknande vardagliga sammanhang där statistik och sannolikhet förekommer. Så hur skiljer sig de två perspektiven åt?

Ett illustrerande exempel

Här är det exempel jag stött på som jag tycker bäst beskriver skillnaden:

Tänk dig att du hittar ett mynt på gatan, och du vill ta reda på om myntet är jämnt viktat, dvs. har en 50% sannolikhet att landa som krona respektive klave. Du singlar slant 5 gånger, och får krona 5 gånger i rad. Detta känns osannolikt, och du misstänker att det är något fuffens med myntet och vill ta reda på om så är fallet.
Istället för att singla slant tusentals gånger för att på så vis bevisa att myntet inte är jämnt viktat så kan vi använda oss av en statistisk modell som med ett litet mått kontrollerad osäkerhet kan hjälpa oss dra en slutsats snabbare, men i valet av modell kan vi se på problemet på lite olika sätt.

  • Scenario 1: Du tänker att 5 utfall av “krona” på raken är ett osannolikt resultat, men samtidigt vet du att nästan alla mynt som finns i världen är jämnt viktade. Vad är oddsen på att just det här myntet är något slags viktat mynt? Du tänker att du singlar slant ett par gånger till för säkerhets skull, och efter ytterligare fem utfall som krona så drar du slutsatsen att det måste röra sig om ett viktat mynt.
  • Scenario 2: Tänk dig nu att en bebis skulle hitta samma mynt och göra samma test med samma 5 utfall. Sannolikheten att detta sker slumpvis är som sagt mycket liten, och en nyfödd bebis har ingen tidigare erfarenhet av mynt eller att singla slant, och därmed ingen kunskap om att det nästan alltid är en 50/50 sannolikhet för krona kontra klave. Med andra ord så har bebisen ingen anledning att dra någon annan slutsats att det här är ett mynt som inte är jämnt viktat. .

Bägge sätten att resonera låter rätt rimliga, eller hur? Inget av dem är heller fel, men ändå så landade de i två olika beslut.

En förenklad matematisk förklaring

Frekventisk statistik:
Bebisen utgår från det frekventiska perspektivet, där vi via frekventa försök noterar utfallet för att svara på den specifika frågan:

Om myntet är jämnt viktat, vad är sannolikheten att vi får ett så här extremt utfall av en slump?

Om sannolikheten p för vårt uppmätta utfall är tillräckligt liten (ofta p ≤ 0.05) så förkastar vi hypotesen att det är ett jämnt viktat mynt. Lite förenklat kan vi säga att i frekventistisk statistik så låter vi datat från experimentet tala för sig själv och vi beräknar sannolikheten för det vi ser i utfallet.

Bayesiansk statistik:
I det bayesianska perspektivet inkluderar vi information om sannolikheten från ett tidigare kunskapsläge, en s.k prior probability, och kombinerar det med den data vi samlar in under vårt experiment för att göra ett uttalande om vårt uppdaterade kunskapsläge, en s.k posterior probability. Vår prior kan vara baserad på historisk data av liknande händelseförlopp, eller något annat vi tror oss veta om processen i fråga. I det här fallet är vår prior helt enkelt vår allmängiltiga kunskap om att de allra flesta mynt är jämnt viktade.

Med hjälp av formeln som utgör Bayes sats kan vi beräkna en betingad sannolikhet, ungefär:

Givet vad vi redan vet, vad är sannolikheten för det utfall vi ser?

Bayes sats, ”sannolikheten för A, givet B” (bildcred: wikipedia)

En grundläggande skillnad är att bayesianska metoder hanterar parametern vi är intresserade av som en slumpvariabel, där vissa värden är mer eller mindre sannolika. Frekventister tycker generellt att detta låter sinnessjukt eftersom att det ju måste finnas ett verkligt värde på denna parameter som är otvivelaktigt sant.

Ta exemplet på med myntet, det är väl självklart att det i slutändan måste finnas ett korrekt värde för hur det är myntet faller om det flippas med exakt millimeterprecision tusen och åter tusen gånger? Huruvida det finns ett sant värde kan argumenteras om, men en kanske mer relevant fråga är om det egentligen spelar någon roll.

Min tumregel (som någon annan smart person formulerat) är att bayesianska metoder kan beskrivas som ett ramverk för att kontinuerligt med hjälp av data uppdatera vår tro om sannolikheten för ett visst utfall, medan frekventiska metoder kan beskrivas som ett ramverk för att med hjälp av data utesluta om ett visst utfall är skiljt från ett annat.

Det låter ju som att bägge perspektiven fungerar för analysera A/B-testning, och det är såklart sant, men det finns två små matematiska godbitar hos bayesianska metoder som ger dem ytterligare värde:

    • I och med att bayesianska metoder beräknar sannolikheten att vår testparameter antar olika värden så kan vi också uttrycka vårt “svar” som sannolikheten att B > A. Detta kan vi inte göra med frekventiska metoder.
    • En bayesiansk modell har en s.k. loss function, som är snarlik sannolikhetsfunktionen, men istället kan sägas beskriva skillnaden mellan det resultat vi har (vår posterior) jämfört med värdet om det visar sig att vi väljer fel variant.

    Jag förstår om du fortfarande inte har trillat av stolen av wow-faktor, men det ska visa sig att dessa små skillnader ger värdefulla praktiska konsekvenser.

    Del 2: Varför behöver A/B-testare förhålla sig till bayesiansk statistik?

    Den korta förklaringen är att Bayesianska metoder har kommit att bli standard för flera kommersiella A/B-testverktyg och att marknaden fortsatt rör sig i den riktningen. Den främsta anledningarna till detta är:

    • Det möjliggör statistiskt säkerställda resultat snabbare/med mindre data
      I exemplet med myntet ovan gjorde det bayesianska perspektivet att vi blev mer skeptiska till våra resultat, men det fungerar givetvis åt andra hållet också: Om utfallet i vårt experiment går i linje med tidigare erfarenhet (vår prior) kan vi med mindre data nå ett statistiskt säkerställda resultat, och vårt experiment behöver inte spendera lika lång tid ute i det vilda. Detta kan dels öka takten i experimenterandet, men också vara en möjliggörare för små samples eller volatil data (Dock inte enda sättet att hypotestesta med lite eller bångstyrig data).
    • Det ger användaren lite mera slack
      Det bayesianska signumet med att iterativt uppdatera vad vi tror på innebär att det generellt inte ställs lika höga krav på metod och experimentdesign. Ett exempel på detta är problematiken med ”peeking” som till stor del kan undvikas, och denna reducering av komplexitet är särskilt värdefullt i ett self-serviceverktyg som riktar sig till personer som inte nödvändigtvis är statistiker. (Återigen, finns även andra icke-bayesianska metoder som också kan addressera de här problemen).

    Det finns även ett par klassiska nackdelar med bayesianska metoder, men inte heller dessa brukar vara några större problem för digitala A/B-testverktyg:

    • Det är godtyckligt siffertrixande
      Den vanligaste invändningen är att bayesiansk hypotestestning lite godtyckligt kastar in information som inte är en del av experimentet för att dra slutsatser. “Minimala priors” är just detta, en prior som säger att att alla möjliga utfall är exakt lika sannolika, och därmed inte tillför någon information, men via Bayes beräknas ändå en posterior probability som kan skilja sig från vad samma experimentdata skulle visa med frekventisk metod. A/B-testning görs dock sällan på helt nya och okända utfall, och vi har vi ofta en idé om resultatet som kan vägleda oss i någon mån, exempelvis från liknande tester eller branschstandarder. Så snart data börjar trilla in kan vi direkt justera och använda vår nya data som prior och därmed justera en minimal prior “direkt”, vilket också är en stor skillnad med dagens automatiserade datainsamling och algoritmer, jämfört med på Bayes’ tid då detta gjordes med papper och penna.
    • Det är arbetsintensivt
      En praktiskt nackdel, som också är anledningen till att de flesta av oss inte fick räkna med bayesianska metoder i skolan är att det är väldigt arbetsintensivt att beräkna en sannolikhetsfördelning m.h.a Bayes sats, särskilt för kontinuerliga värden. Inte heller detta är dock något större problem med dagens beräkningskapacitet som finns i den device du läser denna artikel i, för att inte nämna den beräkningskapacitet som finns ett par klick bort i molnet.

    En kan säga att bayesianska metoder flyttar komplexitet från metodkapitlet till beräkningskapitlet, vilket gör det attraktivt för verktyg som inte nödvändigtvis riktar sig till statistiker eller erfarna analytiker. Frekventistiska metoders största fördel är dock att det helt enkelt är det traditionella go-to-valet för hypotestestning sen lång tid tillbaka, och alla som sysslat med CRO vet hur starkt standardvalet står sig bara i egenskap av att vara standard. Trots detta så har bayesianska metoder seglat upp som ett åtminstone lika erkänt och självklart alternativ på relativt kort tid, och om jag måste satsa allt på ett kort för framtidens A/B-testning så skulle mina pengar ligga hos Bayes.

    Del 3: Om verktyg kan göra detta åt mig, varför behöver jag bry mig?

    När A/B-testverktyg ska marknadsföras så blir den statistiska motorn en av de viktigaste konkurrensfördelarna, eftersom den dikterar hur och vilka resultat som presenteras, men också hur snabbt och tillförlitligt verktyget är. Därmed blir den statistiska analysen ofta en affärshemlighet och något av en blackbox, och som A/B-testare tvingas du helt enkelt lita på vad verktyget drar för slutsatser, något du i min mening bör undvika eftersom:

    • De kräver fläckfri implementation i flera led
      Förutsättningarna för en korrekt statistisk analys kräver att trackinglagret (indatan) och metricslagret (experimentkonfigurationen) är felfritt implementerade, och det kräver också att den nya varianten/koden är helt buggfri för att ge verktyget rätt förutsättningar för analysen. Jag tror att alla som har genomfört A/B-tester kan vara överens om att detta är sällsynt, och att du i analyssteget ofta behöver göra ytterligare handpåläggning av olika slag för att göra en trovärdig analys.
    • Du blir låst till en specifik konfiguration
      Även om allt är korrekt implementerat så kan dina behov förändras under eller efter experimentets gång. Du inser kanske att ett särskilt segment av användare är mer intressanta så du vill förlänga eller korta ner testperioden, eller att det är en annan metric som egentligen borde utvärderas osv. Generellt innebär detta att du måste konfigurera om experimentet från scratch om du vill att den automatiska analysen ska bli korrekt.
    • Du behöver vara hälsosamt misstänksam
      Som A/B-testare så är validerade lärdomar och rekommendationer ditt existensberättigande. I slutändan behöver du kunna avgöra vilka experiment som är tillförlitliga, inte minst för att förstå när du kan använda dig av diagnostik och analys out of the box, och när du själv behöver kavla upp ärmarna för att kontrollera att dina rekommendationer håller.

    Enligt min erfarenhet så kräver framgångsrik A/B-testing att du i någon mån kan ta dig an diagnostik och analys av experimenten på egen hand utanför det specifika verktygets ramar. I kombination med att stora delar av det kommersiella ekosystemet bygger på bayesianska metoder så blir konsekvensen att du förr eller senare kommer befinna dig i en bayesiansk kontext som kräver manuell handpåläggning i analysen om du sysslar med A/B-testning. Valet av metod påverkar det statistiska språket, vilka parametrar som används, och vad analysen egentligen säger, vilket i sin tur påverkar hur analytiker presenterar resultat och hur stakeholders förväntningar och förståelse för slutsatserna. Det är svårt nog att etablera förståelse för en statistiskt skola i en organisation, och en pedagogisk mardröm att etablera förståelse för två samtidigt.

    I min mening så behöver du göra ett medvetet och motiverat val mellan att använda eller inte använda bayesianska metoder när du ska stå på egna ben i analysen.

    Del 4: Varför jag föredrar Bayesianska metoder

    Vid det här laget så sneglar de flesta A/B-testare (undertecknad inkluderad) till det de är mest bekanta med: den trygga och pålitliga frekventiska statistiken. Men istället för att lockas av sirénernas sång om p-värden, t-tester och konfidensintervall så bör du likt Odysseus surra fast dig vid masten och fortsätta kursen mot bayesiansk A/B-testning. Utöver de för- och nackdelar ur statistisk synpunkt som vi redan gått igenom så har bayesianska metoder tre fördelar när det kommer till A/B-testande i praktiken.

    1. Dela resultat med stakeholders på ett mer tydligt och övertygande sätt

    Den i min bok tveklöst största fördelen med bayesiansk analys är att du formulerar dina slutsatser i termer av sannolikhet, snarare än i termer av signifikans. Detta innebär att du aldrig mer behöver snärja in dig i olika förklaringar av vad ett p-värde är för något, vad 95-procentig konfidensgrad betyder eller vad det innebär när ett positivt resultat inte är signifikant. Det är helt enkelt väldigt knöligt att kommunicera frekventistiska resultat till någon som inte själv har statistisk bakgrund, och det bäddar för missförstånd.

    Med bayesianska metoder så kommer resultatet av din analys uttryckas i termer av “sannolikheten att B är bättre än A är x %”. Mer förklaring än så behövs inte för att ta ett affärsbeslut, och det är i min erfarenhet oändligt mycket lättare att förstå för dina stakeholders. I slutändan handlar A/B-testning om att skapa och kommunicera beslutsunderlag, och där är i min mening bayesiansk statistik överlägsen.

    2. Minska risken för att lämna vinnande varianter vid ritbordet

    En ytterligare uppsida av att det Bayesianska resultatet uttrycks i termer av sannolikhet är att du inte blir låst i i uppdelningen mellan signifikanta och icke-signifikanta resultat. I den bayesianska världen pratar vi om en glidande skala av sannolikhet mellan 0 och 100% sannolikhet. Affärsbeslutet gäller oftast huruvida vi ska implementera en ny variant eller inte, och i det läget så kan alla varianter i ett A/B-test med en sannolikhet på mer än 50% sägas vara vinnare. Visst, du kan inte vara helt säker på att du faktiskt har en vinnande variant såvida du inte når upp till 100% sannolikhet, men i många fall så måste du välja den enda eller andra.

    För att applicera lite sannolikhetsteori så kommer stora talens lag ge dig mer rätt längden, och du kommer ha fler experiment som faktiskt kan fungera som beslutsstöd. Alla som varit med i digital produktutveckling kan säkert också känna igen viljan att hellre fria än fälla en nyutvecklad feature eller förändring i produkten som teamet spenderat dyrbar tid på, så minsta stöd för att den sannolikt förbättrar användarupplevelsen kan användas för ett mer datadrivet beslutsfattande även när vi inte är helt säkra.

    En bild som förmedlar samma mängd kunskap som mina 20 000 ord.
    (bildcred: Jakub Linowski)

    3. Möjliggör en mer intuitiv riskanalys

    Likt resonemanget i punkten ovan kan ju A/B-test ofta handla om att riskminimera en förändring i produkten, dvs. utesluta en negativ påverkan på våra metrics. Tänk dig exempelvis att du i din bayesianska analys av ett A/B-test kommer fram till att variant B med 90% sannolikhet presterar bättre än A på en viss konverteringsgrad. Detta innebär såklart att det också finns en 10% risk att A faktiskt är bättre, och att vi bara hade otur i vår mätning.

    90% känns ju lovande, men samtidigt är 10% inte är ett jätteosannolikt scenario. Vågar vi chansa ändå?

    Utan att gå in i de praktiska detaljerna så kan vi med vår tidigare nämnda “loss function” estimera den genomsnittliga förlusten på konverteringsgraden av att inte välja variant B trots att den var bäst i vår mätning, och på så sätt få ett beslutsunderlag som även beskriver den potentiella nedsidan i respektive val om vi väljer fel variant.

    (En mer utförlig guide till vad Expected loss är och hur du beräknar det kan du hitta här).

    Lite låtsasdata för att illustrera ”Expected loss”

    Vi kan alltså konstatera att B har en uplift på ca 4.3% jämfört med A, men det finns fortfarande en risk på 10% att A faktiskt är bättre. Vi beräknar expected loss med att felaktigt välja B till 0.0024, vilket innebär att den negativa effekten på konverteringsgraden skulle vara 0.24% och ge en ”negativ uplift” på endast 0.4%.

    Som en del i vår analys kan vi sätta gränsvärden för vad vi är bekväma med riskmässigt, exempelvis att sannolikheten att vara bäst måste överstiga 90%, och att expected loss inte ska ge en större negativ uplift på 1%, och vi kan justera risknivåer beroende på vad det är för typ av KPI, ex. betalande kunder vs nya leads. På så sätt kan vi på ett relativt enkelt sätt identifiera experiment som riskerar för stor negativ påverkan på viktiga KPI:er samtidigt som vi kan släppa igenom lovande varianter även om de inte nått 100% sannolikhet att vara bäst.

    Sammanfattning

    Bayesianska metoder är numera en självklarhet inom modern A/B-testning och något som du i min mening helt enkelt behöver förhålla dig till som A/B-testare. Min bild är att det till stor del har drivits på av att flera tunga kommersiella A/B-testverktyg har anammat det, men att det också erbjuder flera fördelar för oss vanliga dödliga, särskilt för det som A/B-testning i slutändan handlar om, nämligen att förmå en organisation att fatta rätt beslut under ovissa förhållanden med hjälp av data.

    Hoppas denna artikel bidrog med lite nya perspektiv eller att du rentav lärde dig något sprillans nytt! 🙂

    Har du inspel, frågor eller bara vill prata mer A/B-testning, adda mig på Linkedin eller släng iväg ett mail.