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)
異なる被験者グループ間で、生存(または事象/生存確率)に差があるかを評価することが多いです。
各グループにカプラン・マイヤー生存関数を当てはめ、曲線を並べて可視化します。
利点:
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つで十分。もう一方は否定で参照できます。
1つの図を作成し、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で学ぶSurvival Analysis