Python에서의 Survival Analysis
Shae Wang
Senior Data Scientist
계수와 해당 95% 신뢰구간 범위를 플롯으로 반환합니다.
aft.plot()
plt.show()
샘플 플롯:

기준 생존 곡선과 공변량 값을 바꿀 때의 곡선을 비교하는 플롯을 반환합니다.
aft.plot_partial_effects_on_outcome(covariates, values)
plt.show()

.plot_partial_effects_on_outcome()
covariates(문자열 또는 리스트): 원본 데이터셋에서 변동시킬 공변량.values(1d 또는 2d 반복 가능): 공변량에 부여할 값.
기본 생존 곡선: 원본 데이터셋의 평균값에서 예측한 생존 곡선.
aft.plot_partial_effects_on_outcome(
covariates='var',
values=[0, 3, 6, 9, 12, 15]
)
plt.show()

aft.plot_partial_effects_on_outcome(
covariates='a',
values=[0, 3, 6]
)
aft.plot_partial_effects_on_outcome(
covariates='a',
values=np.arange(10)
)
aft.plot_partial_effects_on_outcome(
covariates=['a','b'],
values=[[1,2],[1,3],[2,3]]
)
DataFrame 예시: mortgage_df
| id | house | principal | interest | property_tax | credit score | duration | paid_off |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 1275 | 0.035 | 0.019 | 780 | 25 | 0 |
| 2 | 0 | 756 | 0.028 | 0.020 | 695 | 17 | 1 |
| 3 | 0 | 968 | 0.029 | 0.017 | 810 | 5 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... |
| 1000 | 1 | 1505 | 0.041 | 0.023 | 750 | 30 | 1 |
aft.plot_partial_effects_on_outcome(
covariates='credit score',
values=np.arange(700, 860, 30)
)
plt.show()


공변량 값에 따라 개인의 생존 함수를 예측합니다.
.predict_survival_function()
인수:
X (np array 또는 DataFrame): 공변량. DataFrame이면 열 순서는 상관없습니다.공변량 값에 따라 개인의 중앙 생존 기간을 예측합니다.
.predict_median()
인수:
df (np array 또는 DataFrame): 공변량. DataFrame이면 열 순서는 상관없습니다.현재 기간 이후 조건부로 생존 함수 또는 중앙 생존 기간을 예측합니다.
.predict_survival_function(X, conditional_after).predict_median(df, conditional_after)예시:
aft.predict_median(new_subject)
4.0
aft.predict_median(new_subject, conditional_after=[2])
2.0
Python에서의 Survival Analysis