the-simpsons-paradox-3

Pas op voor de Simpson’s Paradox!

Waarom je de bezoekersverdeling van een A/B-test niet tussendoor mag aanpassen

Bij het horen van de term Simpson’s Paradox is er een grote kans dat je direct denkt aan de Tv-serie over de gele lompe goedzak met weinig herseninhoud en een continue hunkering naar Duff bier en donuts. Maar dat is helaas niet correct.

De Simpson’s Paradox verwijst naar een statistische situatie waarin er een trend of relatie wordt geobserveerd tussen verschillende groepen, die weer verdwijnt op het moment dat de groepen worden gecombineerd. Je zou het kunnen zien als een soort rekenkundige truc. Afhankelijk van hoe de groepen worden gecombineerd is de conclusie anders en soms zelfs tegengesteld.

Als web analist of data scientist is het belangrijk op de hoogte te zijn van dit fenomeen bij het analyseren van data en in het bijzonder in het licht van de bezoekers verdeling in A/B-testen.

Hoe werkt de Simpsons Paradox?

Mark Liddell heeft de Simpson’s Paradox erg duidelijk uitgelegd in de volgende Ted Education video:

Een bekend voorbeeld uit de medische wetenschap is een studie naar behandelmethodes voor nierstenen. Behandelmethode A is een normale operatie en behandelmethode B een methode waarbij slechts een kleine incisie is vereist. Opvallend in de resultaten is dat behandelmethode A voor zowel kleine (93% versus 87%) als grote nierstenen (73% versus 69%) de beste optie is, terwijl op geaggregeerd niveau behandelmethode B als beste uit de bus komt (78% versus 83%). Elke behandelmethode is 350 keer uitgevoerd.

schermafbeelding-2016-12-13-om-10-59-08

Het probleem ligt in het verschil in de verhouding van de kleine ten opzichte van de grote nierstenen tussen de twee methodes: methode A heeft 87 kleine en 263 grote nierstenen behandeld en methode B 270 kleine en 80 grote nierstenen.

Op het moment dat er één overall succespercentage wordt berekend, zal het succespercentage van behandelmethode A schuiven richting de succesratio van de grote nierstenen, terwijl bij behandelmethode B de ratio voor het grootste deel wordt bepaald door het succesvol behandelen van kleine nierstenen. Hierdoor komt behandelmethode B over het algemeen als beste uit de test.

Er zijn dus twee condities waardoor een Simpson’s Paradox kan optreden:

  • wanneer de geobserveerde groepen erg uiteen liggen betreft het aantal observaties (hier: de verhouding kleine en grote nierstenen in de testgroepen) en;
  • wanneer er een verborgen conditionele (zogenaamde ‘lurking’) variabele is die invloed heeft op de geobserveerde relatie (hier: de succesratio van het behandelen van kleine en grote nierstenen).

Deze twee condities zullen ervoor zorgen dat de daadwerkelijke relatie tussen verschillende groepen wordt verdoezeld.

“There are three kinds of lies: lies, damned lies, and statistics.”  — Mark Twain

Relevantie in A/B-testen

Waarom is kennis van de Simpson’s Paradox belangrijk in het licht van A/B-testen? Met name, omdat deze paradox het antwoord geeft op de vraag: “mag ik tijdens de A/B-test de bezoekers verdeling aanpassen als één variant duidelijk beter presteert dan de andere?”. Het antwoord luidt: Nee! Onderstaand voorbeeld laat zien, waarom dit geen goed idee is.

Tijd voor een voorbeeld

Stel dat je een A/B-test start vlak voor het weekend en je verdeelt het verkeer netjes 50/50 – iedere variant krijgt 2.000 bezoekers per dag. Na het weekend bekijk je de eerste resultaten en ziet dat B al twee dagen een stuk beter presteert dan A.

schermafbeelding-2016-12-13-om-11-01-52

Het conversiepercentage van variant B ligt 11,11% hoger dan dat van A. Een Bayesiaanse calculatie laat zelfs zien dat de kans dat B beter is dan A 93,6% is.

Hierop besluit je de bezoekers verdeling van de test aan te passen naar 10/90: vanaf maandag krijgt 10% van het bezoek variant A te zien en 90% de beter presterende variant B. Je houdt de statistieken nauwlettend in de gaten en ziet tot je tevredenheid dat B het beter blijft doen dan A (alhoewel het verschil minder groot wordt). Wanneer de test een volle week heeft gedraaid eindigt de test en maak je de balans op.

En wat blijkt: op totaalniveau presteert variant A beter dan variant B! Variant A heeft een uiteindelijk conversiepercentage van 8,7% en variant B van 8,6%.

schermafbeelding-2016-12-13-om-11-03-20

Hier zie je de Simpsons Paradox vol in werking: op elke afzonderlijke dag presteert variant B beter dan A, maar de groepen gecombineerd laat een ander beeld zien. Dit wordt veroorzaakt doordat de groepen ongelijk verdeeld zijn én er eenderde variabele invloed heeft op de conversie (dag van de week). Doordeweeks liggen de conversiepercentages lager dan in het weekend en de verschillen tussen A en B zijn dan ook minder groot.

Concluderend, tijdens de duur van de A/B-test mag je de bezoekers verdeling niet aanpassen. Al zou je geen dag van de week effecten hebben, dan nog is dit geen goed idee. Er kunnen altijd andere derde variabelen aan het werk zijn (bijvoorbeeld uur van de dag, verkeersbron of device).

Daarbij komt ook nog eens dat indien de traffic split wordt aangepast dit enkel effect heeft op nieuwe bezoekers. Hierdoor worden terugkerende bezoekers over- of ondervertegenwoordigd in één van de groepen als een A/B-test wordt afgerekend op unieke bezoekers (immers, zij behouden hun originele variant).

Is er een remedie?

Wat belangrijk is om in ogenschouw te nemen is dat de Simpson’s Paradox enkel opduikt als de sampling niet uniform is. Of te wel, wanneer de steekproefgrootte van de segmenten ongelijk is. Dit probleem kun je te lijf gaan door te zorgen dat segmenten random worden verdeeld over de varianten (en de aantallen per segment groot genoeg zijn om valide uitspraken over te doen). Doorgaans gaat het randomiseren wel goed, maar om extra zekerheid in te bouwen zou je een gestratificeerde steekproef kunnen gebruiken. Een gestratificeerde steekproef is het opsplitsen van een populatie in homogene wederzijds uitsluitende subgroepen, waaruit je vervolgens random samples trekt. Echter, de A/B-test tools op de markt kunnen hier nog niet mee uit de voeten.

Tot slot, wees altijd kritisch in het trekken van conclusies. Segmenteer de geaggregeerde data op betekenisvolle dimensies (indien random verdeeld) en bepaal of de conclusie hout snijdt. Vind je per segment toch een tegenovergesteld effect, herhaal de test dan nogmaals in een nieuwe speciaal getargete A/B-test om de bevindingen te valideren.

Reacties (6)

  1. Hoi Annemarie,

    Leuk artikel!
    Ik vraag me af waarom je het verkeer tussen de varianten niet gelijk zou verdelen. Wat levert dit op?

    En hoe zie jij het tussentijds aanpassen van de traffic allocation?

    Alvast bedankt!

    • Hi Mike,

      Bedankt voor je reactie. Zoals je uit dit artikel kunt opmaken ben ik zeker niet voor het aanpassen van je trafficverdeling gedurende een A/B-test. Voordat de A/B-test start bepaal je de testduur en verdeel je het bezoek 50/50. Je wacht de testduur af en dan pas analyseer je de resultaten.

      We zien echter in de markt dat de testduur niet altijd wordt afgewacht en dat de traffic split tussendoor wordt aangepast, omdat men denkt te zien dat de ene variant beter presteert dan de andere. Om dan het ‘regret’ te verminderen (je verdient minder door een minder presterende variant te blijven tonen aan een deel van je bezoekers) wordt een groter deel van het verkeer toebedeeld aan de beter presterende variant. Door dit te doen loop je alleen het risico op een Simpsons Paradox. Het experiment is hierdoor niet meer zuiver en kun je niet meer van de resultaten op aan.

  2. Hoi Annemarie,

    Bedankt voor je reactie.

    Met het ‘tussentijds aanpassen van de traffic allocation’ bedoelde ik het toewijzen van het verkeer aan de volledige test door dit bij te stellen. Het verkeer tussen de varianten zal in dat geval gelijk blijven.

    • Hi Mike,

      Dan zul je inderdaad minder snel last hebben van een Simpsons Paradox. Echter, kun je dan nog steeds een 3e variabele hebben die aan het werk is – bijvoorbeeld als in het begin van de test er een actie loopt en later niet.

      De vraag is ook waarom je dit zou doen. Als je op een kleiner percentage van de traffic een test draait, moet je test veel langer lopen om valide uitspraken te kunnen doen.

  3. Hi Mike,

    Dan zul je inderdaad minder snel last hebben van een Simpsons Paradox. Echter, kun je dan nog steeds een 3e variabele hebben die aan het werk is – bijvoorbeeld als in het begin van de test er een actie loopt en later niet.

    De vraag is ook waarom je dit zou doen. Als je op een kleiner percentage van de traffic een test draait, moet je test veel langer lopen om valide uitspraken te kunnen doen.

  4. Het paradox treed niet op als je de getallen goed optelt!
    Het aantal bezoekers en de conversie zijn samen een breuk en daarom ontstaat er een fout als je ze optelt.
    Conversie gedeeld door (1/100ste van) bezoekers
    En net als je 1/2 + 1/4 niet optelt als 2/6 = 0,33 maar als 2/4+1/4=3/4 = 0,75 moet je bij optelling eerst de noemer gelijkmaken.
    Dus bezoekers A worden 7 maal 2000 en conversie 2 x 180 en 5 x 160
    Als je dit goed doet bij A en B komt er als eindresultaat uit 8,28 en 8,8 en blijft B de beste optie.
    Wat ook logisch is als hij elke dag al de beste is.

Reacties zijn gesloten.