1. Survival Analysis가 무엇이길래?

시간의 흐름에 따른 어떠한 사건의 발생 확률을 알아보는 통계분석 및 예측기법 중 하나이며, 일반적으로 의료분야, 특정 수술 방법 혹은 치료 방법에 따른 환자의 생존기간 분석을 하는데 활용된다. IT 분야에서도 사용자 이탈 분석에 활용하기도 한다(처음 알았다..)

  • 주요 개념 : 사건(Event), 시간(Time), 중도절단(Censored)

    • 사건(Event) : 분야에 따라 사건의 정의가 달라지며, 사망  , 이탈 등이 사건에 해당.

      쉬운 이해를 위하여, 이 포스팅에서는 AML 환자의 사망을 Event 라고 정의한다

    • 시간(Time) : 대상을 관찰하기 시작한 시점으로부터 경과한 시간을 의미.

      예를 들어, ㅇㅇ병원에서 AML 진단한 시점을 관찰 시점이라고 지정할 수 있음. 모든 환자마다 절대적인 관찰 시작시점이 동일하지 않을 수도 있다.
      ex) a환자 : 2021년 3월21일(ㅇㅇ병원에서 AML 진단) , b환자 : 2020년 2월11일(ㅇㅇ병원에서 AML 진단)

    • 중도절단(Censored) : 중도절단은 Survival Analysis에서 손실된 데이터를 처리하기 위해 도입된 개념으로, 데이터의 측정값이나 관찰치가 부분적으로만 알려진 상태이다. censored_data.png

      • Right Censored : 연구 종료 전 기타 이유로 사망하거나 (연구종료 전 교통사고 사망) 혹은 연구 기간 이후에도 사망하지 않은 경우

        즉, 내가 설정한 event 외(이 경우엔 AML 질병으로 인한 사망)외의 경우로 연구 종료 전에 사망하거나, 연구 기간 이후(ex.진단일로부터 10개월의 연구기간) 언젠가에 사망한 경우이다.
        (여기서 생길 수 있는 의문) : Right censored라는 이름 때문에 연구기간 이후까지 살아있는(Right 에 튀어나온) 파란색 데쉬라인 중 아래 라인만 Right censored 같은데, 위 파란색 데쉬라인도 왜 Right censored라고 부를까?
        (hint) : AML 질병으로 인한 이 환자의 사망 날짜(or 생존기간) 을 모르는 경우이므로, 이 사람의 생존 시간은 적어도 연구 기간만큼 긴 것으로 간주한다. 따라서 위에 말한 두 예시에 대한 태도(?)는 같다

      • Left Censored : 연구 시작 전 위험군에 있었던 특정 시점을 모르는 경우(연구 시작전 질환을 보유)

        이 경우는, 예를 들어 ㅁㅁ병원에서 AML 진단을 받았는데 언제 받았는지 모른채로 ㅇㅇ병원으로 넘어왔을 때, 시작지점을 모르기 때문에 생존 기간을 알 수 없다.

위 3가지 기본 개념을 통해 생존 함수(Survival Function) 과 위험 함수(Hazard Function)을 산출해낼 수 있다.

  • 생존 함수(Survival Function) : 특정 시기보다 더 오래 생존할 확률 추정.
  • 위험 함수(Hazard Function) : 특정 시기에 사건이 발생할 확률을 추정.

궁극적으로 위 3가지 기본 개념과 2가지 함수를 통해 생존 분석을 진행한다.

2. Kaplan-Meier Estimation(Curve)를 통한 Survival Analysis

알고리즘에 앞서, Kaplan-Meier Estimation을 하면, 어떤 결과가 나오는지 보면서 어떤 의문을 가졌었는지 적어보았다. 이름에서 알 수 있듯이, 어떠한 커브가 나오긴 한다… kaplan-meier_result.png

결과적으로, Kaplan-meier estimation을 하면 다음과 같은 그래프를 볼 수있다.

  1. 인풋으로 뭐가 들어가야 하나?(개발자 입장)
  2. 그래서 그 인풋으로 어떤 알고리즘을 통해 빨간, 파란 라인은 어떻게 그리는지?
  3. confidence interval은 어떻게 구하는지?
  4. Log-rank는 무엇이고, 이를 통해 p-value는 어떻게 구하는지?

위 4가지 질문에 대해서, 스스로 자문자답을 해보겠다.

Impact of censored data

confidence interval

example

3. Kaplan-Meier Estimation(Curve)의 비교 : log-rank test

weighted log ranktest

python example

4. Kaplan-Meier Curve vs Cox regression model