Zephyrnet-logo

RFM en CLTV om uw klanten beter te leren kennen

Datum:


Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.
RFM en CLTV | Levenslange waarde van de klant
                                                                                       S

RFM en CLTV zijn twee methoden die vaak worden gebruikt om de klantwaarde te analyseren. CLTV of CLV staat voor het bedrag dat een klant tijdens zijn of haar leven in uw bedrijf verwacht te besteden en kan worden gebruikt om uw marketinginspanningen te optimaliseren. RFM wordt vaak gebruikt voor het segmenteren van marketingstrategieën voor verschillende segmenten. CLTV helpt u te bepalen hoeveel geld u moet uitgeven om nieuwe klanten te werven en bestaande klanten te behouden.

Dit leert u hoe u Panda's en Lifetimes-modules kunt gebruiken om RFM- en CLTV-analyses in Python uit te voeren. De belangrijkste focus zal CLTV zijn, en we zullen onze RFM-segmenten creëren en toevoegen aan onze gegevens, zodat we onze analyse van CLTV effectiever kunnen interpreteren.

Laten we eens kijken naar onze gegevens

RFM en CLTV

Foto door Rick Metselaar on Unsplash

Voor de analyse van vandaag gebruiken we de Online Retail 2-dataset. Deze dataset bevat alle transacties die zijn geregistreerd voor een online retailer die is gevestigd en geregistreerd in het VK tussen 2009-12-01 en 2011-12-09. De retailer is gespecialiseerd in cadeauartikelen voor alle gelegenheden. De meeste klanten van de retailer zijn groothandels. De dataset heeft de volgende kenmerken:

  • InvoiceNo: Factuurnummer. Nominaal. Aan elke transactie wordt een uniek 6-cijferig integraal nummer toegekend. Als deze code begint met de letter 'C', duidt dit op een annulering.
  • StockCode: Product (artikel)code. Nominaal. Een geheel getal van 5 cijfers wordt uniek toegewezen aan elk afzonderlijk product.
  • Description: Product (item) naam. Nominaal.
  • Quantity: De hoeveelheden van elk product (item) per transactie. Numeriek.
  • InvoiceDate: Factuurdatum en -tijd. Numeriek. De dag en het tijdstip waarop een transactie is gegenereerd.
  • UnitPrice: Eenheid prijs. Numeriek. Productprijs per eenheid in sterling (£).
  • CustomerID: Klantnummer. Nominaal. Een 5-cijferig integraal nummer wordt uniek toegewezen aan elke klant.
  • Country: Naam van het land. Nominaal. De naam van het land waar een klant woont.

We zullen ons tussen 2010-2011 concentreren op aankopen van Britse klanten. Bevindingen uit verkennende gegevensanalyse zijn als volgt:

  • · Er zijn 485123 observatie-eenheden, 8 attributen.
  • · Er zijn 130802 null-waarden in klant-ID.
  • · Er zijn 3844 unieke producten.
  • · Er zijn 9288 komt terug.
  • · Er zijn veel uitbijters en negatieve waarden in Hoeveelheid en Prijs kolommen.
  • · Meest gezien product in dataset Witte hangende hart T-Light houder.
  • · Het item dat de meeste omzet genereerde is Paper Craft, klein vogeltje.

Iframe niet ondersteund

De gegevens voorbereiden voor analyse

Analyseer uw gegevens
                                                           Foto door Markus winkler on Unsplash

Eerst laten we null-waarden op CustomerID vallen. Voor uitschieters, aangezien het er veel zijn, willen we ze niet allemaal laten vallen. In plaats daarvan vervangen we onze uitbijters door ±1.5*IQR. Vervolgens maken we onze TotalPrice-kolom die we zullen gebruiken om ons Monetair te berekenen.

Zoals vermeld in de moduledocumentatie van Lifetime, moeten we onze gegevens in een bepaalde vorm plaatsen die uit 4 kolommen bestaat en we zullen CustomerID als onze index gebruiken.

  • Frequency: Aantal herhalingsaankopen die de klant heeft gedaan.
  • T: Eerste aankoop van de klant en het einde van de studieperiode. We zullen de wekelijkse leeftijd gebruiken in onze analyse.
  • Recency: De duur tussen de eerste aankoop van een klant en zijn laatste aankoop.
  • Monetary: gemiddelde waarde van de aankopen van een bepaalde klant.

De laatste InvoiceDate die beschikbaar is in de dataset is 2011–12–09. We moeten een goede analysedatum selecteren, aangezien er 10 jaar zijn verstreken sinds de laatste invoer en dan beginnen met het voorbereiden van onze kolommen. We berekenen de levensduur (duur) van de klant op een wekelijkse schaal, daarom delen we onze recentheid en T-kolommen door 7.

Na reiniging en voorbereiding zien onze gegevens er zo uit:

Iframe niet ondersteund

Theorie en modellering

Voordat we in modellering duiken, wil ik het hebben over de theorie achter onze modellen. Zoals eerder vermeld, is CLTV de geldwaarde die een klant aan het bedrijf zal brengen tijdens de relatie en communicatie met een bedrijf. De meest elementaire definitie zou zijn:

CTLV = aantal transacties * gemiddelde bestelwaarde

Omdat we onze CLTV proberen te voorspellen met behulp van waarschijnlijkheid met tijdprojectie, moeten we 2 verschillende modellen gebruiken. De eerste is het Beta Geometrisch / Negatief Binomiaal distributiemodel (BG/NBD) dat de berekent Verwacht aantal transacties. En de tweede is het Gamma Gamma-submodel dat de zal berekenen Gemiddelde bestelwaarde.

Theorie en modellering
                                                                                   Bron: auteur

Voor het modelleren passen we eerst onze Frequency, Recency en T kolommen naar BG/NBD-model en Frequency, Monetary kolommen naar ons Gamma Gamma-submodel. Dan noemen we de customer_lifetime_valuefunctie op ons Gamma-model met BG/NBD als eerste parameter. We vermelden ook onze voorspellingslengte in maanden met behulp van time parameters. We vermelden de frequentie die we hebben gebruikt om onze Tenure te berekenen, in dit geval 'W' voor wekelijks. Na berekening zijn de waarden nog steeds moeilijk te interpreteren, dus we moeten ze op een schaal zetten. Met behulp van MinMaxScaler uit de scikit-learn-module zetten we onze CLTV-voorspellingen op een schaal van 0 tot 1.

Zo zien onze gegevens eruit na het berekenen en schalen van CLTV:

Iframe niet ondersteund

RFM (recentheid, frequentie, geldelijk)

RFM en CLTV
                                                    Foto door Amy Shamblen on Unsplash

Voor een betere interpretatie zullen we RFM-segmenten toevoegen aan onze CLTV-tabel. Op deze manier kunnen we onze resultaten van beide methoden vergelijken. Laten we eerst onze RFM-statistieken, scores en segmenten maken.

Zo zien onze RFM-resultaten eruit:

Iframe niet ondersteund

En dit is de verdeling van onze RFM-segmenten:

RFM-segmenten en CLTV
                                                                          Bron: auteur

Resultaten samenbrengen

Door onze RFM-segmenten aan onze CLTV toe te voegen, krijgen we een steviger fundament voor onze interpretatie. We zullen ook projecties van 1 maand en 12 maanden aan onze tabel toevoegen, wat ons zal leiden tot enkele interessante bevindingen over het effect van geld op CLTV-modellering.

Zo zien onze gegevens eruit na toevoeging van RFM-segmenten, 1-maands CLTV en 12-maands CLTV-projecties:

Iframe niet ondersteund

CLTV-segmentatie

Omdat we proberen betere segmentatie- en marketingstrategieën te creëren op basis van RFM en CLTV, zullen we ook segmenten creëren op basis van onze CLTV. 'A' voor onze beste klanten en 'D' voor de slechtste.

Onze finaletafel ziet er als volgt uit:

Iframe niet ondersteund

Discussie

Ik zal de resultaten bespreken en interpreteren op basis van het Pareto-principe. De Pareto-principe stelt dat voor veel uitkomsten ongeveer 80% van de gevolgen voortkomen uit 20% van de oorzaken. In ons geval verwachten we dat 80% van ons inkomen wordt gegenereerd door onze top 20% van klanten. Als we onze segmenten uit beide analyses bekijken:

Iframe niet ondersteund

De meeste van onze kampioenen, loyale klanten en potentiële loyalisten behoren tot het A-segment van onze CLTV-segmentatie, wat logisch is. En als we kijken naar hoeveel waarde ze voor het bedrijf hebben gebracht, dan zien we kampioenen, loyale klanten genereren ongeveer 80% van onze inkomsten. Voor onze topklanten in deze segmenten zou ik het volgende aanbevelen:

  • Organiseer loyaliteitsprogramma's.
  • Adverteer Limited Edition-producten.
  • Geef speciale kortingen.
  • Aanbevelingssystemen afstemmen.
  • Besteed aandacht aan feedback van deze groepen.
  • Bieden speciale kortingen en gratis verzendingen etc.

Voorbehoud

Bij het gebruik van CLTV moeten enkele belangrijke opmerkingen worden gemaakt.

  • De berekening vertegenwoordigt een enkele periode waarin u de analyse hebt uitgevoerd.
  • De churn rate komt van het hele publiek, niet persoonlijk.
  • De winst komt van het hele publiek, niet persoonlijk.
  • De totale prijs is de dominante factor en verplettert het frequentie-effect. Het betekent dat als 2 klanten hetzelfde bedrag hebben meegebracht, de frequentie van hun aankopen er niet toe doet. Dit effect verliest zijn dominantie bij voorspellingen voor langere tijdsperioden. Dit effect is te zien bij klanten 16000 en 15601. Als we kijken naar de voorspellingen van 1 maand, heeft klant 16000 een hogere CLTV dan 15601 vanwege zijn geldelijke waarde. Maar hoge frequentie begint zijn effect op de langere termijn te vertonen en resulteert op de lange termijn in een hogere CLTV voor klant 15601.

En aangezien dit een model is, moeten er enkele statistieken zijn om de prestaties te evalueren. Om een ​​frequentie/recentheidsmatrix te maken die het verwachte aantal transacties berekent dat een kunstmatige klant in de volgende periode moet doen, gezien haar recentheid en frequentie:

oppompen van levens.plotten importeren plot_frequency_recency_matrix plot_frequency_recency_matrix(bgf)
Grafiek plotten
                                                                 Bron: lifetimes.readthedocs.io

En om uw gegevens te vergelijken met kunstmatige gegevens die zijn gesimuleerd met de parameters van uw aangepaste model:

oppompen van levens.plotten importeren plot_period_transactions plot_period_transactions(bgf)
Frequentie van herhaaltransacties
                                                                         Bron: lifetimes.readthedocs.io

Conclusie

CLTV helpt u te bepalen hoeveel geld u zich kunt veroorloven om nieuwe klanten te werven en bestaande klanten te behouden, en RFM kan worden gebruikt om uw klanten te segmenteren om uw marketinginspanningen beter te richten. Alle inspanningen om deze analyses uit te voeren hebben maar één doel, namelijk het nemen van betere zakelijke beslissingen op basis van gegevens. Het gelijktijdig gebruiken van CLTV en RFM en het interpreteren van gegevens op basis van beide analyses kan bedrijven helpen groeien.

Het uitvoeren van deze analyses met behulp van Python- en Lifetimes-modules is niet het belangrijkste en meest gecompliceerde onderdeel. Uw bedrijf kennen, domeinkennis hebben en die kennis gebruiken om bruikbare resultaten uit deze analyses te halen, is de sleutel tot het succes van een bedrijf.

Referenties

  • Het meten van gebruikers is moeilijk. Lifetimes maakt het gemakkelijk.
    Ik heb "levend" en "sterven" geciteerd omdat dit de meest abstracte termen zijn: gebruik gerust uw eigen definitie van "levend" en...levens.readthedocs.io
  • Veri Bilim
    Veri Bilimi Okulu | 18,400 volgers op LinkedIn. Veri odaklı içerik üreticilerini bir araya getiren platform. | Veri…www.linkedin.com
  • Miuul
    Miuul | 3,409 volgers op LinkedIn. Miuul Original®-carrièrepaden | Miuul yapay zeka çözümleri ve veri bilimi…www.linkedin.com
  • Projecten/CRM Analytics/CLTV bij master · h-okay/Projects
    Diverse projecten. Draag bij aan de ontwikkeling van h-okay/Projects door een account aan te maken op GitHub.github.com

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt. 

Bron: https://www.analyticsvidhya.com/blog/2022/01/rfm-and-cltv-to-know-your-customers-better/

spot_img

Laatste intelligentie

spot_img