Waarom survivalanalyse gebruiken?

Survivalanalyse in Python

Shae Wang

Senior Data Scientist

Voorbeeld: gemiddelde batterijlevensduur

DataFrame-naam: battery_df

Batterij-ID Duur Dood Merk Truck
1 2,5 jr Nee Merk A Lang
2 6 jr Ja Merk B Kort
3 5 jr Nee Merk B Lang
... ... ... ... ...
1000 4,5 jr Ja Merk A Kort

Wat is de gemiddelde batterijlevensduur?

np.average(battery_df["Duration"])
Survivalanalyse in Python

Voorbeeld: gemiddelde batterijlevensduur

Cartoon over censurering van batterijlevensduur.

Survivalanalyse in Python

Censurering bij batterijlevensduur

Cartoon over censurering van batterijlevensduur.

  • $T_{duration} \neq T_{lifetime}$ voor batterijen die niet zijn gestorven.
  • Batterijen 1, 3, 4 en andere zonder geobserveerde uitval worden onjuist meegenomen in het gemiddelde.
Survivalanalyse in Python

Het censureringsprobleem

Wanneer de overlevingstijd slechts deels bekend is.

Hoe ontstaat censurering?

  • De gebeurtenis is nog niet opgetreden aan het einde van de observatie.
    • bijv. een proefgebruiker is aan het einde van een experiment nog geen betalende gebruiker.
  • Data van de persoon ontbreekt door uitval of contactverlies.
    • bijv. een proefgebruiker weigert data te delen voor het experiment.
Survivalanalyse in Python

Typen censurering

Cartoon over typen censurering.

  • Niet gecensureerd: de gebeurtenis trad op en de overlevingsduur is bekend.
  • Rechts gecensureerd: de overlevingsduur is groter dan de geobserveerde duur.
  • Links gecensureerd: de overlevingsduur is korter dan de geobserveerde duur.
  • Interval-gecensureerd: de overlevingsduur ligt in een bereik maar is niet exact bekend.
Survivalanalyse in Python

Waarom is censurering slecht?

Geaggregeerde statistieken

  • Een vorm van missende data.
  • Vertekenen statistieken, zoals np.average(), max(), min().

Regressie

  • Een lineaire regressielijn minimaliseert de som van kwadratische fouten.
  • Bij gecensureerde data kennen we de fouttermen niet.
Survivalanalyse in Python

De survivalfunctie

  • Imputeert gecensureerde data niet.
  • Modelleert de kans dat een overlevingsduur groter is dan een bepaalde waarde.

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

Survivalanalyse in Python

Survivalanalyse versus censurering

Cartoon over niet-gecensureerde data.

Cartoon over gecensureerde data.

Survivalanalyse in Python

Data controleren op censurering

Kun je zien welke datapunten gecensureerd zijn?

Stap 1) Zoek naar kolommen over censurering (vaak al voorbewerkt).

Is er te veel data gecensureerd?

Stap 2) Check het aandeel gecensureerde datapunten (vuistregel: 50%).

Is de censurering niet-informerend en willekeurig?

Stap 3) Onderzoek de oorzaken om te borgen dat censurering geen effect heeft op overleving.

Survivalanalyse in Python

Laten we oefenen!

Survivalanalyse in Python

Preparing Video For Download...