로그-랭크 검정

Python에서의 Survival Analysis

Shae Wang

Senior Data Scientist

가설검정

  • 통계적 추론 방법

  • 귀무가설 $H_0$: 예) 캘리포니아와 네바다 거주자의 평균 소득은 같다.

  • 대립가설 $H_1$: 예) 캘리포니아와 네바다 거주자의 평균 소득은 다르다.

  • P-값: 귀무가설이 참일 때 현재 데이터가 나올 가능성은?

가설검정 만화.

Python에서의 Survival Analysis

로그-랭크 가설검정

  • 각 시점 $t$에서 집단 간 생존확률 $S_i$를 비교합니다

$H_0$: $S_A(t)=S_B(t)$

$H_1$: $S_A(t)\neq S_B(t)$

  • P-값: $S_A(t)=S_B(t)$일 때 현재 데이터가 나올 확률

다중 생존곡선 나란한 다중 생존곡선.

Python에서의 Survival Analysis

로그-랭크 검정 실행

from lifelines.statistics import logrank_test

logrank_test(durations_A, durations_B, event_observed_A, event_observed_B)
  • .print_summary()
  • .p_value
  • .test_statistic
Python에서의 Survival Analysis

로그-랭크 검정 예시

프로그램이 아기들의 첫 말 시점을 바꾸나요?

t.head(2)
    id  duration  observed
0    1        12         0
1    4         6         1
c.head(2)
    id  duration  observed
0    0        11         1
1    2        14         0
lrt = logrank_test(
    durations_A = t['duration'], 
    durations_B = c['duration'], 
    event_observed_A = t['observed'],
    event_observed_B = c['observed'])
lrt.print_summary()
<lifelines.StatisticalResult: logrank_test>
 null_distribution = chi squared
degrees_of_freedom = 1
         test_name = logrank_test
 test_statistic    p  -log2(p)
           0.09 0.77      0.38
Python에서의 Survival Analysis

유의할 점

  • 로그-랭크 검정은 비모수 가설검정입니다
  • lifelines 사용 시, 데이터는 우측 검열이어야 합니다(예: 대상 3)
  • 검열은 비정보적이어야 합니다
  • $n>2$ 집단 간 로그-랭크 검정: pairwise_logrank_test() 또는 multivariate_logrank_test() 사용

검열 만화.

Python에서의 Survival Analysis

연습해 봅시다!

Python에서의 Survival Analysis

Preparing Video For Download...