Анализ выживаемости в Python
Shae Wang
Senior Data Scientist
Название DataFrame: mortgage_df
| id | тип недвижимости | длительность | paid_off |
|---|---|---|---|
| 1 | house | 25 | 0 |
| 2 | apartment | 17 | 1 |
| 3 | apartment | 5 | 0 |
| ... | ... | ... | ... |
| 100 | house | 30 | 1 |
Тип недвижимости: вид жилья, приобретённого в ипотеку (дом или квартира)
Нередко нас интересует, различаются ли функции выживаемости (или вероятности событий) между разными группами наблюдений.
Подгоняем функцию выживаемости Каплана–Майера для каждой группы и отображаем кривые рядом.
Преимущества:
Название DataFrame: mortgage_df
| id | тип недвижимости | длительность | paid_off |
|---|---|---|---|
| 1 | house | 25 | 0 |
| 2 | apartment | 17 | 1 |
| 3 | apartment | 5 | 0 |
| ... | ... | ... | ... |
| 100 | house | 30 | 1 |
Создайте булеву маску для каждой группы.
house = (mortgage_df["property_type"]=="house")
apt = (mortgage_df["property_type"]=="apartment")
Если групп всего две, достаточно одной маски. На вторую группу можно ссылаться через отрицание.
Создайте фигуру и инициализируйте класс KaplanMeierFitter.
ax = plt.subplot(111)
mortgage_kmf = KaplanMeierFitter()
Подгоните mortgage_kmf для группы домов и постройте график на фигуре 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)
Подгоните mortgage_kmf для группы квартир и постройте график на фигуре 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()


Примечание: если доверительные интервалы частично перекрываются, разница между кривыми менее вероятна.
Анализ выживаемости в Python