Python에서의 Survival Analysis
Shae Wang
Senior Data Scientist
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: 담보대출로 금융된 주택 유형(house 또는 apartment)
서로 다른 집단 간 생존(또는 사건/생존 확률) 차이를 평가하는 데 관심이 많습니다.
각 그룹에 Kaplan–Meier 생존함수를 적합하고 생존곡선을 나란히 시각화합니다.
장점:
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 |
각 그룹에 대한 불리언 마스크를 만듭니다.
house = (mortgage_df["property_type"]=="house")
apt = (mortgage_df["property_type"]=="apartment")
그룹이 2개뿐이면 마스크는 1개만 필요합니다. 다른 그룹은 부정으로 참조할 수 있습니다.
하나의 figure를 만들고 KaplanMeierFitter 클래스를 인스턴스화합니다.
ax = plt.subplot(111)
mortgage_kmf = KaplanMeierFitter()
house 그룹에 mortgage_kmf를 적합하고 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)
apartment 그룹에 mortgage_kmf를 적합하고 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)
plt.show()


_참고_: 신뢰구간이 겹치는 구간이 있으면, 곡선 간 실제 차이 가능성이 낮습니다.
Python에서의 Survival Analysis