Ocena efektu promocji bez testów A/B: Diff-in-Diff i Matching według wyników prawdopodobieństwa
Promocje otwarte, które nie wykorzystują randomizacji, wymagają alternatywnych metod oceny. Głównymi podejściami są metoda Diff-in-Diff do porównania dynamiki oraz Matching według wyników prawdopodobieństwa (PSM) do tworzenia podobnych grup kontrolnych. Te techniki pozwalają oddzielić wpływ promocji od sezonowości i naturalnych trendów.
Grupa kontrolna jest niezbędna, by odróżnić wpływ akcji od czynników zewnętrznych. Bez niej wzrost wskaźników w okresie przed świętami może wyglądać jak skutek promocji, choć w rzeczywistości wynika tylko z sezonowego wzrostu popytu.
Diff-in-Diff: podstawowe podejście z ogólną grupą kontrolną
Metoda Diff-in-Diff oblicza różnicę w dynamice wskaźników między grupą docelową (uczestnicy promocji) a kontrolną (wszyscy użytkownicy). Porównanie przed/po promocji pomija różnice bazowe: uczestnicy często są bardziej lojalni, ich średnia wartość zamówienia jest początkowo wyższa.
Zastosowana jest do użytkowników LFL (Like-for-Like) — aktywnych zarówno przed, jak i w czasie promocji. Pozwala to wyeliminować wpływ przybycia nowych użytkowników.
Kroki obliczeń:
- Dynamika okresu promocji w stosunku do okresu przedpromocyjnego dla wszystkich użytkowników LFL.
- Analogiczna dynamika dla uczestników promocji LFL.
- Różnica to efekt promocji.
Przykład z średnią wartością zamówienia:
| Okres | Grupa docelowa | Wszyscy użytkownicy |
|--------------|----------------|----------------------|
| Przed promocją | 2500 zł | 1350 zł |
| Podczas promocji | 3000 zł | 1500 zł |
| Delta | +20% | +11% |
Efekt: 20% – 11% = +9%. Inkrement: 3000 / 1,09 ≈ 2752 zł (bazowy), wzrost 248 zł.
Wady: uczestnicy promocji mogą mieć inną niż ogół dynamikę, np. inny cykl sezonowy.
Ulepszona metoda Diff-in-Diff: kontrola tematyczna
W przypadku promocji offline (np. zniżka na pączki) grupą kontrolną są kupujący podobne produkty w tych samych sklepach (np. inne pieczywo). Grupy są konceptualnie zbliżone: pieczywo w tych samych lokalizacjach, jedna z promocją, druga bez.
To zmniejsza przesunięcie, ale nie eliminuje go całkowicie: miłośnicy pączków mogą zachowywać się inaczej niż miłośnicy pizzy (oszczędność vs objętość).
Matching według wyników prawdopodobieństwa: symulacja grupy kontrolnej
PSM symuluje losowanie z testów A/B. Na podstawie cech przed promocją (LTV, liczba aktywnych dni, średnia wartość zamówienia, wiek konta) buduje się model przewidywania prawdopodobieństwa udziału (score prawdopodobieństwa od 0 do 1).
Model trenuje się na danych bez flagi udziału, następnie dopasowuje pary według score za pomocą k-NN. Baza kontrolna powinna być kilkukrotnie większa niż grupa docelowa, aby zapewnić dokładne dopasowanie.
Przykładowy kod z XGBoost:
# ustawiamy hiperparametry modelu dopasowania, można rozszerzyć przez optuna
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
}
# trenujemy model z boostingiem
pm = GradientBoostedPropensityModel(early_stop=False, **model_params)
ps = pm.fit_predict(all_data[features], all_data['test'])
# łączenie w pary
matcher = NearestNeighborMatch(replace=False, ratio=1, random_state=seed)
all_data['score'] = ps
matched = matcher.match(all_data, 'test', ['score'])
# końcowe grupy
matched[(matched['test'] == 0)].describe()
matched[(matched['test'] == 1)].describe()
Sprawdzanie jakości:
- Zgodność wskaźników grup.
- Kalibracja: przy score=0.5 — 50% uczestników promocji.
- Identyficzne rozkłady cech.
Po uzyskaniu grup stosuje się metodę Diff-in-Diff. Ograniczenia:
- Zakłada się zachowanie podobnej dynamiki w przyszłości.
- Sezonowość w regionach.
- Przesunięcie z ograniczonej bazy: dopasowanie tylko z osób, które nie mogły wziąć udziału.
Co ważne
- Kontrola jest obowiązkowa: bez niej efekt promocji miesza się z trendami.
- Diff-in-Diff jest prosta i szybka: używaj LFL dla wszystkich lub kontrolę tematyczną.
- PSM jest dokładniejsze: wymaga danych i obliczeń, ale zbliża się do A/B.
- Zawsze sprawdzaj grupy: wskaźniki, kalibracja, rozkłady.
- Preferuj A/B: jeśli możliwe, unikaj ocen po fakcie.
— Editorial Team
Brak komentarzy.