8 min read

Teil 2: Modellierung von Customer Lifetime Values mit Lebensdauern

Published on
March 22, 2022
Author
Meraldo Antonio
Meraldo Antonio
Senior Data Scientist
Subscribe to our newsletter
Subscribe
Teil 2: Modellierung von Customer Lifetime Values mit Lebensdauern

Das Modell der Beta-Geometrischen Negativen Binomialverteilung (BG-NBD) ist ein einflussreiches probabilistisches Modell zur Beschreibung des Kundenverhaltens und zur Vorhersage des Customer Lifetime Value (CLV)¹. Im letzten Artikel dieser Reihe haben wir die Intuition, die Annahmen und die mathematische Ableitung dieses Modells untersucht. Ich empfehle Ihnen, einen Blick darauf zu werfen, falls Sie es noch nicht getan haben!

Wie Sie dem Artikel vielleicht entnommen haben, ist es nicht einfach, all diese BG-NBD-Gleichungen manuell zu kodieren. Glücklicherweise gibt es eine Python-Bibliothek namens lifetimes, die uns die ganze Arbeit abnimmt. Lifetimes abstrahiert die interne Komplexität von BG-NBD und ermöglicht es uns, uns auf die Ableitung von Erkenntnissen und Geschäftswerten aus dem Modell zu konzentrieren.

Diese großartige Bibliothek wurde von Cam-Davidson Pillon, entwickelt, der auch der Autor des Buches Probabilistic Programming & Bayesian Methods for Hackers, ist, das für alle Bayes-Enthusiasten ein Muss ist.

Dieser Artikel befasst sich mit den Besonderheiten von Lebenszeiten. Hier ist unser Programm:

  1. Zunächst werden wir uns mit dem erforderlichen Tabellenformat befassen, das unser Datensatz vor der Modellierung haben muss.
  2. Zweitens werden wir sehen, wie man ein BG-NBD-Modell unter Verwendung von Lebensdauern trainiert und bewertet.
  3. Drittens werden wir die verschiedenen Einblicke und Analysen verstehen, die Lebenszeitmodelle ermöglichen.
  4. Abschließend werden wir einige praktische Geschäftsanwendungen diskutieren, die durch Lebensdauern ermöglicht werden.

Fangen wir an!

Vorbereitung der Daten

Datenumwandlung

Normalerweise zeichnen Unternehmen ihre Transaktionen in einer "Transaktionstabelle" auf. Eine solche Tabelle hat Zeilen, die einzelne Transaktionen darstellen, und Spalten, die verschiedene Aspekte der Transaktionen enthalten, wie den beteiligten Kunden, den Zeitstempel der Transaktion und ihren Wert. Ein Beispiel für eine Transaktionstabelle wird von lifetimes bereitgestellt. Diese Tabelle zeichnet die Transaktionen von CDNow auf, einem Unternehmen der Dot-Com-Ära, das CDs und Musikprodukte verkaufte. Sie enthält 6.919 Transaktionen von 2.357 Kunden vom 1. Januar 1997 bis zum 30. Juni 1998 (insgesamt 78 Wochen). Wir werden sie im Laufe dieses Artikels verwenden. So laden Sie sie:

Tabelle der Transaktionen, die durch Lebenszeiten bereitgestellt werden

Vor der Anpassung des BG-NBD-Modells müssen wir diese Tabelle zunächst in das kanonische "RFM"-Format umstrukturieren. Eine Tabelle im RFM-Format hat Zeilen, die einzelne Kunden darstellen, und die folgenden Spalten:

  • Häufigkeit, die die Anzahl der Wiederholungskäufe des Kunden darstellt.
  • Häufigkeit, die das "Alter" des Kunden bei seinen letzten Käufen angibt.
  • T, das das "Alter" des Kunden am Ende des Beobachtungszeitraums darstellt.
  • monetary_value, eine optionale Spalte, die den durchschnittlichen Wert der Käufe eines bestimmten Kunden darstellt, mit Ausnahme des ersten Kaufs.
RFM-Format der Lebensdauern zur Anpassung an das BG-NBD-Modell

lifetimes bietet eine Hilfsfunktion, die die Konvertierung vom Transaktionsformat in das RFM-Format erleichtert.

RFM-Format der Lebensdauern-Tabelle

Die erste Zeile des RFM-Datenrahmens ist wie folgt zu interpretieren:

  • Während des Beobachtungszeitraums hat Kunde 4 insgesamt 4 Käufe getätigt (also 3 Wiederholungskäufe).
  • Die Zeitspanne zwischen seinem ersten und letzten Kauf betrug 49 Wochen.
  • Die Zeitspanne zwischen seinem ersten Kauf und dem Ende des Beobachtungszeitraums betrug 78 Wochen.
  • Der Durchschnitt seiner Transaktionen, mit Ausnahme seiner ersten, beträgt 23,73 USD.

Beachten Sie, dass ein Nullwert in den Spalten Häufigkeit, Häufigkeit und Geldwert (wie bei Kunde 18) bedeutet, dass der Kunde im Beobachtungszeitraum nur einen Kauf getätigt hat.

Kalibrierung-Holdout-Teilung

Bei der Neuformatierung unserer Tabelle in das RFM-Format haben wir die Möglichkeit, auch einen Kalibrierungs-Holdout-Split durchzuführen, der dem uns allen bekannten Zug-Test-Split-Verfahren ähnlich ist. Beim Kalibrierungs-Holdout-Split werden unsere Transaktionen in zwei Teile aufgeteilt, je nachdem, ob sie in den Kalibrierungszeitraum oder in den Beobachtungszeitraum fallen. Die Transaktionen, die während des Kalibrierungszeitraums stattfanden, werden zum Trainieren des Modells verwendet, während die Transaktionen, die während des Beobachtungszeitraums stattfanden ("Holdout"-Transaktionen), zur Validierung des Modells verwendet werden.

Umformatierung der Tabelle in das RFM-Format

In diesem Beispiel werden die Kalibrierungs- und Beobachtungszeiträume auf 52 bzw. 26 Wochen festgelegt. Hier sehen Sie, wie wir die Aufteilung mit Hilfe von Lebenszeiten vornehmen können:

Umformung unserer Tabelle in das RFM-Format unter Verwendung von Lebensdauern

Wir sehen, dass jetzt jeder Kunde sowohl mit Kalibrierungsmerkmalen für die Modellschulung als auch mit Holdout-Merkmalen (Beobachtungszeitraum) für die Modellvalidierung verbunden ist.

Training, Vorhersage und Bewertung

Anpassen

In lifetimes, folgt die Modellanpassung den bekannten scikit-learn-Schritten der Instanziierung eines Modellobjekts (das optional die Einstellung der Hyperparameter enthält) und der Anpassung an die Kalibrierungsdaten (Trainingsdaten):

Das war's - zwei Zeilen und wir haben ein funktionierendes BG-NBD-Modell!

Wie Sie sich vielleicht aus dem ersten Artikel, erinnern, setzt sich ein BG-NBD-Modell aus einer Gamma- und einer Beta-Verteilung zusammen. Die Parameter r und α der Gamma-Verteilung und a und b der Beta-Verteilung sind über das Attribut .summary des angepassten Modellobjekts zugänglich:

parameters of the fitted BG-NBD model

Im nächsten Abschnitt werden wir aus diesen Parametern einige geschäftliche Erkenntnisse ableiten.

Bewertung der Modellanpassung durch Vergleich von modellgenerierten künstlichen Daten und realen Daten

Für die Modellierung von BG-NBD gilt das Sprichwort "Garbage-in, garbage-out": Sich auf ein schlecht angepasstes Modell zu verlassen, kann zu katastrophalen Geschäftsentscheidungen führen. Bevor wir also mit unserem Modell Vorhersagen und Interpretationen treffen, sollten wir zunächst die Leistung des Modells bewerten.

lifetimes bietet eine Reihe von Möglichkeiten, unser Modell zu bewerten. Die erste besteht darin, die Häufigkeiten zwischen unseren realen Kalibrierungsdaten und künstlichen Daten zu vergleichen, die aus den vom BG-NBD-Modell generierten Verteilungen gezogen wurden. Die Funktion plot_period_transactions erledigt dies in einer Zeile:

Anzahl der Transaktionen des Kalibrierungszeitraums unter Verwendung von Lebensdauern

Die Grafik zeigt, dass die Verteilung der Häufigkeiten in den Trainingsdaten weitgehend mit derjenigen übereinstimmt, die von unserem angepassten Modell künstlich erzeugt wurde. Dies deutet darauf hin, dass der physikalische Prozess, von dem wir annehmen, dass er unsere Daten erzeugt hat, von unserem Modell ziemlich gut erfasst wird.

Vorhersagen machen

Eines der Hauptziele bei der Anpassung des BG-NBD-Modells besteht darin, Vorhersagen zu treffen. In diesem Abschnitt wird gezeigt, wie Vorhersagen erstellt und anschließend zur weiteren Bewertung der Leistung des Modells verwendet werden können.

Wenn ein Kunde mit einer bestimmten *Häufigkeit, Wiederholung und T *gegeben ist, kann ein angepasstes Modellobjekt zwei Arten von Vorhersagen erstellen:

  1. Die Anzahl der Käufe, die er in k zukünftigen Perioden tätigen wird
  2. Die Wahrscheinlichkeit, dass er am Ende des Beobachtungszeitraums aktiv ist.

Sehen wir uns ein Beispiel dafür an, wie dies geschehen kann. Zunächst wählen wir einen Musterkunden aus und untersuchen seine Häufigkeit, Häufigkeit und T sowohl für den Kalibrierungszeitraum als auch für den Beobachtungszeitraum: Häufigkeit, Häufigkeit und T sowohl für den Kalibrierungszeitraum als auch für den Beobachtungszeitraum:

Vorhersagen mit dem BG-NBD-Modell

Wir sehen, dass der Kunde während des Beobachtungszeitraums 2 + 1 = 3 Transaktionen getätigt hat (das "+ 1" ergibt sich aus der Umrechnung der Anzahl der wiederholten Transaktionen, die die erste Transaktion ausschließen, in die Gesamtzahl der Transaktionen).

Vergleichen wir nun diese "reale" Zahl mit der von BG-NBD erstellten Vorhersage. Der folgende Code ergibt die erwartete Anzahl der Transaktionen, die der Kunde in den nächsten 26 Wochen (der Länge des Beobachtungszeitraums)² tätigen wird:

Wir sehen, dass die vorhergesagte Transaktionszahl (0,76 Transaktionen) niedriger ist als die tatsächliche (3 Transaktionen).

In ähnlicher Weise können wir die Wahrscheinlichkeit vorhersagen, dass ein bestimmter Kunde am Ende des Kalibrierungszeitraums/Beginn des Beobachtungszeitraums noch aktiv/lebendig ist.

Da der Kunde im Beobachtungszeitraum einige Käufe getätigt hat, wissen wir mit absoluter Sicherheit, dass er am Ende des Kalibrierungszeitraums aktiv war. Daher ist die vorhergesagte Wahrscheinlichkeit von 0,57 eine Unterschätzung.

Vergleich der tatsächlichen und der vorhergesagten Anzahl von Transaktionen

Nachdem wir gesehen haben, wie man die Anzahl der Transaktionen für eine einzelne Person vorhersagen kann, können wir das Verfahren auf unseren gesamten Kundenstamm ausweiten. Die resultierenden Vorhersagen können dann mit den realen Transaktionsdaten verglichen werden, um die Genauigkeit unseres Modells zu messen.

Vergleich der tatsächlichen und der vorhergesagten Anzahl von Transaktionen mit dem BG-NBD-Modell

Wenn eine strengere Bewertung gewünscht wird, können diese beiden Spalten typischen Regressionsmetriken wie dem RMSE unterzogen werden:

Einblicke und Interpretation

Visualisierung der MLE-Gamma- und Beta-Verteilungen

Sobald wir mit der Leistung unseres Modells zufrieden sind, können wir damit fortfahren, Erkenntnisse daraus abzuleiten.

Ein guter Ausgangspunkt wäre die Extraktion und Visualisierung der geschätzten Gamma- und Beta-Parameter. Wie im vorangegangenen Artikel erläutert, sind die Gamma- und Beta-Verteilungen von großer wirtschaftlicher Bedeutung.Die Gamma-Verteilung gibt Aufschluss über die Verteilung der Transaktionsraten unserer Kundenbasis, während die Beta-Verteilung die Verteilung der De-Aktivierungs-Wahrscheinlichkeit widerspiegelt.

Der folgende Code zeigt, wie man die Gamma- und Beta-Parameter aus dem Modell extrahiert und die Verteilung darstellt:

BG-NBD-Modell-Gamma-Verteilung

Aus dem Diagramm können wir ersehen, dass die Gamma-Verteilung relativ gesund ist, wobei die meisten 𝜆 nahe 2 liegen. Das bedeutet, dass unsere Kunden voraussichtlich mit einer Rate von 2 Transaktionen pro Woche einkaufen werden.

BG-NBD-Modell-Beta-Verteilung

Auch die Beta-Verteilung scheint gesund zu sein, denn die meisten p-Werte liegen nahe bei 0. Dies bedeutet, dass unsere Kunden wahrscheinlich nicht bald aussteigen werden.

Häufigkeit/Häufigkeit/zukünftige Käufe Matrix

Zusätzlich zu der beschriebenen Bewertung der Modellanpassung kann das angepasste Modellobjekt auch für einige interpretative Analysen verwendet werden.

Zum Beispiel können wir seine *Häufigkeits-/Häufigkeits-/Zukunftskäufe-Matrix*betrachten. Diese Matrix zeigt, wie verschiedene Häufigkeits-Häufigkeits-Kombinationen zu unterschiedlichen erwarteten Zahlen zukünftiger Käufe führen.

Häufigkeit/Häufigkeit/Zukünftige Käufe Matrix mit BG-NBD Modell

Wie wir sehen können, befinden sich unsere besten Kunden in der unteren rechten Ecke - diese Leute haben in letzter Zeit häufig eingekauft, sodass wir davon ausgehen, dass sie wiederkommen werden.

Unsere am wenigsten vielversprechenden Kunden befinden sich dagegen in der oberen rechten Ecke - sie haben häufig eingekauft und dann aufgehört zu kommen, und wir haben sie seit Monaten nicht mehr gesehen. Es ist wahrscheinlich, dass sie einen anderen Laden gefunden haben (d. h. sie haben sich deaktiviert).

Häufigkeit/Häufigkeit/Wahrscheinlichkeit Alive Matrix

In ähnlicher Weise können wir auch die Matrix Häufigkeit/Häufigkeit/Wahrscheinlichkeit des Vorhandenseins erstellen. Diese Matrix hat dieselben Achsen wie die vorhergehende, aber die Schattierung jeder Zelle gibt die Wahrscheinlichkeit an, dass Kunden mit verschiedenen Häufigkeits-/Häufigkeitskombinationen leben.

Häufigkeit/Häufigkeit/Wahrscheinlichkeit Lebendige Matrix unter Verwendung des BG-NBD-Modells

Es überrascht nicht, dass wir ein ähnliches Muster erkennen können, bei dem die besten und die schlechtesten Kunden oben rechts bzw. unten rechts in der Matrix zu finden sind.

Business-Anwendungen

CLV-Schätzung mit BG-NBD

Wir haben gesehen, wie wir das BG-NBD-Modell zur Vorhersage der Lebenswahrscheinlichkeit p und der Anzahl der Käufe in den nächsten k Perioden verwenden können. Diese beiden Vorhersagen können wiederum verwendet werden, um eine grobe Schätzung des Wertes des Kunden für die nächsten k Perioden zu berechnen. Die Schätzung kann wie folgt berechnet werden:

CLV-Schätzung mit BG-NBD

Diese Schätzung stützt sich auf die folgenden zwei vereinfachenden Annahmen:

  1. Die Lebenswahrscheinlichkeit p bleibt in den nächsten k Perioden unverändert
  2. Der Durchschnittswert der Käufe in den nächsten k Perioden ist gleich dem Durchschnittswert der Käufe im Beobachtungszeitraum.

Beachten Sie, dass diese naiven Annahmen nur eine schwache theoretische Grundlage haben - in der Realität ändert sich p in der Regel nach jedem Kauf und der zukünftige Kaufwert kann erheblich von den vergangenen Werten abweichen. Daher ist die resultierende Schätzung nur grob. Bei Interesse gibt es ausgefeiltere probabilistische Modelle wie das Gamma-Gamma-Modell, mit denen der künftige Kaufwert genauer berechnet werden kann⁴.

So führen wir die obige Berechnung in Pandas durch:

CLV-Schätzung mit BG-NBD in Pandas

Die resultierende Spalte value_10_pred enthält den geschätzten Wert unserer Kunden für die nächsten 10 Wochen. Anhand dieser Schätzung können wir dann den Zustand unseres Unternehmens messen. Zum Beispiel können wir eine zusammenfassende Statistik von value_10_pred erhalten:

CLV-Schätzung mit BG-NBD zur Messung der Gesundheit unseres Unternehmens

Wir sehen, dass wir im Durchschnitt erwarten, dass die Kunden in den nächsten 10 Wochen etwa 5,18 $ ausgeben werden.

Wir können auch ein Histogramm erstellen:

CLV-Schätzung für 10 Perioden

Wir sehen, dass ein großer Teil unserer Kunden value_10_pred nahe 0 hat. Der sich daraus ergebende Durchschnittswert von 5,18 $ wurde durch einige Ausreißer (eine Handvoll Kunden mit einem sehr hohen value_10_pred) bestimmt. Im nächsten Abschnitt werden wir sehen, wie diese Informationen genutzt werden können.

Proaktives Eingreifen

Diese drei neuen Spalten, alive_prob, n_transactions_10_pred und value_10_pred, kristallisieren und quantifizieren Aspekte unserer Kunden, die zuvor unsichtbar waren. Diese neuen Merkmale haben nicht nur informativen Charakter, sondern können auch für konkrete Maßnahmen genutzt werden. Beispielsweise können wir diese neuen Funktionen nutzen, um gezielt und proaktiv verschiedene Kundensegmente anzusprechen, mit dem Ziel, deren erwarteten CLV zu erhöhen.

Wir sind zu dem Schluss gekommen, dass unser gesamter Kundenwert größtenteils auf einige wenige Kunden mit hohem Wert zurückzuführen ist. Da diese Kunden unsere Umsatzträger sind, sollten wir ihnen besondere Aufmerksamkeit schenken. Eine Idee ist es, ihnen gelegentlich Glückwünsche/Gutscheine zu schicken, um ihre kontinuierliche Treue zu fördern.

Proaktives Eingreifen mit CLV

Eine andere Idee besteht darin, Kunden mit hoher Abwanderungswahrscheinlichkeit (d. h. Kunden mit geringer Überlebenswahrscheinlichkeit) zu kontaktieren, um sie davon abzuhalten, unser Geschäft zu verlassen.

Logistische Vorhersage

Wie wir bereits gesehen haben, schätzt value_10_pred die Menge der Käufe, die unsere Kunden in den nächsten zehn Perioden tätigen werden. Eine weitere Möglichkeit, dies zu nutzen, ist die Unterstützung unserer Lieferkettenentscheidungen (z. B. Auffüllung der Lagerbestände).

Ein Wort der Warnung: Das BG-NBD wurde nicht als Zeitreihenmodell konzipiert; es ist nicht mit Zeitreihenmerkmalen wie der Berücksichtigung von Saisonalität und Trend ausgestattet. Daher ist es ratsam, sich bei Prognosen nicht nur auf die BG-NBD zu verlassen, sondern sie mit Zeitreihenmodellen wie ARIMA zu kombinieren.

Schlussfolgerung

Wir haben gesehen, wie wir mithilfe von Lifetimes das Kaufverhalten unserer Kunden auf einfache Weise verstehen und daraus aussagekräftige und umsetzbare Erkenntnisse ableiten können.

Das ist zwar großartig, aber bedenken Sie, dass die Schätzungen der Lebenszeiten Maximum-Likelihood-Schätzungen sind, die allein aus den von uns gelieferten Daten abgeleitet werden.

Im dritten Artikel der Serie werde ich Ihnen eine alternative Möglichkeit zur Implementierung von BG-NBD zeigen, diesmal unter Verwendung der Bayes'schen hierarchischen Modellierung mit PyMC3. Wir werden sehen, dass diese Implementierung mehr Flexibilität bietet, da sie uns erlaubt, Domänenwissen in den Modealterungsschritt einzubringen.

Ich hoffe, Sie dort zu sehen!

Author
Meraldo Antonio
Senior Data Scientist
Subscribe to our newsletter
Subscribe