Analiza przeżycia dla grup

Analiza przeżycia w Pythonie

Shae Wang

Senior Data Scientist

Problem hipoteczny

Nazwa DataFrame: mortgage_df

id property type duration paid_off
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Typ nieruchomości: rodzaj nieruchomości finansowanej hipoteką (dom lub mieszkanie)

Czy czas spłaty różni się między hipotekami na domy i mieszkania?
Analiza przeżycia w Pythonie

Porównanie rozkładów przeżycia grup

Często interesuje nas ocena, czy istnieją różnice w przeżyciu (lub prawdopodobieństwach zdarzeń/przeżycia) między różnymi grupami podmiotów.

  • Atrybuty opisujące podmioty
    • np. różne rodzaje hipotek, różne marki opon
  • Różne grupy eksperymentalne
    • np. grupy eksperymentalna i kontrolna
  • Różne wartości tego samego atrybutu
    • np. gospodarstwa domowe o wysokich i niskich dochodach
Analiza przeżycia w Pythonie

Typy porównań grupowych w analizie przeżycia

1. Czy estymaty punktowe lub statystyki przeżycia różnią się?
  • Porównanie prawdopodobieństw przeżycia dwóch grup w określonym czasie
  • Porównanie łącznego odsetka przeżywających podmiotów między dwiema grupami
Analiza przeżycia w Pythonie

Typy porównań grupowych w analizie przeżycia

2. Czy rozkłady bazowe różnią się?
  • Wymaga formalnego testowania hipotez
Analiza przeżycia w Pythonie

Typy porównań grupowych w analizie przeżycia

3. Jak bardzo atrybut wpływa na przeżycie?
  • Wymaga regresyjnych modeli statystycznych
Analiza przeżycia w Pythonie

Wizualizacja różnic między grupami

Dopasowanie funkcji przeżycia Kaplana-Meiera do każdej grupy i wizualizacja krzywych obok siebie.

Zalety:

  • Prosta i intuicyjna w użyciu i interpretacji.
  • Metoda nieparametryczna – elastyczna dla różnych rozkładów przeżycia.
  • Przydatne narzędzie ilustrujące różnice między funkcjami przeżycia.
Analiza przeżycia w Pythonie

Identyfikacja grup

Nazwa DataFrame: mortgage_df

id property type duration paid_off
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Utwórz maskę logiczną dla każdej grupy.

house = (mortgage_df["property_type"]=="house")
apt = (mortgage_df["property_type"]=="apartment")

Przy tylko 2 grupach wystarczy 1 maska. Drugą grupę można wskazać przez negację.

Analiza przeżycia w Pythonie

Dopasowanie i wizualizacja krzywych przeżycia

Utwórz wykres i zainicjuj klasę KaplanMeierFitter.

ax = plt.subplot(111)
mortgage_kmf = KaplanMeierFitter()

Dopasuj mortgage_kmf do grupy domów i wyrysuj na wykresie ax.

mortgage_kmf.fit(duration=mortgage_df[house]["duration"], 
                 event_observed=mortgage_df[house]["paid_off"],
                 label="Houses")
mortgage_kmf.plot_survival_function(ax=ax)
Analiza przeżycia w Pythonie

Dopasowanie i wizualizacja krzywych przeżycia

Dopasuj mortgage_kmf do grupy mieszkań i wyrysuj na wykresie ax.

mortgage_kmf.fit(duration=mortgage_df[apt]["duration"], 
                 event_observed=mortgage_df[apt]["paid_off"],
                 label="Apartments")
mortgage_kmf.plot_survival_function(ax=ax)
Analiza przeżycia w Pythonie

Wizualizacja porównawcza

plt.show()

Krzywe przeżycia Kaplana-Meiera dla mieszkań i domów.

Analiza przeżycia w Pythonie

Interpretacja krzywych przeżycia grup

Krzywe przeżycia Kaplana-Meiera dla mieszkań i domów

  • Hipoteki na mieszkania są spłacane przeciętnie szybciej niż na domy.
  • W każdym momencie wyższy odsetek klientów spłacił hipotekę na mieszkanie niż na dom.

Uwaga: jeśli przedziały ufności nakładają się w pewnych punktach, rzeczywista różnica między krzywymi jest mniej prawdopodobna.

Analiza przeżycia w Pythonie

Czas na ćwiczenia!

Analiza przeżycia w Pythonie

Preparing Video For Download...