Ponyvaregény az A/B/n teszt kiértékeléséről - teajóslástól a mélyelemzésig

Áron Igmándy
Mito
Published in
9 min readFeb 25, 2019

Készen kapott teszteredményeket böngészve végigfut az ember fejében, hogy milyen mélység lapulhat a végeredmény mögött? Minden grammra kimérve, komoly háttérkutatással megtámogatva van felépítve, mint egy újvonalas Tarantino-forgatókönyv, vagy a statisztika kozmetikusainak áldozatai vagyunk épp? Meg egyébként is:

ha a regformunkra futtatott A/B/n tesztünk 10%-kal jobban szerepel “B“ esetben, annak örülünk, Vincent?

Reflektálva a klasszikus mondatzárásra, öt Ponyvaregény-idézettel fogom megválaszolni azt, fokozatosan lépdelve egy ideális állapot felé, mindig egy-egy fontos aspektusát kibontva a tesztkiértékelés folyamatának. Műismeret előny, de nem kritérium - szóval, Vincent?

Jah… örülünk.

Az eredmények szignifikanciájáról

Mert az alapvetően jót jelent, ha A/B/n tesztelünk, mutatja, hogy érdekeltek vagyunk mélyebben megérteni az oldalunkon futó folyamatokat, és nem félünk ehhez adat alapon nyúlni. Azzal viszont vigyáznunk kell, hogy a kontextus nélkül kiragadott statisztikai mérőszámok minden jószándék ellenére hajlamosak rossz irányba terelni minket. Ilyen kontextusok lehetnek a mérés beállításai, a másodlagos KPI-ok vagy maga a vizsgált eredmény halmazának tulajdonságai is — ezek mind fontosak. Ebből eredően, ha a kontextus mérőszámaival nem foglalkozunk, attól a ponttól hozhatunk döntést akár végtelen számú A/B/n tesztből is, megtámogatott eredmények nélkül az egész nem ér többet, mintha egy szimpatikus kuruzslóra és két marék Pickwick teafűre alapoznánk a döntéseinket.

Az egyszerűség kedvéért most vegyük végig alapvetésnek, hogy minden mérés a helyén van, így biztosan tudunk támaszkodni az adatokra és az azokból eredő további kontextuális elemekre - ennyi idealizmus szükséges lesz, így is akad témánk bőven. Kezdjük magával a kapott eredmény kiértékelésével:

A legnagyobb hiba, amit egy A/B/n teszt kiértékelése közben elkövethetünk: a Type 1 error. Magyarul talán a “fals pozitív” a legközelebbi kifejezés erre — nem hangzik jól, nem is az: téves mérőszámok vizsgálatával téves következtetésre jutva rossz döntést hozni.

Ezek a helyzetek körültekintő “odanemfigyelés” mellett úgy állhatnak elő, hogy a vizsgált minta eltérést mutat a valósággal szemben, és erre nem jövünk rá:

- Hey Jules, 10%-kal jobban szerepel “B” verzió!
- Milyen mintán Bratt?
- …. ööö, 42 sessionön….
- Én pedig lesújtok majd tereád hatalmas bosszúval és rettentő haraggal, és amazokra is, akik testvéreim ármányos elpusztítására törnek, és majd megtudjátok, hogy az én nevem az Úr, amikor szörnyű bosszúm lesújt rátok
… bang… bang… bang… bang… Bratt vérbe fagyva hullik a földre.

Hogy ne járjunk úgy mint Bratt, fontos hogy tudjuk mikor számít relevánsnak egy teszt. Hogy ezt megállapítsuk nincs más dolgunk mint használni az akadémiai szinten nagyon kedvelt statisztikai szignifikancia mérőszámot (sok helyen találkozhattok vele a “Chance to beat baseline”-hoz hasonló néven is), amihez tartozó képlet így néz ki:

OH CRAP! És ezek után még kell pár transformáció hogy százalékos értékké érjen az eredmény.

Ez a rettenetes képlet amúgy egész egyszerűen annyit mond meg, hogy milyen magabiztossággal lehet azt mondani: az eredeti példában használt “A” és “B” variáns közül “B” mindig jobb lesz. A statisztika szereti (és kivagyok én, hogy ellentmondjak olyan embereknek, akik értik, mi folyik a felső képletben?) A/B teszteknél a 95%-ot beállítani, mint magabiztossági alsó határ arra, hogy biztosan kijelenthessük, “B” jobb eredményeket produkál.

Ha ma délután nincs épp pár órátok megépíteni egy ilyen algoritmust Excelben, akkor addig használjátok nyugodtan Neil Patel online kalkulátorát, ami A/B tesztekre kiválóan működik. Igen, itt van egy kis catch is, A/B/n teszteknél érdemes fejben elvégezni egy Bonferroni-korrekciót, ami gyakorlatban annyit tesz hogy több verziónál kismértékben érdemes növelni az elvárt szignifikancia mértékét. Ezt úgy tehetjük meg az olasz statisztikus módszere alapján, ha az eredeti verzión felül végzett kísérletek számával elosztjuk a szignifikanciahatár és a 100% közti különbséget (4 variánsnál, amibe nem értjük bele az eredetit, tehát a szignifikancia alsó határa 95% helyett 100% - {[100%-95%]/4} = 98,75% lesz) — ezzel kiküszöbölve a több verzió által okozott anomáliákat.

Akkor most ennek a tudásnak a bírtokában kicsit írjuk át az előbb elhangzott jelenetet:

- Hey Jules, 10%-kal jobban szerepel “B” verzió az eredetihez képest egy 4 variánsos teszten 98,8%-os statisztikai szignifikancia mellett!
- Ez kurvajól hangzik, Bratt!
…folytatás következik…

Mostmár legalább egy kicsit örülünk Vincent, mert biztosan tudjuk hogy a két verzió közül melyik a jobban konvergáló, de fontos részlet a statisztikai szignifikancia meghatározásánál, hogy ez nem egy mintával együtt lineárisan növekvő szám. Az eredmények vonzatában a minta növelésével megtörténhet, hogy hullámzik a statisztikai szignifikancia mértéke.

Hullámzás? Azzal nemigazán tudok mit kezdeni, akkor most meddig várjunk?

Ebből tudhatod, hogy valaki igazit találtál, amikor egy büdös szót se szóltok egy percig, és jól esik a közös hallgatás.

A tesztfuttatás ideális hosszáról

A statisztikai szignifikancia hullámzása a tulajdonság, ami miatt ajánlott már a teszt megkezdése előtt eldönteni, mik azok a célszámok, amik teljesülése nélkül nem is érdemes ránézni az eredményre. Ezeket legtöbbször időtáv, felhasználószám és/vagy konverziós események bekövetkezési számának formájában érdemes meghatározni.

Szignifikanciaváltozás a tesztesetek számának növekedésével (forrás: Conversion sciences)

A felhasználók és a konverziók száma estén könnyebb dolgunk van, a cél csak a megfelelő szignifikancia elérése, így a felső határ rugalmasan változhat egy minimum érték meghatározása mellett (általában havi 1000 releváns konverziónál szoktuk meghúzni a vonalat arra vonatkozóan, kinek megtérülő már A/B tesztekkel foglalkoznia).

Az időtáv kiválasztása már eggyel trükkösebb. Itt nincs univerzális megfejtés, viszont három erős ökölszabály egyre hangosabban terjed az erre specializált közösségekben:

  • 1 hétig mindenképpen menjen a teszt, így lehetsz elég biztos abban, hogy mindenféle felhasználód szerepelni fog a mintádban
  • 1 hónapnál hosszabban csak nagyon indokolt esetben futtassunk egy tesztet, mert sokszor ilyen időtávon már érzékelhetőek szezonális különbségek a felhasználók viselkedésében, ami lehetetlenné teszi az időben eltolódó tesztek objektív összehasonlítását
  • Minden teszttel várjunk meg két teljes business cycle-t, így ki lehet ütni a novelty effectből (“Hé, ez valami új, rányomok, megnézem mi történik”) származó felülteljesítéseket

Természetesen nagyon sokszor ezutóbbi kiüti az első kettőt, azért be ne szarj, ezt majd később még elővesszük.

Amúgy jól vagy?

Nem vagyok jól, kibaszott cefetül vagyok, nem vagyok jól…

A különböző szintű mérőszámok összehasonlításáról

Futtatod a tesztet, sőt, jó beállításokkal futtatod a tesztet, neadjisten még statisztikailag szignifikáns különbségek is jönnek ki. Kiválasztod a legjobbat, büszkén hátradőlsz, és év végén elmarad a bónusz a rossz eredmények miatt. Véletlen? Aligha..

Az A/B/n teszteket mindig egy bizonyos céllal hozzuk létre, és ez a cél gyakorta eltér a teljes felület fő céljától, esetlegesen egyéb fontos céloktól. Ebből eredendően könnyen előfordulhat, hogy egy változtatás hatására például többen töltenek ki addicionális információmezőket, de ezzel együtt kevesebben vásárolnak. Folytassuk a félbehagyott sztorit: szegény Bratt…

- Hey Jules, 10%-kal jobban szerepel “B” verzió az eredetihez képest egy 4 variánsos teszten 98,8%-os statisztikai szignifikancia mellett!
- Ez kurvajól hangzik Bratt! Ömlik az infó a preferenciákról, mindeközben Mr.Wallace-hoz is ugyanannyi pénz folyik be mint korábban, ugye?
- Hogy mi?
- Mondd ezt még egyszer. Mondd ezt még egyszer, hogy hogy mi. Mondd még egyszer, ha mered te faszfej, baszd meg! Mondd még egyszer, ha mered!
- Szóval csak azt akarom mondani hogy sajnálom, hogy ez a dolog így elszaródott köztünk és Mr.Wallace között, és a vásárlási konverzió 2%-ot csökk…
… bang... bang… bang…

Újabb értékes lecke arról, hogy addicionális “szórakozáspreferenciás” adatokkal nagyon nehéz fizetni a sajtos McRoyalért, így valószínűleg egy teszt is többet jövedelmez, ha megvizsgáljuk a tesztszintű és a globális szintű KPI-okat mielőtt végső győztest hirdetünk. Tovább megyek, akár kibontogathatod a kapott eredményeket üzleti szempontból kritikus szegmentációk alapján is, hogy a több szignifikáns eredmény nyomán különböző userspecifikus variánsokkal állj elő (például: nagyátlagban és az új userek között “B” verzió nyert, de a kevés visszatérőnk látványosan jobban konvergált “A”-ra, ez alapján érdemes lehet perszonalizálni).

Nem egyszerű, és lesz még mélyebb. Azt tudtad, hogy a döntéshozóknak általában nem a % a kedvenc jele?

Eltaláltad, baszd meg, nem fontban mérnek

Az A/B/n tesztelés pénzügyi oldaláról

Ezen a ponton már akár jól is érezhetnénk magunkat, de:

- Hey Jules, 10%-kal jobban szerepel “B” verzió az eredetihez képest, gyakorlatilag minden szegmensben egy 4 variánsos teszten 98,8%-os statisztikai szignifikancia mellett, de a teljes vásárlási konverziót 2%-kal rontja, mi legyen?
- Százalék?! Olyan pénznemről még nem hallottam. Elfogadják azt a McDonald’s-ban?
- Hogy mi?

… bang… bang…

Apró dolognak tűnik, de már kisebb volumennel operáló cégeknél is kritikus az A/B/n tesztek kiértékelésénél folyamatosan figyelni a $$$ mutatókat, több szinten is.

Egyrészt fontos, ha egymással ellentétes eredményeket kapunk, akkor forintosítani kell az eredményeket, hogy üzletileg releváns válaszokat tudjunk prezentálni. Megérheti egy specifikus rész 10%-kal jobb teljesítménye azt, hogy a nap végén 2%-kal kevesebb összbevételt generálunk, ha a specifikus rész a jobb haszonkulcs miatt megfelelő mértékben növeli a profitot. És ha ilyen mérőszámok alapján tudunk dolgozni, akkor már érdemes arra is figyelni, hogy a teszt alatt is a lehető legkevesebb zöldhasú folyjon ki a kezünk közül:

Mert a való életben egy sok változattal dolgozó tesztről könnyen kiderülhet hogy a változatok több mint fele nemhogy termel, hanem valószínűleg viszi is a pénzt, így nem lenne szerencsés ezeket túlságosan sokáig nagy mintán futtatni. Persze itt felmerülhet, hogy miért nem kapcsoljuk ki ezeket a variánsokat ilyenkor, de erre már csípőből mondhatod, hogy hullámzó statisztikai szignifikancia miatt egy hetet szükséges várni (jár a fistbump ha tényleg jött élből) — szóval itt egy egész kifinomult matematikai megoldáshoz érdemes nyúlni, a többkarú rabló problémánál nagy népszerűségnek örvendő Bayes-tételhez. Ezt a statisztikai módszert alkalmazva az ígéretesebbnek tűnő variánsokra nagyobb forgalmat tudunk terelni, és ezt ütemesen többször elvégezve (érdemes napos rendszerességgel újrastrukturálni ez alapján az egyes variánsok disztribúcióját) egyszerre kaphatunk szignifikáns eredményeket minden variánsunkra, és tudunk nagyobb forgalmat terelni a jól szereplő tesztesetekre.

Ritka esete ez a “kecske is jól lakik, káposzta is megmarad” példázatnak üzleti körökben. Így a cikk vége felé közeledve a kecskéről jut eszembe…

Puskát kellett volna hoznunk ehhez a melóhoz.

A felhasználókövetésről

A legtöbb helyen már az előző rész mélysége is örök backlog itemként árválkodik a tervekben, miközben ezek után is marad még a kiértékelésnek olyan dimenziója, ami kötelező pontnak tekinthető a saját felhasználóbázison végzett kísérletezés során, ez pedig a hosszú távú hatás:

- Hey Jules, 10%-kal jobban szerepel “B” verzió az eredetihez képest, gyakorlatilag minden szegmensben egy 4 variánsos teszten 98,8%-os statisztikai szignifikancia mellett, de a teljes vásárlási konverziót 2%-kal rontja, bár ígyis 31.420$-ral nő Mr.Wallace bevétele havi szinten, jó ez így?
- És ez így is fog maradni?

Brett lassan fejéhez emeli saját fegyverét és… bang…

Lifetime value-t számolni sokszor a kiváltságosok privilégiuma, ahhoz hogy ilyen szintű metrikát pontosan lássunk, egyszerre kell rendben lennie az offline, az online felhasználókövetésnek és gyakorlatilag minden típusú mérésnek is, ráadásul mindez historikusan, hiba nélkül. Ritka állat, na.. Viszont, ha erre képesek vagyunk akkor kitudjuk szűrni azokat a túlteljesítő variánsokat, amik adott tesztidőszakon jól teljesítettek, de hosszú távon azt eredményezték, hogy a felhasználóink soha többet nem akartak visszatérni hozzánk: ezzel visszaérve a novelty effect-re. Mielőtt erre építve belekezdenénk egy gyűlöletbeszédbe a világ popupjai ellen rá is fordulhatunk a fináléra:

Tarantinónál is ritka a happy ending, én se akarnék ilyet, így mi lenne, ha Brett tökéletes válaszát ti tennétek ki a fentiek alapján?

End credits:
Köszönet Hudák Rékának, Csákvári Tibornak és Minorics Dávidnak a fact checkért, Schéry Andrásnak pedig a Ponyvaregény kiváló magyar szövegéért.

Cikkek amikből még több részletet megtudhatsz:

Rólunk

A Mito kreatív és digitális ügynökség, és az ügynökségi munkák mellett komoly fejlesztéseket is végzünk, büszkék vagyunk rá, hogy többek közt az OTP Bank, a Magyar Telekom, a Deutsche Telekom, a WIZZ Air, a Szerencsejáték Zrt., valamint az izlandi lottótársaság számára szállíthatunk webes és mobil megoldásokat.

http://mito.hu és http://mito.hu/jobs

--

--