Analisi di sopravvivenza in Python
Shae Wang
Senior Data Scientist
Nome 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: tipo di casa finanziata dal mutuo (house o apartment)
Spesso vogliamo valutare se ci sono differenze di sopravvivenza (o di probabilità di evento/sopravvivenza) tra gruppi di soggetti.
Adatta una funzione di sopravvivenza di Kaplan–Meier a ciascun gruppo e visualizza le curve affiancate.
Vantaggi:
Nome 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 |
Crea una maschera booleana per ogni gruppo.
house = (mortgage_df["property_type"]=="house")
apt = (mortgage_df["property_type"]=="apartment")
Se ci sono solo 2 gruppi, basta 1 maschera: l’altro gruppo si ottiene con la negazione.
Crea una figura e istanzia la classe KaplanMeierFitter.
ax = plt.subplot(111)
mortgage_kmf = KaplanMeierFitter()
Adatta mortgage_kmf al gruppo house e traccia sulla figura 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)
Adatta mortgage_kmf al gruppo apartment e traccia sulla figura 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)
plt.show()


Nota: se gli intervalli di confidenza si sovrappongono, è meno probabile che ci sia una vera differenza tra le curve.
Analisi di sopravvivenza in Python