Vissza blogra

2020. 08. 13. - olvasási idő: 15 perc

Túlélési elemzés az üzletben: ügyfélelvándorlás előrejelzése Pythonban

Dmlab Unicorn
Dmlab Unicorn

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.

Section background image

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á.

FogalomMit jelentChurn-példa
CéleseményAz 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ényAz az időpont, ahonnan az időt mérjükA szerződéskötés napja
Cenzorált megfigyelésOlyan eset, ahol a célesemény az adatgyűjtés végéig nem következett beAz ügyfél a vizsgálat végén még mindig aktív
Túlélési függvényMegadja, hogy egy adott időpillanatban mekkora a valószínűsége, hogy a célesemény még nem következett beMekkora 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ületCéleseményMit kezdenek az eredménnyel
Előfizetéses szolgáltatás, telekom, médiaAz ügyfél felmondja a szerződéstMegtartási kampány időzítése, az ügyfélérték becslése
MarketingLeiratkozás a hírlevélrőlA kommunikáció ritmusának és tartalmának tervezése
BankszektorFizetésképtelenség vagy a hitel előtörlesztéseHitelkockázat becslése, árazás
Ipar 4.0, gyártásGép vagy alkatrész meghibásodásaMegelőző karbantartás tervezése, alkatrészkészlet
EgészségügyBetegség okozta halál, visszaesésKezelés hatékonyságának mérése, gyógyszervizsgálatok
EgyébVállalkozások élettartama, vezetők hivatali idejeKutatás, piacelemzés

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.

Kaplan-Meier túlélési görbe a Telco churn adathalmazon
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 teljes, futtatható példa Jupyter notebook formában itt érhető el.

Túlélési görbék szerződéstípus szerint: havi, éves és kétéves szerződés
Forrás: Dmlab

Hogyan lesz az eredményből döntés?

A modell kimenete önmagában még nem üzleti érték. Négy dolog kell hozzá.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Elemezzük ki az adataid

További cikkek

Magyarázható mesterséges intelligencia: a modell döntése mögötti tényezők

XAI, avagy a magyarázható mesterséges intelligencia

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.

Összes cikk

Kapcsolódó esettanulmányok

Továbbiak