웨이블 분포 모델로 시각화와 예측

Python에서의 Survival Analysis

Shae Wang

Senior Data Scientist

.plot()

계수와 해당 95% 신뢰구간 범위를 플롯으로 반환합니다.

aft.plot()
plt.show()

샘플 플롯:

sample_covariate_plot

Python에서의 Survival Analysis

.plot_partial_effects_on_outcome()

기준 생존 곡선과 공변량 값을 바꿀 때의 곡선을 비교하는 플롯을 반환합니다.

aft.plot_partial_effects_on_outcome(covariates, values)
plt.show()

sample_partial_effects_plot

Python에서의 Survival Analysis

부분 효과 플롯 그리기 방법

.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()

웨이블 모델의 부분 효과 플롯

Python에서의 Survival Analysis

부분 효과 플롯 그리기 방법

  • 값을 직접 지정:
    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]]
    )
    
  • 사용자 지정 수식:
    • 필요한 변환(상호작용, 원-핫 인코딩 등)은 내부에서 자동으로 처리됩니다.
Python에서의 Survival Analysis

모기지 예시

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
Python에서의 Survival Analysis

모기지 예시

aft.plot_partial_effects_on_outcome(
    covariates='credit score',
    values=np.arange(700, 860, 30)
)
plt.show()

mortgage_df의 부분 효과 플롯

Python에서의 Survival Analysis

생존 함수 예측

  • 공변량 값에 따라 생존 곡선이 달라집니다. 예측 흐름도
Python에서의 Survival Analysis

생존 함수 예측

공변량 값에 따라 개인의 생존 함수를 예측합니다.

.predict_survival_function()

인수:

  • X (np array 또는 DataFrame): 공변량. DataFrame이면 열 순서는 상관없습니다.

공변량 값에 따라 개인의 중앙 생존 기간을 예측합니다.

.predict_median()

인수:

  • df (np array 또는 DataFrame): 공변량. DataFrame이면 열 순서는 상관없습니다.
Python에서의 Survival Analysis

현재 기간 이후 조건부 예측

현재 기간 이후 조건부로 생존 함수 또는 중앙 생존 기간을 예측합니다.

  • .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

연습해 봅시다!

Python에서의 Survival Analysis

Preparing Video For Download...