Customer lifetime value (CLV) is the total worth of a customer to a company over the length of their relationship. In practice, this "worth" can be defined as revenue, profit, or any metric of an analyst's choosing.
CLV is an important metric to track for two reasons. First, the totality of a company's CLV over its entire customer base gives a rough idea of its market value. Thus, a company with a high total CLV will appear attractive to investors. Second, CLV analysis can guide the formulation of customer acquisition and retention strategies. For example, special attention could be given to high-value customers to ensure that they stay loyal to the company.
Many CLV models have been developed with different levels of sophistication and accuracy, ranging from rough heuristics to the use of complex probabilistic frameworks. In this blog post series, we delve into one of them: the Beta Geometric Negative Binomial Distribution (BG-NBD) model. This model, developed by Fader, Hardie, and Lee in 2005, has been one of the most influential models in the domain, thanks to its interpretability and accuracy.
This series consists of three blog posts that build on top of one another. Our game plan is as follows. In Part 1, (this blog post), we'll achieve an ELI-5 understanding of the model and its assumptions. Afterwards, we'll see how these assumptions can be modeled by probability distributions.
In Part 2, we'll look into the Python library lifetimes that allow us to conveniently fit a BG-NBD model to a dataset in a sci-kit-learn-like fashion and almost immediately receive the maximum likelihood estimate of the model's parameters. We'll also explore the various downstream analyses that lifetimes enable and understand how these analyses can support business decisions.
In Part 3, we'll look at an alternative way to implement the BG-NBD model, this time from a Bayesian perspective. We’ll see how the Bayesian hierarchical BG-NBD model allows us to inject our prior intuition of customer behavior into the model. To this end, we will be using the Python library PyMC3.
Before digging deeper into the mathematics of BG-NBD, we need to understand what it can and cannot do. There are two major limitations to keep in mind:
Let's learn about these limitations in greater detail.
Depending on the relationship between the sellers and the buyers, a business can either be a contractual business or a non-contractual business.
We can further distinguish between continuous and discrete settings:
Das BG-NBD-Modell befasst sich mit der nicht-vertraglichen, kontinuierlichen Situation, die am häufigsten vorkommt, aber auch die größte Herausforderung bei der Analyse der vier Modelle darstellt. In einer solchen Situation ist die Kundenfluktuation nicht explizit beobachtbar und kann jederzeit eintreten. Dies erschwert die Unterscheidung zwischen Kunden, die auf unbestimmte Zeit abgewandert sind, und solchen, die in Zukunft wiederkommen werden. Wie wir später sehen werden, ist das BG-NBD-Modell in der Lage, jeder dieser beiden Optionen Wahrscheinlichkeiten zuzuweisen.
Der CLV eines Kunden für einen bestimmten Zeitraum kann durch Multiplikation zweier Zahlen berechnet werden:
Normalerweise werden diese beiden Komponenten getrennt angegangen und modelliert. Das BG-NBD-Modell befasst sich mit der ersten Komponente - der Vorhersage der Anzahl der Transaktionen, die in vielerlei Hinsicht die schwierigere der beiden Komponenten ist.
Die zweite Komponente, der erwartete Wert der Käufe, kann entweder durch einfache Heuristiken, wie z. B. den Durchschnitt aller vergangenen Käufe, oder durch ein ausgefeiltes probabilistisches Modell, wie z. B. das Gamma-Gamma-Modell (das ebenfalls von den Autoren von BG-NBD entwickelt wurde), ermittelt werden.
Bisher haben wir uns in unserer Diskussion auf die Berechnung des CLV konzentriert, wofür der BG-NBD ursprünglich gedacht war, BG-NBD ist jedoch vielseitiger als das. Es kann tatsächlich zur Modellierung jedes Phänomens verwendet werden, bei dem verschiedene "Nutzer" wiederholt "Transaktionen" durchführen und vorhersagen, wie viele zukünftige Transaktionen von diesen Nutzern durchgeführt werden, wenn sie noch "aktiv" sind. Zum Beispiel:
Bevor wir uns mit der Mathematik des Modells befassen, wollen wir versuchen zu verstehen, wie das Modell auf konzeptioneller Ebene funktioniert.
Stellen wir uns das folgende Szenario vor. Wir schreiben den 31. Dezember 2021 und Sie sind der Geschäftsführer einer Konditorei. Sie haben alle Transaktionen in diesem Jahr sorgfältig aufgezeichnet und möchten vorhersagen, wie viele Transaktionen Ihre Kunden im Jahr 2022 tätigen werden.
Sie sind zufällig auch ein erfahrener Datenwissenschaftler und planen, diese Vorhersage durch Anpassung eines Modells an Ihre Daten zu erreichen. Dieses Modell sollte in der Lage sein, das Kaufverhalten Ihrer Kunden in einer interpretierbaren Weise zu beschreiben.
Es gibt einige Annahmen, die Sie bei der Entwicklung des Modells berücksichtigen können.
Sie haben festgestellt, dass manche Menschen jeden Tag Kuchen kaufen und manche jedes Wochenende. Andere kaufen sie nur zu besonderen Anlässen, die alle sechs Monate stattfinden.
Ihr Modell muss die Möglichkeit bieten, jedem Kunden eine andere Kaufrate zuzuweisen.
Im hart umkämpften Kuchengeschäft ist Loyalität nicht garantiert. Ihr Kunde kann Ihr Unternehmen jederzeit verlassen und zu einem anderen wechseln. Nennen wir diesen Weggang die "Deaktivierung" eines zuvor aktiven Kunden.
Um eine Deaktivierung bequem zu modellieren, können wir davon ausgehen, dass sie nur nach einem erfolgreichen Kauf erfolgen kann. Das heißt, dass ein Kunde nach jedem Kauf in Ihrem Geschäft entscheidet, ob er weiterhin bei Ihnen einkauft oder zu einem anderen Geschäft wechselt. Die Deaktivierung erfolgt, wenn der Kunde sich für einen Wechsel entscheidet.
Wir gehen davon aus, dass eine Deaktivierung sowohl dauerhaft als auch latent ist. Dauerhaft, weil ein Kunde, der sich einmal für die Abwanderung entschieden hat, nie wieder zurückkehren wird. Latent, weil er nicht explizit auf Sie zukommt, um Ihnen mitzuteilen, dass er nicht mehr Ihr Kunde sein wird.
Betrachten wir nun das folgende Szenario mit zwei Kunden, A und B. Jeder von ihnen hat im Jahr 2021 einige Transaktionen getätigt, und jede Transaktion ist durch einen roten Punkt gekennzeichnet.
Können wir feststellen, welche Kunden sich abgemeldet haben und welche weiterhin Ihr Geschäft besuchen und zu Ihrem zukünftigen Umsatz beitragen werden?
Die Antwort lautet ja - bis zu einem gewissen Grad. Wenn wir uns zum Beispiel das Muster von A anschauen, sehen wir, dass er früher ziemlich häufig eingekauft hat, aber es ist schon eine Weile her, dass Sie ihn gesehen haben. Da seine Zeit zwischen den Transaktionen viel kürzer ist als die Zeit, die seit seiner letzten Transaktion vergangen ist, ist es sehr wahrscheinlich, dass A sich deaktiviert hat.
Andererseits ist B eine seltene Käuferin, und ihr letzter Kauf liegt im Vergleich zu ihrer durchschnittlichen Zeitspanne zwischen den Käufen noch nicht so lange zurück. Es ist ziemlich wahrscheinlich, dass sie wiederkommen wird.
Entwickeln wir nun diese Annahmen zu einem komplexeren Modell weiter
Traditionell wurde der CLV anhand einer einfachen Funktion der Vergangenheitsdaten berechnet. So kann man beispielsweise den Wert zukünftiger Transaktionen schätzen, indem man einen festen Bruchteil des Wertes vergangener Transaktionen nimmt. Es überrascht nicht, dass eine solche Berechnung vereinfachend, unzuverlässig und uninterpretierbar ist.
Das BG-NBD-Modell hingegen ist ein probabilistisches Modell. Bei einem probabilistischen Modell gehen wir davon aus, dass unsere Beobachtungen (d. h. die Transaktionen) durch einen physikalischen Prozess erzeugt werden, den wir mit Hilfe von Wahrscheinlichkeitsverteilungen modellieren können. Unsere Aufgabe ist es, die Parameter zu schätzen, die unsere vorhandenen Beobachtungen am besten erklären. Eine häufig verwendete Option ist die Suche nach Maximum-Likelihood-Schätzern für diese Parameter. Mit diesen geschätzten Parametern können wir dann zukünftige Vorhersagen machen.
Konzentrieren wir uns zunächst auf das Wiederkaufverhalten aktiver Kunden. Wir können davon ausgehen, dass, solange ein Kunde noch aktiv ist, seine Transaktionen einem Poisson-Prozess mit einer konstanten Kaufrate 𝜆 folgen. Unter dieser Annahme können wir die Zeit bis zum nächsten Kauf Δt als eine Exponentialverteilung modellieren, die durch 𝜆 parametrisiert ist. Die pdf dieser Verteilung ist wie folgt:
Jeder aktive Kunde hat seine eigene Exponentialverteilung, die wir zur Vorhersage der Wahrscheinlichkeit des Zeitpunkts des nächsten Kaufs verwenden können.
Das Diagramm zeigt die pdf von zwei Exponentialverteilungen, die zwei Kunden zugeordnet sind. Der erste Kunde (die blaue Kurve) kauft im Allgemeinen jeden Tag einen Kuchen (seine Kaufrate 𝜆 ist 1 Kuchen/Tag). Die Wahrscheinlichkeit, dass der nächste Kauf innerhalb eines Tages nach dem aktuellen Kauf stattfindet, lässt sich ermitteln, indem man die Fläche unter der blauen Kurve zwischen 0 und 1 nimmt und zu 0,63 berechnet.
Der zweite Kunde kauft nur jede Woche einen Kuchen (sein 𝜆 ist 1/7 Kuchen/Tag). Nach Durchführung derselben Integration sehen wir, dass es viel unwahrscheinlicher ist (P = 0,13), dass ihr nächster Kauf irgendwann vor morgen stattfinden wird.
Es ist sinnvoll, sich vorzustellen, dass all diese Kunden mit ihren unterschiedlichen 𝜆's zu einer landesweiten 𝜆-Verteilung beitragen. Unsere Aufgabe besteht nun darin, diese 𝜆-Verteilung zu modellieren. Dabei müssen wir die folgenden Anforderungen erfüllen:
Die Gamma-Verteilung erfüllt alle diese Kriterien; sie wird in BD-NBD zur Modellierung von 𝜆 verwendet. Sie wird durch den Formparameter r und den Skalenparameter α parametrisiert; verschiedene Kombinationen dieser beiden Parameter führen dazu, dass die Gamma-Verteilung unterschiedliche Formen annimmt. Hier ist die pdf der Verteilung:
Es ist wichtig zu wissen, dass diese Gamma-Verteilung nicht nur ein theoretisches Hirngespinst ist. Eine spezifische Gamma-Verteilung ist in der Tat eine quantitative Beschreibung des kollektiven Kaufverhaltens eines bestimmten Kundenstamms, die geschäftliche Auswirkungen hat.
Die blaue Linie zeigt zum Beispiel eine abfallende, linksgerichtete Gamma-Verteilung, die sich ergibt, wenn sowohl Lambda als auch Alpha auf 1 gesetzt werden. Wenn diese Verteilung meinem Kundenstamm entspräche, wäre ich nicht sehr glücklich - die starke Linksneigung bedeutet, dass der Großteil meiner Kunden eine Kaufrate hat, die nahe bei Null liegt. Das heißt, sie kaufen kaum einen Kuchen!
Eine andere Gamma-Verteilung ist in orange dargestellt. Dies ist eine gesündere Verteilung, bei der der 𝜆-Spitzenwert bei 2 liegt, was bedeutet, dass ein beträchtlicher Teil meiner Bevölkerung zwei Torten pro Tag kauft. Gar nicht so schlecht!
Ein kleiner Hinweis für Nerds: Die Kombination aus Poisson/Gamma-Verteilung, die wir zur Modellierung des Kaufverhaltens unserer Kunden verwendet haben, ist auch als Negative Binomialverteilung (NBD) bekannt. Ja, daher stammt auch der Name unseres Modells.
Kommen wir nun zum Deaktivierungsprozess. Wie bereits erwähnt, trifft ein Kunde nach jedem Kauf eine Entscheidung darüber, ob er sich abmeldet oder nicht. Wir können dieser Deaktivierung eine Wahrscheinlichkeit p zuordnen. Folglich ist die Transaktion, nach der sich ein Kunde deaktiviert, gemäß der verschobenen geometrischen Verteilung verteilt. Das pmf dieser diskreten Verteilung ist unten dargestellt:
Dieser pmf ist sehr intuitiv - wenn ein Kunde sich erst nach der x-ten Transaktion deaktiviert, muss er die vorangegangenen x - 1 Transaktionen überlebt haben. Jedes dieser Überleben trägt die Wahrscheinlichkeit (1 - p), daher die Komponente (1-p)x-1.
Diese Grafik vergleicht zwei Kunden mit p = 0,01 und p = 0,1
Bitte beachten:
Ähnlich wie bei 𝜆 ist es sinnvoll, eine Grundgesamtheit von Kunden einer Verteilung p zuzuordnen. Diesmal können wir jedoch nicht die Gamma-Verteilung verwenden, die keine Obergrenze hat. Wir brauchen eine andere Verteilung, die ebenso flexibel ist, deren Werte aber zwischen 0 und 1 liegen (weil p nur zwischen 0 und 1 liegen kann).
Die Beta-Verteilung entspricht unseren Anforderungen. Hier ist die pdf-Datei der Beta-Verteilung:
Wir sehen, dass die Verteilung durch zwei positive Formparameter, a und b, parametrisiert ist. Hier sind einige Beispiele für die Beta-Verteilung:
Ähnlich wie die Gamma-Verteilung hat auch diese Beta-Verteilung geschäftliche Auswirkungen. Sie wünschen sich eine linksschiefe Beta-Verteilung, bei der das meiste Gewicht in der Nähe von 0 liegt, was darauf hindeutet, dass die meisten Ihrer Kunden einen niedrigen p-Wert haben und sich wahrscheinlich nicht frühzeitig abmelden werden.
Noch eine kurze Anmerkung - es ist diese Kombination aus Beta- und geometrischen Verteilungen, die das "BG" im BG-NBD-Modell ergibt. Jetzt wissen Sie Bescheid!
Wir haben uns alle Verteilungen angesehen, mit denen wir das Verhalten unserer Kunden quantitativ beschreiben. Wie erhalten wir nun die besten Parameter für diese Verteilungen?
Eine Möglichkeit besteht darin, die Maximum-Likelihood-Schätzer (MLE) zu ermitteln, d. h. Parameterschätzer, die die Wahrscheinlichkeit maximieren, dass das Modell die tatsächlich beobachteten Daten erzeugt.
Lassen Sie es uns konkreter machen. Nehmen wir an, wir befinden uns zum Zeitpunkt T und schauen uns die historischen Transaktionen eines bestimmten Kunden an, der eine Kaufrate 𝜆 hat. Die erste Transaktion fand zum Zeitpunkt t1 und die letzte zum Zeitpunkt tx statt. Diese Punkte, die auf einer Zeitachse eingezeichnet sind, sehen wie folgt aus:
Wir können die Wahrscheinlichkeitsfunktion dieser Person auf individueller Ebene ableiten, indem wir die folgenden Schritte befolgen:
Wir können dann programmatisch verschiedene Werte von p und 𝜆 ausprobieren und eine Kombination (p, 𝜆) wählen, die diese Wahrscheinlichkeit maximiert. Dies sind dann die "besten" Parameter, die das Kaufverhalten und die Deaktivierung Wahrscheinlichkeit des betreffenden Individuums beschreiben.
Bitte beachten Sie, dass diese Wahrscheinlichkeitsfunktion auf individueller Ebene nur drei unbekannte Variablen umfasst, die aus den Daten geliefert werden müssen:
Interessanterweise werden die genauen Zeitpunkte der früheren Transaktionen (t1 ...bis tx-1) nicht benötigt.
Ein Datensatz, dessen Zeilen verschiedenen Kunden-IDs entsprechen und dessen Spalten die x-, tx- und T-Werte jedes Kunden angeben, wird als "RFM-Format" bezeichnet. Das RFM-Format ist das in der CLV-Analyse häufig verwendete kanonische Format.
Herauszoomen: mathematisches Modell der Wahrscheinlichkeit auf Populationsebene
Als Unternehmen mit (hoffentlich) vielen Kunden sind wir oft nicht so sehr daran interessiert, einzelne Kunden zu betrachten. Vielmehr möchten wir unseren Kundenstamm als Ganzes analysieren. Konkret sind wir daran interessiert, die besten Gamma- und Beta-Verteilungen zu erhalten, die die Leistung unseres gesamten Unternehmens beschreiben.
So wie wir MLE verwenden können, um das beste p und 𝜆 für ein Individuum zu erhalten, können wir auch MLE verwenden, um das beste r, α, a und b für die Population zu erhalten. Ich werde die Likelihood-Gleichung auf Populationsebene in diesem Blogbeitrag nicht ableiten; sie ist ohnehin schon lang genug. Wenn Sie jedoch die Mathematik verstanden haben, sollten Sie in der Lage sein, in die Ableitung einzutauchen, die in der BG-NBD-Veröffentlichung klar erklärt wird.
Künftig
Nun gut, ich weiß, dass wir eine Menge Mathematik durchgenommen haben, was eine Herausforderung sein kann: Gibt es eine Möglichkeit, all diese Gleichungen zu überspringen und einfach zur Umsetzung des Modells überzugehen?
Ich höre Sie! In Teil 2 der Serie werden wir uns die Python-Bibliothek lifetimes ansehen, die es uns ermöglicht, mit ein paar Zeilen Code das MLE von r, α, a und b für a aus einem gegebenen Transaktion Datensatz zu erhalten. Diese Bibliothek enthält auch andere nützliche Analyse- und Darstellungs Funktionen, die es uns ermöglichen, aus dem BG-NBD-Modell und anderen verwandten Modellen geschäftliche Erkenntnisse abzuleiten.
Ich hoffe, Sie dort zu sehen!