Varför använda överlevnadsanalys?

Överlevnadsanalys i Python

Shae Wang

Senior Data Scientist

Exempel: genomsnittlig batterilivslängd

DataFrame-namn: battery_df

Batteri-ID Varaktighet Död Märke Lastbil
1 2,5 år Nej Brand A Lång
2 6 år Ja Brand B Kort
3 5 år Nej Brand B Lång
... ... ... ... ...
1000 4,5 år Ja Brand A Kort

Vad är batteriets genomsnittliga livslängd?

np.average(battery_df["Duration"])
Överlevnadsanalys i Python

Exempel: genomsnittlig batterilivslängd

Tecknad bild om censurering av batterilivslängd.

Överlevnadsanalys i Python

Censurering i batterilivslängd

Tecknad bild om censurering av batterilivslängd.

  • $T_{duration} \neq T_{lifetime}$ för batterier som inte har dött.
  • Batteri 1, 3, 4 och övriga batterier vars fel inte observerats hanteras felaktigt i medelvärdesberäkningen.
Överlevnadsanalys i Python

Censurерingsproblemet

När överlevnadstiden endast är delvis känd.

Hur uppstår censurering?

  • Händelsen har ännu inte inträffat vid observationsperiodens slut.
    • t.ex. en användare med gratis provperiod har inte konverterat till betalkund vid experimentets slut.
  • Individens data saknas på grund av avhopp eller kontaktförlust.
    • t.ex. en användare med gratis provperiod väljer att inte dela data i experimentet.
Överlevnadsanalys i Python

Typer av censurering

Tecknad bild om censurерingstyper.

  • Ej censurerad: händelsen inträffade och överlevnadstiden är känd.
  • Högercensurerad: överlevnadstiden är längre än den observerade varaktigheten.
  • Vänstercensurerad: överlevnadstiden är kortare än den observerade varaktigheten.
  • Intervallcensurerad: överlevnadstiden ligger inom ett visst intervall men är inte exakt känd.
Överlevnadsanalys i Python

Varför är censurering problematiskt?

Aggregerad statistik

  • En typ av saknad data.
  • Snedvrider statistik, t.ex. np.average(), max(), min().

Regression

  • Linjär regression minimerar summan av kvadrerade fel.
  • För censurerade data känner vi inte till feltermerna.
Överlevnadsanalys i Python

Överlevnadsfunktionen

  • Imputerar inte censurerade data.
  • Modellerar sannolikheten att en överlevnadstid är större än ett visst värde.

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

Överlevnadsanalys i Python

Överlevnadsanalys jämfört med censurering

Tecknad bild om ocensurerade data.

Tecknad bild om censurerade data.

Överlevnadsanalys i Python

Kontrollera data för censurering

Går det att identifiera vilka datapunkter som är censurerade?

Steg 1) Kontrollera om det finns censurерingskolumner (ofta förbearbetade).

Är för stor andel av data censurerad?

Steg 2) Kontrollera andelen censurerade datapunkter (en tumregel är 50 %).

Är censureringen icke-informativ och slumpmässig?

Steg 3) Undersök orsakerna till censureringen för att säkerställa att om en datapunkt är censurerad inte påverkar överlevnaden.

Överlevnadsanalys i Python

Nu kör vi en övning!

Överlevnadsanalys i Python

Preparing Video For Download...