Dlaczego warto stosować analizę przeżycia?

Analiza przeżycia w Pythonie

Shae Wang

Senior Data Scientist

Przykład: średni czas życia baterii

Nazwa DataFrame: battery_df

ID baterii Czas trwania Martwa Marka Ciężarówka
1 2,5 roku Nie Marka A Długa
2 6 lat Tak Marka B Krótka
3 5 lat Nie Marka B Długa
... ... ... ... ...
1000 4,5 roku Tak Marka A Krótka

Jaki jest średni czas życia baterii?

np.average(battery_df["Duration"])
Analiza przeżycia w Pythonie

Przykład: średni czas życia baterii

Rysunek ilustrujący cenzurowanie czasu życia baterii.

Analiza przeżycia w Pythonie

Cenzurowanie w czasie życia baterii

Rysunek ilustrujący cenzurowanie czasu życia baterii.

  • $T_{duration} \neq T_{lifetime}$ dla baterii, które jeszcze nie uległy awarii.
  • Baterie 1, 3, 4 i inne, których awarii nie zaobserwowano, są niewłaściwie uwzględniane w obliczaniu średniej.
Analiza przeżycia w Pythonie

Problem cenzurowania

Gdy czas przeżycia jest tylko częściowo znany.

Jak dochodzi do cenzurowania?

  • Zdarzenie nie nastąpiło przed końcem obserwacji.
    • np. użytkownik bezpłatnej wersji próbnej nie przeszedł na plan płatny przed końcem eksperymentu.
  • Dane osoby są niedostępne z powodu rezygnacji lub utraty kontaktu.
    • np. użytkownik bezpłatnej wersji próbnej odmówił udostępnienia danych do eksperymentu.
Analiza przeżycia w Pythonie

Rodzaje cenzurowania

Rysunek ilustrujący rodzaje cenzurowania.

  • Bez cenzurowania: zdarzenie nastąpiło, czas przeżycia jest znany.
  • Cenzurowanie prawostronne: czas przeżycia jest dłuższy niż obserwowany.
  • Cenzurowanie lewostronne: czas przeżycia jest krótszy niż obserwowany.
  • Cenzurowanie interwałowe: czas przeżycia mieści się w pewnym przedziale, ale nie jest dokładnie znany.
Analiza przeżycia w Pythonie

Dlaczego cenzurowanie jest problemem?

Statystyki zagregowane

  • Rodzaj brakujących danych.
  • Zniekształcają statystyki, np. np.average(), max(), min().

Regresja

  • Linia regresji liniowej minimalizuje sumę kwadratów błędów.
  • Dla danych cenzurowanych składniki błędu są nieznane.
Analiza przeżycia w Pythonie

Funkcja przeżycia

  • Nie imputuje danych cenzurowanych.
  • Modeluje prawdopodobieństwo, że czas przeżycia przekroczy określoną wartość.

  $$S(t)=Pr(T>t)$$

Analiza przeżycia w Pythonie

Analiza przeżycia a cenzurowanie

Rysunek ilustrujący dane bez cenzurowania.

Rysunek ilustrujący dane cenzurowane.

Analiza przeżycia w Pythonie

Sprawdzanie danych pod kątem cenzurowania

Czy można zidentyfikować cenzurowane punkty danych?

Krok 1) Sprawdź kolumny cenzurowania (często już przetworzone).

Czy zbyt dużo danych jest cenzurowanych?

Krok 2) Sprawdź odsetek cenzurowanych punktów (orientacyjna granica to 50%).

Czy cenzurowanie jest nieinformatywne i losowe?

Krok 3) Zbadaj przyczyny cenzurowania, aby upewnić się, że status cenzurowania punktu nie wpływa na przeżycie.

Analiza przeżycia w Pythonie

Czas na ćwiczenia!

Analiza przeżycia w Pythonie

Preparing Video For Download...