생존 분석 - 카플란 마이어 추정
생존분석이란
생존분석은 자료가 절단되는 Cencoring을 고려하며 Time to Event에 대해 분석하기 위한 분석 방법이다. 이는 Linear Regression, t-test, Logistic Regression등의 통계 방법으로는 해결할 수 없다. 생존분석의 목적은 아래와 같다.
- User의 Time to Event를 예측한다.
- 둘 이상의 그룹간의 Time to Event를 비교한다.
- 변수들이 Event에 미치는 영향을 파악하고 비교한다.
특정 사건이 발생하는데 까지 걸리는 시간을 다루는 분석 방법인 생존분석은 특정 사건(Event)이 ‘죽음’이나 ‘발병’이 될 수 있으며, 시간(Time)은 그 이벤트가 발생하기까지 걸린 시간을 의미한다. ‘죽음’ 이라는 사건은 통칭 실패라고 불리며, 시간은 생존시간이라 한다. 유저관점에서 접근한다면, 이탈을 실패로 정의하고, 이탈 하기까지의 시간을 생존시간으로 정의할 수 있다.
y축이 유저, x축이 생존 시간이다. 관측기간 동안 이탈이 발생했다면 검정색 점, 관측기간 이내로 파악이 안된 자료는 중도절단 자료(Cencored)라고 부른다. 생존시간이 얼마인지 정확히 모르기 떄문에, 흰색 점으로 표시하고 기간에 +표시를 표기한다. 중도 절단된 생존시간은 불완전한 관측값이지만, 이를 무시하지 않는다. 단, 이탈이 완전하게 관찰된 유저와는 구분을 두어 확률계산에 반영한다.
생존 함수와 위험 함수
A. 생존함수 (Survival Function)
특정 시기보다 더 오래 생존할 확률을 추정한다. 생존 함수는 아래와 같다. \(S(t) = P(T > t)\)
- $T$ : 유저 생존 기간 T. 확률변수 (random variable)
- $t : T$의 특정 값
- $F(t)$ : 특점 시점 t까지 event가 발생했을 확률. f(t)의 누적밀도함수이며 $1-S(t)$
생존 함수를 그림으로 표현한 것은 생존 곡선이다. 생존시간 t가 증가하며 생존확률 $S(t)$는 점점 감소한다. 이론적으로 생존 시간의 범위는 0부터 무한대이다.
B. 위험 함수 (Hazard Function)
$h(t)$ : $t$까지 생존했을때, 직후 event가 일어날 조건부 확률. 특정 시기에 사건이 발생할 확률을 추정한다.
\[h(t) = \lim_{\Delta t \to 0} P(t \leq T < t + \Delta|T > t)\] \[= \dfrac{f(t)}{S(t)}\]생존 함수 추정
A. 카플란 마이어 추정량
Kaplan-Meier estimation을 통해 집단간의 시간에 따른 생존율을 쉽게 비교할 수 있다. 적은 표본에 대해서도 적용할 수 있어 널리 사용된다. 요약에는 Median Survivor 값을 사용하며, 기간별 구간 생존비율을 사용할 수 도 있다.
카플란 추정치의 수식은 아래와 같다. 각 구간별 생존자수의 비율로 구간생존율 $P(t)$를 산출하고, 누적생존율 $S(t)$는 구간생존율 $P(t)$를 차례로 곱하여 산출한다.
\[S(t_i) = P(T>t_i) = P(T>T_1)P(T>t_2|T>t_1) \cdots P(T>t_i|T>t_i-1)\] \[=\prod_{{t_i} \leq t} \left( 1-\dfrac{d_i}{n_i} \right),\delta_i = 0(cencoring)\ or \ 1,d_i=\text{사망자수}\]따라서 카플란 마이어 추정에 의한 생존함수는 어떤 사람이 $t_1$ 시점까지 생존했을 확률과, $t_1$ 시점까지 생존했다면 $t_n$ 시점까지 살아있을 확률들의 곱해진 확률이다. $S(t) = 0.5$ 되는 $t$는 중간 생존 기간이라 한다.
A.1. 카플란 마이어 추정 예제 1.)
샘플 5명, 관측기간 중 4명이 사망하고 1명이 cencored된 예제이다. 코드 없이 시나리오를 통해 이해해보자.
- 생존곡선 작도
- 0개월째, 5/5 전원 생존
- 5개월째, 4명 중 1명 사망하여 4/5 즉, 생존확률 80%
- 20개월째, 4명 중 1명 기록 절단으로 인원 3명으로 축소
- 30개월째, 3명 중 1명 사망하여 인원 2명으로 축소.
- 이전 생존확률 80%에 절단기록 반영한 2/3 곱하여 생존확률 53%
- 50개월째, 1명 사망하여 인원 1명으로 축소.
- 이전 생존확률 53% 에 1/2 곱하여 26.5%
- 60개월째, 1명 사망하여 전원 사망
- 자료 요약 : Survivor Fraction이 50%가 되는 지점이 Median Survival Time
- 50개월째.
- 자료 요약 2 : 시점별 생존율을 계산하여 자료요약에 활용할 수 도 있다.
A.2. 카플란 마이어 추정 예제 2.)
강아지 보호소를 예시로 사용한다. 강아지 보호소에는 새로운 강아지가 입소하고, 입양되어 퇴소하는 사건이 발생한다. 따라서 강아지가 보호소에 남아있는 기간을 생존기간으로, 입양되어 퇴소하는 사건을 위험으로 간주한다. [[생존분석 KM 예제]]
활용안
A. 변수 변경
$S(T) = P(T>t)$에서 $T$는 관찰 시간이다. 만약 이를 다른 변수로 바꾼다면 새로운 분석이 된다. 게임 레벨 등, 시간이 흐르며 변화하는 진행 척도는 무엇이든 대입할 수 있다. 그룹도 다양하게 설정하여 코호트 분석에 깊이를 더할 수 있다. 혹은, 이탈이 아닌 구매 등의 긍정적인 지표로 변경하여 생존분석을 진행할 수 있다.
B. 설명 변수 추가
어떤 변수가 수명에 영향을 주는지 분석할 수 있다. 두 그룹간에 차이가 있다면, 어떤 피쳐가 생존기간에 영향을 미치는지 파악할 수 있다.
C. 위험 추정
생존 곡선을 그린다면, 각 시각에서의 위험률을 계산할 수 있다. 위험함수를 도출하면, 유저들이 어느 시점에서 가장 이탈할 가능성이 높은지 failure rate 관점에서 살펴볼 수 있다.
D. LTV 돈과 시간 측정
단위시간당 가치를 유저의 생존곡선과 결합해야 유저의 총 가치가 어느정도인지 알 수 있다.