Appliquer l'analyse de survie à des groupes

Analyse de survie en Python

Shae Wang

Senior Data Scientist

Le problème hypothécaire

Nom du 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

Property type : type de bien financé par l'hypothèque (house ou apartment)

Y a‑t‑il une différence de temps de remboursement entre maisons et appartements ?
Analyse de survie en Python

Comparer les distributions de survie des groupes

Nous cherchons souvent à savoir s'il existe des différences de survie (ou de probabilités d'événement/survie) entre divers groupes de sujets.

  • Attributs dimensionnels des sujets
    • p. ex. types d'hypothèques, marques de pneus
  • Groupes expérimentaux distincts
    • p. ex. traitement vs témoin
  • Valeurs différentes pour un même attribut dimensionnel
    • p. ex. ménages à revenu élevé vs faible
Analyse de survie en Python

Types de comparaisons entre groupes en survie

1. Certains estimateurs ponctuels ou statistiques de survie diffèrent‑ils ?
  • Comparer les probabilités de survie de deux groupes à un instant donné
  • Comparer la proportion totale de sujets survivants entre deux groupes
Analyse de survie en Python

Types de comparaisons entre groupes en survie

2. Les distributions sous‑jacentes sont‑elles différentes ?
  • Nécessite un test d'hypothèse formel
Analyse de survie en Python

Types de comparaisons entre groupes en survie

3. Dans quelle mesure un attribut influe‑t‑il sur la survie ?
  • Nécessite des modèles de régression
Analyse de survie en Python

Visualiser les différences entre groupes

Ajuster une fonction de survie de Kaplan‑Meier à chaque groupe et visualiser les courbes côte à côte.

Avantages :

  • Simple à utiliser et à interpréter.
  • Non paramétrique : plus flexible pour divers types de distributions de survie.
  • Outil illustratif utile pour montrer les différences de fonctions de survie.
Analyse de survie en Python

Identifier les groupes

Nom du 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

Créer un masque booléen pour chaque groupe.

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

S'il n'y a que 2 groupes, un seul masque suffit. L'autre groupe peut être référencé par négation.

Analyse de survie en Python

Ajuster et tracer les courbes de survie

Créer une figure et instancier la classe KaplanMeierFitter.

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

Ajuster mortgage_kmf au groupe « house » et tracer sur la figure 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)
Analyse de survie en Python

Ajuster et tracer les courbes de survie

Ajuster mortgage_kmf au groupe « apartment » et tracer sur la figure 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)
Analyse de survie en Python

Visualiser côte à côte

plt.show()

Courbes de survie Kaplan‑Meier : appartements vs maisons.

Analyse de survie en Python

Interpréter les courbes de survie des groupes

Courbes de survie Kaplan‑Meier : appartements vs maisons

  • Les hypothèques d'appartements semblent, en moyenne, se rembourser plus vite que celles des maisons.
  • À durée égale, une plus grande proportion d'utilisateurs rembourse les hypothèques d'appartements que celles des maisons.

Note : si les intervalles de confiance se chevauchent par endroits, une différence réelle entre les courbes est moins probable.

Analyse de survie en Python

Passons à la pratique !

Analyse de survie en Python

Preparing Video For Download...