Tillämpa överlevnadsanalys på grupper

Överlevnadsanalys i Python

Shae Wang

Senior Data Scientist

Bolåneproblemet

DataFrame-namn: mortgage_df

id fastighetstyp löptid betald
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Fastighetstyp: typen av bostad som finansieras av bolånet (antingen house eller apartment)

Finns det en skillnad i tid till återbetalning för hus- kontra lägenhetslån?
Överlevnadsanalys i Python

Jämföra gruppers överlevnadsfördelningar

Vi är ofta intresserade av att undersöka om det finns skillnader i överlevnad (eller händelse-/överlevnadssannolikheter) mellan olika grupper av individer.

  • Dimensionella attribut hos individerna
    • t.ex. olika typer av bolån, olika däckmärken
  • Olika experimentgrupper
    • t.ex. behandlings- kontra kontrollgrupper
  • Olika värden för samma dimensionella attribut
    • t.ex. hushåll med hög kontra låg inkomst
Överlevnadsanalys i Python

Typer av gruppjämförelser inom överlevnadsanalys

1. Skiljer sig några punktskattningar eller överlevnadsstatistiker åt?
  • Jämför två gruppers överlevnadssannolikheter vid en specifik tidpunkt
  • Jämför den totala andelen överlevande individer mellan två grupper
Överlevnadsanalys i Python

Typer av gruppjämförelser inom överlevnadsanalys

2. Skiljer sig de underliggande fördelningarna åt?
  • Kräver formell hypotesprövning
Överlevnadsanalys i Python

Typer av gruppjämförelser inom överlevnadsanalys

3. Hur mycket påverkar ett attribut överlevnaden?
  • Kräver regressionsbaserade modelleringsramverk
Överlevnadsanalys i Python

Visualisera gruppskillnader

Anpassa en Kaplan-Meier-överlevnadsfunktion till varje grupp och visualisera deras överlevnadskurvor sida vid sida.

Fördelar:

  • Enkel och rättfram att använda och tolka.
  • Icke-parametrisk, vilket gör den mer flexibel för olika typer av överlevnadsfördelningar.
  • Användbart illustrativt verktyg för att påvisa skillnader i överlevnadsfunktioner.
Överlevnadsanalys i Python

Identifiera grupperna

DataFrame-namn: mortgage_df

id fastighetstyp löptid betald
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Skapa en boolesk mask för varje grupp.

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

Om det bara finns 2 grupper behövs bara 1 mask. Den andra gruppen kan refereras med negation.

Överlevnadsanalys i Python

Anpassa och plotta överlevnadskurvor

Skapa en figur och instansiera en KaplanMeierFitter-klass.

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

Anpassa mortgage_kmf till husgruppen och plotta på figuren 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)
Överlevnadsanalys i Python

Anpassa och plotta överlevnadskurvor

Anpassa mortgage_kmf till lägenhetsgruppen och plotta på figuren 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)
Överlevnadsanalys i Python

Visualisera sida vid sida

plt.show()

Kaplan-Meier-överlevnadskurvor för lägenheter kontra hus.

Överlevnadsanalys i Python

Tolka gruppers överlevnadskurvor

Kaplan-Meier-överlevnadskurvor för lägenheter kontra hus

  • Lägenhetslån verkar i genomsnitt betalas av snabbare än huslån.
  • Vid varje given löptid är det en högre andel låntagare som betalar av lägenhetslån jämfört med huslån.

Obs: om konfidensintervallen överlappar vid vissa punkter är det mindre troligt att det finns en verklig skillnad mellan kurvorna.

Överlevnadsanalys i Python

Nu kör vi en övning!

Överlevnadsanalys i Python

Preparing Video For Download...