그룹별 생존분석 적용

Python에서의 Survival Analysis

Shae Wang

Senior Data Scientist

모기지 문제

DataFrame 이름: mortgage_df

id property type duration paid_off
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

Property type: 담보대출로 금융된 주택 유형(house 또는 apartment)

주택과 아파트 담보대출의 상환까지 시간이 다른가?
Python에서의 Survival Analysis

그룹별 생존분포 비교

서로 다른 집단 간 생존(또는 사건/생존 확률) 차이를 평가하는 데 관심이 많습니다.

  • 피험자의 특성 차원
    • 예: 모기지 유형, 타이어 브랜드
  • 실험 집단 차이
    • 예: 처리군 vs. 대조군
  • 동일 특성의 값 차이
    • 예: 고소득 vs. 저소득 가구
Python에서의 Survival Analysis

생존 그룹 비교 유형

1. 점추정치나 생존 통계가 다른가?
  • 특정 시점에서 두 그룹의 생존확률 비교
  • 두 그룹의 전체 생존 비율 비교
Python에서의 Survival Analysis

생존 그룹 비교 유형

2. 기저 분포가 다른가?
  • 공식 가설검정 필요
Python에서의 Survival Analysis

생존 그룹 비교 유형

3. 어떤 속성이 생존에 미치는 영향은?
  • 회귀 기반 모형 필요
Python에서의 Survival Analysis

그룹 차이 시각화

각 그룹에 Kaplan–Meier 생존함수를 적합하고 생존곡선을 나란히 시각화합니다.

장점:

  • 사용·해석이 간단합니다.
  • 비모수 방식으로 다양한 생존분포에 유연합니다.
  • 그룹 간 생존함수 차이를 보여주는 데 유용합니다.
Python에서의 Survival Analysis

그룹 식별하기

DataFrame 이름: mortgage_df

id property type duration paid_off
1 house 25 0
2 apartment 17 1
3 apartment 5 0
... ... ... ...
100 house 30 1

각 그룹에 대한 불리언 마스크를 만듭니다.

house = (mortgage_df["property_type"]=="house")
apt = (mortgage_df["property_type"]=="apartment")

그룹이 2개뿐이면 마스크는 1개만 필요합니다. 다른 그룹은 부정으로 참조할 수 있습니다.

Python에서의 Survival Analysis

생존곡선 적합 및 플로팅

하나의 figure를 만들고 KaplanMeierFitter 클래스를 인스턴스화합니다.

ax = plt.subplot(111)
mortgage_kmf = KaplanMeierFitter()

house 그룹에 mortgage_kmf를 적합하고 figure ax에 그립니다.

mortgage_kmf.fit(duration=mortgage_df[house]["duration"], 
                 event_observed=mortgage_df[house]["paid_off"],
                 label="Houses")
mortgage_kmf.plot_survival_function(ax=ax)
Python에서의 Survival Analysis

생존곡선 적합 및 플로팅

apartment 그룹에 mortgage_kmf를 적합하고 figure ax에 그립니다.

mortgage_kmf.fit(duration=mortgage_df[apt]["duration"], 
                 event_observed=mortgage_df[apt]["paid_off"],
                 label="Apartments")
mortgage_kmf.plot_survival_function(ax=ax)
Python에서의 Survival Analysis

나란히 시각화하기

plt.show()

아파트 vs. 주택 Kaplan–Meier 생존곡선.

Python에서의 Survival Analysis

그룹 생존곡선 해석

아파트 vs. 주택 Kaplan–Meier 생존곡선

  • 평균적으로 아파트 대출이 주택 대출보다 더 빨리 상환됩니다.
  • 임의의 기간에서 아파트 대출 상환 비율이 더 높습니다.

_참고_: 신뢰구간이 겹치는 구간이 있으면, 곡선 간 실제 차이 가능성이 낮습니다.

Python에서의 Survival Analysis

연습해 봅시다!

Python에서의 Survival Analysis

Preparing Video For Download...