ML Atlas

11 · Prawa i prawdy · 3 min czytania · aktualizacja

Czym jest błąd przeżywalności (survivorship bias) i jak go unikać?

W skrócie

Wnioski wyciągane tylko z tych, którzy przetrwali selekcję, są zniekształcone, bo nie widać tych, którzy odpadli. Samoloty Walda i pasażerowie Titanica.

Co to jest

Jeśli oglądasz tylko obiekty, które przetrwały jakąś selekcję, to widzisz zniekształcony obraz, bo cechy decydujące o odpadnięciu zniknęły razem z odpadłymi. Najsłynniejszy przykład pochodzi od Abrahama Walda, który w 1943 roku w Statistical Research Group na Uniwersytecie Columbia analizował uszkodzenia samolotów wracających z misji.

Intuicyjna rada brzmiała: wzmocnić miejsca, gdzie wracające maszyny mają najwięcej przestrzelin. Wald zauważył, że to odwrotność właściwego wniosku. Samoloty trafione w silnik czy kokpit nie wracały, więc w danych prawie nie było takich trafień. Brak dziur w danym miejscu nie świadczył o bezpieczeństwie, tylko o tym, że trafienie tam kończyło się katastrofą.

Te same błędy popełniamy, czytając biografie miliarderów (porzucił studia i mu się udało — nie widać tysięcy, którym się nie udało), oceniając fundusze inwestycyjne (słabe zamknięto, w statystykach zostały dobre) czy chwaląc „solidność dawnych budynków” (słabe dawno rozebrano).

Mechanizm — dlaczego tak działa

Formalnie to szczególny przypadek błędu selekcji: próbka nie jest losowa, a kryterium wejścia do niej (przetrwanie) zależy od zmiennych, które badamy. Jeśli P(w próbce) zależy od X, to rozkład X w próbce różni się od rozkładu w populacji. Wszystkie średnie, odsetki i korelacje liczone na próbce dziedziczą to przesunięcie.

Groźne jest to, że błąd jest niewidoczny w samych danych. Tabela ocalałych jest kompletna i poprawna; brakuje wierszy, których nigdy nie było. Żaden test statystyczny na tej tabeli nie powie, że czegoś brakuje — trzeba wiedzieć, skąd pochodzą dane.

Błąd przeżywalności często łączy się z paradoksem Berksona: selekcja na podstawie dwóch cech tworzy między nimi fałszywą zależność. A także z regresją do średniej: kto przetrwał, często miał szczęście, które się nie powtórzy.

Wald nie miał danych o samolotach zestrzelonych. Rozwiązał problem, modelując jawnie mechanizm selekcji: skoro trafienia rozkładają się mniej więcej równomiernie, to „brakujące” przestrzeliny w danej strefie mówią, jak groźne jest tam trafienie. To ogólna lekcja: brak danych też jest informacją, jeśli rozumiesz, dlaczego ich brakuje.

Na przykładzie

Titanic: 891 pasażerów, 342 ocalałych. Wyobraź sobie, że wiedzę o pasażerach czerpiesz tylko z relacji ocalałych. Kobiety stanowiłyby w twoich danych 68,1% (w rzeczywistości 35,2% pasażerów), pierwsza klasa 39,8% (w rzeczywistości 24,2%), dorośli mężczyźni tylko 25,7% (w rzeczywistości 60,3%). Średnia cena biletu wyszłaby 48,4 funta zamiast 32,2, a mediana 26,0 zamiast 14,5. Odsetek dzieci poniżej 10 lat (wśród osób o znanym wieku) — 13,1% zamiast 8,7%.

Obraz „typowego pasażera” Titanica zbudowany na ocalałych byłby obrazem zamożnej kobiety, a prawdziwy typowy pasażer to mężczyzna z trzeciej klasy. Nawet tak proste pole jak numer pokładu kabiny jest znane dla 39,8% ocalałych, a tylko dla 22,8% wszystkich pasażerów.

Dane: Titanic

W praktyce

  • Zawsze pytaj: kto nie trafił do danych i dlaczego? Zapisz kryteria wejścia do zbioru.
  • Trenując model churnu, kredytowy czy medyczny, sprawdź, czy dane nie obejmują tylko klientów, którzy „przeżyli” poprzedni filtr (np. zaakceptowane wnioski).
  • Przy danych finansowych i produktowych dołączaj obiekty, które zniknęły (zamknięte fundusze, usunięte konta, wycofane produkty).
  • W analizie czasu do zdarzenia używaj metod przeżycia z cenzurowaniem (np. pakiet lifelines), zamiast liczyć średnie tylko z ukończonych przypadków.
  • Brakujące wartości nie zawsze są losowe: dodaj flagę braku (SimpleImputer(add_indicator=True)) i sprawdź, czy brak sam niesie informację.

Najczęstsze pytania

Na czym polegał przykład Abrahama Walda?
Wald analizował uszkodzenia samolotów, które wróciły z lotów bojowych. Zauważył, że należy wzmacniać miejsca bez przestrzelin, bo maszyny trafione właśnie tam nie wracały i nie trafiały do danych.
Czym błąd przeżywalności różni się od błędu selekcji?
To odmiana błędu selekcji, w której kryterium wejścia do próbki jest „przetrwanie” procesu: brak upadku, powrót z misji, pozostanie w bazie. Ogólny błąd selekcji obejmuje też inne mechanizmy, np. samoselekcję respondentów.
Jak wykryć błąd przeżywalności w danych?
W samych danych zwykle się nie da. Trzeba znać proces, który je wygenerował: porównać liczebność z pełną populacją, sprawdzić, czy istnieją rekordy usunięte, i zapytać, od czego zależało pozostanie w zbiorze.

Źródła

  • Abraham Wald, „A Method of Estimating Plane Vulnerability Based on Damage of Survivors”, Statistical Research Group, Columbia University, 1943 (przedruk: Center for Naval Analyses, 1980).
  • Marc Mangel, Francisco J. Samaniego, „Abraham Wald’s work on aircraft survivability”, Journal of the American Statistical Association 79(386), 1984, s. 259–267.
  • Stephen J. Brown, William Goetzmann, Roger G. Ibbotson, Stephen A. Ross, „Survivorship bias in performance studies”, Review of Financial Studies 5(4), 1992, s. 553–580.
  • Miguel A. Hernán, Sonia Hernández-Díaz, James M. Robins, „A structural approach to selection bias”, Epidemiology 15(5), 2004, s. 615–625.

Zobacz też