Cox PH 모델로 예측하기

Python에서의 Survival Analysis

Shae Wang

Senior Data Scientist

중앙 생존시간 예측

.fit()으로 모델을 학습한 뒤:

  • .predict_median(): 대상의 중앙 생존시간을 예측합니다.
    • 생존곡선이 0.5를 지나지 않으면 중앙 생존시간은 $\inf$입니다.
  • 매개변수:
    • X: 예측에 사용할 DataFrame.
    • conditional_after: 대상이 이미 생존한 시간을 나타내는 값의 배열/리스트.
Python에서의 Survival Analysis

중앙 생존시간 예측

model.predict_median(X, conditional_after)
0       inf
1      44.0
2      46.0
3       inf
4      48.0
       ... 
500     inf
Python에서의 Survival Analysis

생존함수 예측

  • .predict_survival_function(): 공변량을 기준으로 대상의 생존함수를 예측합니다.
  • 매개변수:
    • X: 예측에 사용할 DataFrame.
    • conditional_after: 대상이 이미 생존한 시간을 나타내는 값의 배열/리스트.
Python에서의 Survival Analysis

생존함수 예측

model.predict_survival_function(X, conditional_after)
              0           1           2           3           4         ...         500
1.0    0.997616    0.993695    0.994083    0.999045    0.997626         ...    0.998865    0.997827    0.995453    0.997462    ...    0.997826    0.996005    0.996031    0.997774    0.998892    0.999184    0.997033    0.998866    0.998170    0.998610
2.0    0.995230    0.987411    0.988183    0.998089    0.995250         ...    0.997728    0.995653    0.990914    0.994922    ...    0.995649    0.992014    0.992067    0.995547    0.997782    0.998366    0.994065    0.997730    0.996337    0.997217
3.0    0.992848    0.981162    0.982314    0.997133    0.992878         ...    0.996592    0.993482    0.986392    0.992388    ...    0.993476    0.988037    0.988115    0.993324    0.996673    0.997548    0.991105    0.996595    0.994507    0.995826
4.0    0.990468    0.974941    0.976468    0.996176    0.990507         ...    0.995455    0.991311    0.981882    0.989855    ...    0.991304    0.984067    0.984171    0.991100    0.995563    0.996729    0.988147    0.995458    0.992676    0.994433
5.0    0.988085    0.968739    0.970639    0.995216    0.986392         ...    0.993476

왜 생존 예측이 유용할까요?

  • 사전 고장 예방, 예측 모델링 등
Python에서의 Survival Analysis

핵심 단계

  1. 데이터를 전처리하고 범주형 변수는 원-핫 인코딩합니다.
  2. 학습/테스트로 분할합니다(보통 학습 80%, 테스트 20%).
    • 검열 데이터 비율은 두 세트에서 유사해야 합니다.
  3. 학습 세트에 Cox PH 모델을 적합합니다.
Python에서의 Survival Analysis

연습해 봅시다!

Python에서의 Survival Analysis

Preparing Video For Download...