A túlélési elemzés nem arra válaszol, hogy elpártol-e az ügyfél, hanem arra, hogy mikor. Az alapfogalmak, az üzleti alkalmazások és egy futtatható Python példa Kaplan-Meier és Cox-modellel a Telco churn adathalmazon.
A túlélési elemzés arra a kérdésre válaszol, hogy mennyi idő telik el egy esemény bekövetkezéséig, és mekkora az esélye, hogy az esemény egy adott időpontig még nem történt meg. Az orvosi kutatásból származik, a nevével ellentétben viszont bármilyen olyan üzleti kérdésre használható, ahol nem az a kérdés, hogy megtörténik-e valami, hanem hogy mikor.
Ez a különbség a lényeg. Egy klasszikus osztályozó modell megmondja, hogy egy ügyfél valószínűleg elpártol-e. A túlélési elemzés megmondja, hogy mikor, és azt is, hogyan változik ez az esély a szerződés hónapjainak múlásával. Egy ügyfélmegtartási kampánynál ez a különbség a kampány időzítését jelenti.
A poszt eredetileg 2020 augusztusában jelent meg. A kódrészeket a mai lifelines-verzióra frissítettük, hogy le is futtathatók legyenek, a módszertani rész változatlan.
Mi a túlélési elemzés?
A túlélési elemzés a time-to-event analízis eszközkészlete. Eredetileg páciensek túlélési idejének vizsgálatára fejlesztették ki, innen a név és a szaknyelv nagy része is. Az adattudományban ugyanezek a módszerek akkor jönnek szóba, amikor egy esemény bekövetkezéséig eltelt időt vizsgáljuk.
Négy fogalom kell hozzá.
Fogalom
Mit jelent
Churn-példa
Célesemény
Az esemény, amelynek bekövetkezését vizsgáljuk (a szaknyelvben halál esemény)
Az ügyfél felmondja a szerződést
Kezdeti esemény
Az az időpont, ahonnan az időt mérjük
A szerződéskötés napja
Cenzorált megfigyelés
Olyan eset, ahol a célesemény az adatgyűjtés végéig nem következett be
Az ügyfél a vizsgálat végén még mindig aktív
Túlélési függvény
Megadja, hogy egy adott időpillanatban mekkora a valószínűsége, hogy a célesemény még nem következett be
Mekkora eséllyel van még nálunk az ügyfél a 24. hónapban
A cenzorált adat kezelése az, amiért egyáltalán érdemes ezt a módszercsaládot elővenni. Egy churn-elemzésnél az ügyfelek nagy része a vizsgálat végén még aktív, tehát a szerződésük hossza nem a végleges élettartamuk, csak annyi, amennyit eddig láttunk belőle. Ha ezeket egyszerűen kihagyjuk, a becslés torzít, és túl rövid élettartamot kapunk. Ha úgy kezeljük őket, mintha elpártoltak volna, még rosszabb. A túlélési elemzés módszerei ezt az információt részlegesként tudják felhasználni.
A túlélési függvény 1-ből indul, mert a kezdeti pillanatban még senkinél nem történt meg az esemény, és az idő múlásával 0 felé csökken.
Hol használják ezt üzleti környezetben?
Terület
Célesemény
Mit kezdenek az eredménnyel
Előfizetéses szolgáltatás, telekom, média
Az ügyfél felmondja a szerződést
Megtartási kampány időzítése, az ügyfélérték becslése
Marketing
Leiratkozás a hírlevélről
A kommunikáció ritmusának és tartalmának tervezése
Az ipari felhasználás logikája szinte azonos a churnnal, csak az alany más: ott az alkatrész élettartama a kérdés, és a cenzorált eset az a gép, amelyik a vizsgálat végén még működik. Ez az egyik oka annak, hogy ugyanaz a módszertani tudás sokféle iparágban hasznosul.
A példa adata
A példához a Kaggle Telco Customer Churn adathalmazát használjuk, ami egy távközlési szolgáltató hozzávetőleg hétezer ügyfelének adatait tartalmazza. A számunkra fontos oszlopok:
tenure: hány hónapja ügyfél, ez az időtartam
Churn: elpártolt-e, ez a célesemény
Contract: a szerződés típusa (havi, éves, kétéves)
MonthlyCharges, InternetService, PaymentMethod és a többi magyarázó változó
Az előkészítés három lépés, és mindhárom kihagyása konkrét hibaüzenetet eredményez később.
Kaplan-Meier: az első kép az adatról
A Kaplan-Meier-becslés nemparaméteres módszer, vagyis nem tesz feltevést a túlélési idő eloszlásáról, és a cenzorált megfigyeléseket is figyelembe veszi. Egyetlen görbét ad az egész populációra, tehát minden ügyfélre ugyanazt a túlélési valószínűséget feltételezi.
A median_survival_time_ azt az időpontot adja meg, ahol a túlélési valószínűség 0,5 alá esik. Ez az a szám, amit üzleti beszélgetésben a legkönnyebb használni: ennyi hónap az az idő, ameddig az ügyfelek fele biztosan velünk marad.
Az egyetlen görbe viszont keveset mond, mert egy átlagot mutat. A módszer akkor lesz igazán hasznos, ha csoportokra bontjuk.
Forrás: Dmlab
Szegmentálás: hol van a valódi különbség?
A szerződéstípus szerinti bontás mutatja meg a legerősebb összefüggést: a havi szerződéssel rendelkező ügyfelek görbéje esik a leggyorsabban, az éves és a kétéves szerződéseké jóval lassabban.
Itt érdemes megállni egy pillanatra, mert ez a fajta eredmény könnyen félreértelmezhető. Nem arról van szó, hogy a hosszabb szerződés megtartja az ügyfelet: sokkal inkább arról, hogy aki hosszabb szerződést választ, az eleve elkötelezettebb. A görbe egy összefüggést mutat, nem egy beavatkozás hatását.
Cox-regresszió: több változó egyszerre
A Kaplan-Meier egy változó szerint tud bontani. A Cox-féle arányos kockázati modell ennél többet ad: egyszerre több magyarázó változó hatását becsüli meg, regressziószerű együtthatókkal, amelyek egymással összevethetők.
A print_summary() kimenetében az együttható előjele a lényeg: a pozitív érték növeli, a negatív csökkenti a kockázatot, vagyis a célesemény bekövetkezésének esélyét az adott pillanatban. A exp(coef) oszlop ezt közvetlenül értelmezhető formában adja meg, például hogy egy adott szerződéstípus hányszorosára változtatja a felmondás kockázatát a referenciacsoporthoz képest.
A concordance_index_ a modell rangsorolási képességét mutatja: azt, hogy milyen arányban rendezi helyes sorrendbe két ügyfelet aszerint, melyik hagyja el előbb a szolgáltatást. A 0,5 a véletlen szintje, az 1 a tökéletes.
Egyedi előrejelzéshez a modell két hasznos metódust ad:
A modell kimenete önmagában még nem üzleti érték. Négy dolog kell hozzá.
Kit szólítunk meg és mikor. A túlélési elemzés előnye pont az, hogy nem csak rangsort ad, hanem időzítést. Ha a görbe egy adott ügyfélcsoportnál a nyolcadik és a tizenkettedik hónap között esik a legmeredekebben, akkor a megtartási ajánlat ott a leghatékonyabb, nem a szerződés végén.
Mennyit érdemes rá költeni. A várható élettartamból és a havi díjból becsülhető az ügyfélérték, ebből pedig az, hogy mekkora kedvezmény térül meg még.
A modell tényleg jó-e. Itt ugyanazok a csapdák lesnek, mint bármelyik prediktív modellnél. Ha az adatba beszivárgott olyan információ, ami a valóságban csak a felmondás után áll rendelkezésre, akkor a modell szép eredményt ad és semmit nem ér. A gyakori modellkiértékelési hibák ennél a feladatnál különösen könnyen előjönnek, mert az időbeli szerkezet becsapós.
Ki fog cselekedni az eredmény alapján. Egy churn-modell akkor hoz pénzt, ha van olyan folyamat, ami a jelzést kezeli. Ez nem technikai kérdés, de a projekt sikerén ez dönt a legtöbbet, és ezért is érdemes egy ilyen prediktív projektet már a tervezéskor a döntésből visszafelé felépíteni.
Eszközök
Pythonban három könyvtár jön szóba. A lifelines a legkönnyebben induló, a Kaplan-Meier és a Cox-modell mellett parametrikus modelleket és diagnosztikát is ad, és a dokumentációja kiváló. A scikit-survival akkor jobb, ha a túlélési elemzést gépi tanulási keretbe illesztjük, mert a scikit-learn API-jára épül, és van benne random forest és gradient boosting alapú túlélési modell is. A pysurvival neurális hálós megközelítést is kínál.
Kezdéshez a lifelines elég, és a fenti példa is ezzel készült.
Gyakori kérdések
Mi a különbség a túlélési elemzés és egy churn-osztályozó között?
Az osztályozó azt becsüli, elpártol-e az ügyfél egy adott időszakban, a túlélési elemzés pedig azt, hogy mikor, és milyen eséllyel marad meg az egyes időpontokig. Az utóbbi a cenzorált eseteket is fel tudja használni, és időzítést is ad, nem csak rangsort.
Mit jelent a cenzorált adat?
Azt az esetet, ahol a vizsgált esemény az adatgyűjtés végéig nem következett be, tehát csak annyit tudunk, hogy az élettartam legalább ennyi volt. Egy churn-adatban az aktív ügyfelek mind ilyenek, és jellemzően ők vannak többségben.
Kell hozzá sok adat?
A Kaplan-Meier néhány száz megfigyeléssel is értelmes görbét ad, a Cox-modellnél viszont a bevont változók száma és az események (nem cenzorált esetek) száma számít. Az ökölszabály szerint eseményenként legalább tíz megfigyelést érdemes tartani változónként.
Az együtthatók ok-okozati összefüggést mutatnak?
Nem. A Cox-modell összefüggéseket mutat, és a szerződéstípus példája jól szemlélteti, mennyire félrevezető lehet ezt hatásként értelmezni. Beavatkozás hatását csak kísérlettel vagy kifejezetten kauzális módszerekkel lehet megbecsülni.
Használható-e ez prediktív karbantartásra?
Igen, a szerkezet ugyanaz: a célesemény a meghibásodás, az időtartam a gép vagy alkatrész üzemideje, a cenzorált eset pedig a még működő egység. A gyakorlati különbség az, hogy ott jellemzően több szenzoradat van, és az időben változó magyarázó változók kezelése is előjön.
Elemezzük ki az adataid
Ha van ügyfél- vagy üzemadatod, amiből meg lehetne mondani, mennyi idő van egy esemény bekövetkezéséig, az első lépés általában nem a modell, hanem az, hogy megnézzük, mit tartalmaz az adat és milyen döntést lehet rá alapozni. Ez az adatelemzés része.
Leíró, diagnosztikus, prediktív vagy preskriptív: négy projekttípus, négy különböző üzleti kérdésre. Táblázattal és valós projektpéldákkal ahhoz, hogy eldöntsd, a céged melyikkel induljon.
A magyarázható MI nem egy modelltípus, hanem eszközkészlet arra, hogy megtudjuk, mire alapoz a modell. Áttekintés az ante-hoc és post-hoc módszerekről, a LIME-ról és a SHAP-ról, valamint arról, mit vár a magyarázattól a szabályozás.
Az intralogisztika évtizedekkel lemaradt a gyártás digitalizálásához képest, és éppen ezért van benne a legtöbb kiaknázatlan lehetőség. Öt terület, ahol az adatból mérhető haszon lesz, egy valódi flottaprojekt számaival.