Cox PH 모형 해석

Python에서의 Survival Analysis

Shae Wang

Senior Data Scientist

기준선 위험

  • 위험비(hazard ratio): 기준선 위험 대비 위험이 얼마나 증감하는지.
  • 기준선 위험: 공변량이 기준선 수준일 때의 위험.
    • 기준선 $\neq$ 공변량을 0으로 설정
    • 기준선은 공변량을 평균(‘lifelines’는 중앙값)으로 설정함을 의미
Python에서의 Survival Analysis

기준선 함수

기준선 위험 함수
model.baseline_hazard_.plot()
plt.show()

baseline_hazard

기준선 생존 함수
model.baseline_survival_.plot()
plt.show()

baseline_survival

Python에서의 Survival Analysis

위험비 해석

  • 위험비: $e^{coef}$, 공변량이 변할 때 평균적 개인 대비 위험이 얼마나 변하는지.
계산 예시
계수 $x$ $0.405$
위험비 $e^x$ $e^{0.405}=1.5$
위험 해석 $e^x-1$ $1.5-1 = 0.5$ -> 위험 50% 증가
생존시간 해석 $\frac{1}{e^x}-1$ $\frac{1}{1.5}-1 = 0.67-1 = -0.23$ -> 생존시간 23% 감소
Python에서의 Survival Analysis

위험비 시각화

.plot_partial_effects_on_outcome()

  • covariates(문자열 또는 리스트): 변경할 원본 데이터의 공변량 이름.
    • 여러 공변량이면 리스트로 전달합니다.
  • values(1D/2D iterable): 공변량이 가질 값.
    • 여러 공변량이면 값을 값의 쌍/튜플로 전달합니다.
Python에서의 Survival Analysis

위험비 시각화

모형의 공변량은 A, B, C이며, {{1}}만 바꾸려 합니다

  • A: 1, 2
  • B: 3, 4
    model.plot_partial_effects_on_outcome(
        covariates=["A","B"],
        values=[[1,2],
                [3,4]]
    )
    plt.show()
    

wrong_plot_partial_effects_on_outcome

잘못됨...

Python에서의 Survival Analysis

위험비 시각화

모형의 공변량은 A, B, C이며, 다음을 변경합니다

  • A: 1, 2
  • B: 3, 4
    model.plot_partial_effects_on_outcome(
        covariates=["A","B"],
        values=[[1,3],
                [1,4],
                [2,3],
                [2,4]]
    )
    plt.show()
    

correct_plot_partial_effects_on_outcome

정답!

Python에서의 Survival Analysis

연습해 봅시다!

Python에서의 Survival Analysis

Preparing Video For Download...