Promo-Effekt ohne A/B-Test messen: Diff-in-Diff und Propensity-Score-Matching
Offene Promotionen ohne Zufallszuordnung erfordern alternative Auswertungsmethoden. Die wichtigsten Ansätze sind Diff-in-Diff zur Trendanalyse und Propensity-Score-Matching (PSM) zur Erstellung vergleichbarer Kontrollgruppen. Diese Techniken helfen, den echten Promo-Effekt von Saisonalität und natürlichen Markttrends zu isolieren.
Eine Kontrollgruppe ist entscheidend, um den Einfluss der Promotion von externen Faktoren abzugrenzen. Ohne sie könnte ein Anstieg in den Metriken während der Feiertage fälschlicherweise auf die Aktion zurückgeführt werden – obwohl es sich lediglich um saisonale Dynamik handelt.
Diff-in-Diff: Der klassische Ansatz mit gemeinsamer Kontrollgruppe
Diff-in-Diff berechnet die Differenz der Metrik-Trends zwischen der Zielgruppe (Promo-Teilnehmer) und der Kontrollgruppe (alle Nutzer). Eine einfache Vergleichsrechnung vor und nach der Aktion ignoriert Baseline-Differenzen – Promo-Teilnehmer weisen oft bereits eine höhere Loyalität und einen höheren Durchschnittswert pro Bestellung auf.
Diese Methode eignet sich für Like-for-Like (LFL)-Nutzer – also jene, die sowohl vor als auch während der Aktion aktiv waren. So wird der Einfluss neuer Kundenakquisition ausgeschlossen.
Schritte zur Berechnung:
- Für alle LFL-Nutzer: Trend von der Vorperiode zur Promo-Phase.
- Für LFL-Teilnehmer der Aktion: derselbe Trend.
- Die Differenz repräsentiert den Promo-Effekt.
Beispiel anhand des durchschnittlichen Warenkorbwerts:
| Zeitraum | Zielgruppe | Alle Nutzer |
|----------------|------------|-------------|
| Vor-Aktion | ₽2.500 | ₽1.350 |
| Während Aktion | ₽3.000 | ₽1.500 |
| Delta | +20% | +11% |
Promo-Effekt: 20% – 11% = +9%. Inkrementaler Wert: ₽3.000 / 1,09 ≈ ₽2.752 (Baselineswert), inkrementeller Gewinn von ₽248.
Einschränkung: Promo-Teilnehmer können anders reagieren als die Gesamtbevölkerung – z. B. aufgrund eigener saisonaler Muster.
Verbesserter Diff-in-Diff: Thematische Kontrollgruppe
Bei Offline-Promotionen (z. B. Rabatt auf Gebäck) besteht die Kontrollgruppe aus Kunden, die ähnliche Produkte in denselben Geschäften kaufen (andere Backwaren). Die Gruppen sind konzeptionell nahe: Backwaren werden an identischen Standorten verkauft, eine Gruppe mit, eine ohne Aktion.
Dies reduziert Verzerrungen, beseitigt sie aber nicht vollständig – Gebäckliebhaber verhalten sich möglicherweise anders als Pizzafans (z. B. sparsam vs. Großverbrauch).
Propensity-Score-Matching: Simulation einer Kontrollgruppe
PSM simuliert die Zufallszuweisung eines A/B-Tests. Mit Daten aus der Vorphase (LTV, aktive Tage, durchschnittlicher Warenkorbwert, Kontodauer) schätzt ein Modell die Wahrscheinlichkeit der Teilnahme (Propensity-Score von 0 bis 1).
Das Modell wird ohne Teilnahmeflagge trainiert und paart anschließend Nutzer nach Score mittels k-NN. Die Kontrollgruppe muss deutlich größer sein als die Zielgruppe, um eine genaue Übereinstimmung zu gewährleisten.
Beispielcode mit XGBoost:
# Hyperparameter definieren (kann mit Optuna optimiert werden)
model_params = {
'objective': 'binary:logistic',
'eval_metric': 'logloss',
'learning_rate': 0.4,
'max_depth': 3,
'min_child_weight': 10,
'subsample': 0.8,
'colsample_bytree': 0.8,
'lambda': 1.0,
'alpha': 0.1,
'random_state': seed,
'n_estimators': 100
}
# Boosting-Modell trainieren
pm = GradientBoostedPropensityModel(early_stop=False, **model_params)
ps = pm.fit_predict(all_data[features], all_data['test'])
# Paare matchen
matcher = NearestNeighborMatch(replace=False, ratio=1, random_state=seed)
all_data['score'] = ps
matched = matcher.match(all_data, 'test', ['score'])
# Endgruppen
matched[(matched['test'] == 0)].describe()
matched[(matched['test'] == 1)].describe()
Qualitätschecks:
- Ähnlichkeit der Gruppentypen in den Metriken.
- Kalibrierung: Bei Score = 0,5 sollten etwa 50 % Teilnehmer sein.
- Identische Verteilung der Merkmale zwischen den Gruppen.
Nach dem Matching wird Diff-in-Diff angewendet. Einschränkungen:
- Annahme, dass zukünftige Dynamiken ähnlich bleiben.
- Regionale Saisonalität beeinflusst Ergebnisse.
- Verzerrung durch begrenzte Kontrollpoolgröße – nur Nicht-Teilnehmer werden gematcht, inklusive solcher, die physisch nicht teilnehmen konnten.
Schlüsselerkenntnisse
- Kontrollgruppe ist Pflicht: Ohne sie werden Promo-Effekte mit allgemeinen Trends vermischt.
- Diff-in-Diff ist einfach und schnell: LFL-Nutzer oder thematische Kontrollgruppen nutzen.
- PSM ist präziser: erfordert Daten und Rechenleistung, nähert sich aber A/B-Tests an.
- Gruppen immer validieren: Metriken, Kalibrierung und Merkmalsverteilung prüfen.
- A/B-Tests vorziehen, wenn möglich: Post-hoc-Analysen vermeiden, wenn man die Möglichkeit hat.
— Editorial Team
Noch keine Kommentare.