Survival Analysis


빅데이터 분석 수업에서 “time series” 데이터 + “DL” 분석기법 으로 주제를 잡고 프로젝트를 진행하게 되었다.

우리는 신용카드 사용 transaction 데이터를 사용하여서 사용자 이탈 예측(Churn Prediction) 을 목표로 하였다.

프로포절 및 중간발표에서 교수님께서 Survival Analysis 를 공부해보면 도움이 될 것이라는 피드백을 주셨다.

그러던 중 이것 저것 구글링도 해보고 논문도 읽어보면서 필요한 용어나 개념을 정리해 둔다.

Reference

  1. xwMOOC
  2. https://shawn-choi.tistory.com/2
  3. https://bioinformaticsandme.tistory.com/223
  4. https://every-day-life.tistory.com/29 : 금연데이터 + R 분석으로 통계적 분석을 보임. KM 부터 다양한 Method들을 실질적으로 다루고 있음. (뒤쪽으로 갈 수록 통계분석 이야기가 많이 나와서 읽지 않고 넘어갔으나, 시간이 될 때 읽으면 깊은 이해에 도움이 많이 될듯!)

Survival Analysis

1.1. 생존분석 개요

생존분석(Survival analysis)은 통계학의 한 분야로, 어떠한 현상이 발생하기까지에 걸리는 시간(time-to-event)에 대해 분석한다. 관찰하는 시간 내에 관심이 있는 사건 event이 발생하는 모든 자료에 적용할 수 있으며, 해당 사건 event은 ‘사망’이 아니어도 상관없다. 따라서 생존분석은 웹페이지의 고객 이탈률 예측(churn prediction), 설비의 고장 발생 확률 예측(equipment breakdown)에도 다양하게 적용할 수 있다.

뜻 생존분석은 로지스틱 회귀분석과 비슷하다는 생각이 들 수도 있지만, 생존분석에는 시간이라는 개념이 들어가기 때문에, 시간에 따른 변화를 읽어내지 못한 채 분석을 하게 되면 잘못된 결과를 얻을 수 있다. 고전적 방법(?) 으로는 통계나, 머신러닝 분야에서 많이 다루어 진 개념인 것 같다. 최근에는 딥러닝 방식으로 접근 하는 논문들도 보인다.

용어 및 개념

  • Censoring : 중도절단. 데이터의 측정값이나 관찰치가 부분적으로만 알려진 상태로 생존 분석에서 손실된 데이터를 처리하는 방법이다. 이상적으로는 표본의 생일과 사망일을 통해 생존 기간을 파악하는 것이 좋지만, 그렇지 못한 경우에 중도절단을 사용한다. 중도절단 자료가 필연적으로 발생되는 이유는 환자 거부로 인한 중도탈락, 연락두절로 인한 추적조사 불가, 사망/고장 발생 전 연구 종결 혹은 다른 원인으로 인한 사망/고장을 들 수 있다. 추적이 불가능(이사, 연락처 소실)
    • Censored data : 사건 발생 여부를 확인할 수 없는 데이터
  • Survival Function : 생존함수. 정의는 다음과 같다. 생존함수는 특정한 시간 t 보다 오래 생존할 확률로 t 는 특정 시간, T 는 사망에 이르는 시점을 나타내는 확률변수로 정의되며, Pr은 확률함수가 된다.
    • S(t)=1−F(t)=Pr(T>t)
  • 모수와 비모수적 방법 : 모수적 방법이란, 결과 변수가 정규분포, 이항 분포, 포아송 분포 등 사전에 알고 있는 분포를 따른다는 가정하에 회귀분석을 통해 생존 함수를 구축하는 것을 말한다. 이와는 달리 비모수적 방법은 분포 가정을 적용하지 않고 생존 함수를 구축하는 것을 말한다.
  • covariate : 공변인. 공벼인을 포함한다는 것은 생존기간 또는 사건의발생까지의 소요기간이

생존분석의 질문

  • 암 진단울 받은 환자가 3년 이상 생존할 확률은?
    • 생존확률 S(t)S(t).
  • 택시를 잡기까지 얼마 시간을 기다려야 하는가?
    • 중위수 tt 시간.
  • 구직자가 100명 있는데, 1년후 얼마나 맣은 사람이 직장을 구하나?
    • 100×S(t)100×S(t) 명.

생존분석 도구

  • 생존시간 기술
    • 생명표(Life tables)
    • 캐플란-마이어 곡선(Kaplan-Meier curves)
    • 생존함수(Survival function)
    • 위험함수(Hazard function)
  • 두집단 이상 생존시간 비교
    • 로그 순위검정(Log-rank test)
  • 생존시간에 대한 연속형, 범주형 변수의 효과를 기술
    • Cox 비례위험 회귀모형 (Cox proportional hazards regression model)
    • 모수 생존모형(Parametric survival models)
    • 생존 나무모형(Survival trees)
    • 생존 확률숲(Survival random forests)

생존분석에는 모수적 방법과 비모수적 방법이 존재

모수적 방법비모수적 방법
Weibull /Exponential/ Log-logistic/ Lognormal /Generalized GammaKaplan-Meier curve/ Cox proportional hazard/ regression

2. Method

2.1. Kaplan-Meier curve

상당수의 의학논문에서 생존분석을 이용해서 분석을 하는 경우, Kaplan-Meier curve를 제시하고 그 후 cox 분석을 주요분석법으로 사용한다. Kaplan curve를 보여주는 이유는 아무래도 단조로운 논문에 그래도 그림이 하나쯤은 필요하기 때문이기도 하지만 더 큰 이유는 cox 분석을 사용하기 위한 주요 가정 중 하나인 **proportional hazard assumption**을 만족하는지를 Kaplan curve가 rough하게 보여주기 때문이다. 비례위험가정은 생존분석의 가장 중요한 가정이기 때문에 뒤에서 따로 다룰 예정이다. 우선 Kaplan curve에 중심을 두고 진행해 보자.

proportional hazard

cox 분석은 여러 분석법 중 신경쓸 일 많지 않은 쉬운 분석법 중에 하나이다. 하지만 비례위험 가정은 꼭!!! 어기면 안된다. 비례위험 가정에 대해 예를 들어보면, 암환자의 경우 진단 후 초/중반에는 사망위험이 높지만 시간이 지날수록 사망 위험도는 점차 감소하다, 5년 이상 생존하는 경우 사망위험이 일반인보다 약간 높을 정도까지 낮아진다. 만약 새로운 항암제의 효과에 대해 연구하고 싶다면 신/구 항암제의 위험도 차이가 초반에나 후반에나 동일해야 한다는 것이다. 위험도 그래프를 그리고 두 선이 만나는 접점이 있을 경우 비례위험 가정은 만족하지 못하는 것으로 간주되며, 따라서 시간에 대해 추가적인 배려를 하지 않은 연구결과는 인정받을 수 없다.

1. 접점 유무를 보기 위해 Kaplan curve를 요구하는 것이다.

2. 만약 접점이 있는 경우에도 무시하고 일반적인 방법으로 분석하면… 결과는 무조건 reject 이다.

### 2.2. Cox Propotional hazards model regression analysis

Cox 분석도 일반화선형회귀분석의 한 분류라는 것을 알 수 있다. 전체적인 분위기는 로지스틱회귀분석과 놀라울 정도로 닮아 있다. 잔차분석이 그리 중요하지 않다던가, 연속형 변수 사용에 유의해야 한다던가.

EX ) parmacoSmoking 데이터

데이터를 보면 대충 감이 오겠지만, 이 데이터는 금연치료에 패치만 쓴 그룹과 패치와 약물치료를 같이 한 그룹으로 나누어 금연치료의 효율성을 본 연구이다. 따라서 이 연구의 결과변수(Y)는 시간(ttr)과 재발여부(relapse)가 결합된 결과이며, 원인변수(X)는 치료그룹(grp)이 된다. 그 외 나이라던가 흡연년수…은 covariate로 보면 될 것이다.

시간의 분포를 보면 연구의 대략적인 결과를 파악할 수 있다. 생존분석에서 시간은 사망하거나(event), 연구에서 중도탈락(censoring)한 두 가지 경우 중 하나이다. 시간의 histogram을 보면 전체적으로 right shifted 된 느낌인 가운데 0과 200근처가 우뚝 서있는 것을 볼 수 있다. 0에 가까운 봉우리는 아마도 작심삼일 들일 것이며, 200에 가까운 봉우리는 연구 종료에 따른 censoring일 것이다. 아래 table을 보면 그 정황을 확인 가능하다. 그리고 아래 table을 보면 연구 종료를 제외하면 censoring이 없음을 알 수 있다. 이는 이 연구가 굉장히 잘 관리된 연구 결과임을 보여준다.

대부분의 연구에서 무시되고 있는 내용인데, 생존분석에서 중도탈락은 무작위(random)하게 이루어지는 것으로 가정된다. 하지만 실제 연구에서는 중도탈락이 의미를 지니는 경우가 많다. 치료약의 부작용이 심하거나, 환자가 스스로 판단하기에 호전이 없을 경우, 무작위 배정 결과가 중간에 환자에게 노출되어 위약군 환자가 연구에서 빠져나가는 경우… 어찌 보면 중도탈락은 사망결과만큼이나 중요한 결과이지만 일반적인 cox분석 결과에서는 중도탈락을 결과물로 제시하지 않는다. 하지만 연구 결과를 판단할 때 신약의 치료효과가 아무리 좋더라도 이해할 수 없는 이유로 치료군 혹은 placebo군의 중도탈락이 반대편에 비해 의미가 있을 정도로 많다면 그 결과는 신뢰하지 않는 것이 바람직하다.

2.3. Martingale residual - Cox 분석에서 연속변수의 처리법

로지스틱회귀분석에서와 같이 생존분석에서도 연속변수를 분석하는데에는 주의가 따른다. 따라서 적절한 값을 기준으로 잘라서 범주형변수로 분석하는 것이 합리적이다. 하지만 대상자의 수가 많지 않아서 범주형 변수로 잘랐을 때 통계적으로 유의해지지 않는다던가, 범주형 변수로 변환하더라도 어느 값을 기준으로 몇 개의 범주로 나누는 것이 합리적인지 판단할 때에는 연속형 변수를 이용한 분석이 도움이 될 때도 있다. 이 때 사용되는 것이 martingale residual 이다.

(아래는 생략, 4번레퍼 참조 )

4. Scheonfeld residual - proportional hazard assumption

5. non-proportional hazard의 교정

6. Stanford Heart Transplant Data

7. Cox 그래프

대개의 경우 논문에 넣을 그림으로 Kaplan curve를 사용하지만 Cox curve를 넣는 경우도 종종 보인다. 앞에서도 언급했다시피 Kaplan curve는 비례위험가정 만족 여부를 확인시켜주기 때문에 흔히 사용되지만, expert 들이 big journal에 싣는 경우 비례위험가정 확인이 그다지 필요 없기 때문에 결과를 더 잘 보여주는 Cox graph를 선호하기도 한다.




© 2018. by yoonhoi Jeon

Powered by zzsza