생존 함수와 위험 함수 — 시간-사건 분석의 두 기둥

Woodward Ch.11.1~11.2 — Introduction & Basic Functions

시간-사건 분석의 두 핵심 함수 — 생존 함수 \(S(t)\) 와 위험 함수 \(h(t)\) — 의 정의, 수학적 관계 (\(h = f/S\), \(H = -\log S\)), 그리고 인간 사망률의 bathtub 곡선 같은 비단조 패턴을 추상 → 일상어 → 반사실 3 단계 직관으로 풀어낸다. PDF·CDF 와의 4 가지 함수 관계를 시각화하고, 각 함수가 보여주는 정보의 차이를 사례로 본다.

Experimentation
Modeling
저자

Kwangmin Kim

공개

2026년 05월 08일

1 11.1 Introduction — 추적 자료의 본질

정의: Follow-up Data 의 특성

추적 (cohort 또는 intervention) 자료는 두 가지 본질 차원을 갖는다:

  1. 시간 차원: 사건 발생까지의 시간 \(T\).
  2. Censoring: 모든 사람이 사건을 경험하지 않음 — 일부는 추적 종료 시점에 사건 미발생 (\(\delta = 0\)).

이 두 차원이 logistic regression 의 단순 binary 분석으로는 부족하다 (Woodward, 2014, Ch.11.1).

1.1 두 종류의 회귀 모형

Survival Regression 의 분업

Parametric (모수적): - 생존 시간의 분포를 명시적 가정 (Exponential, Weibull 등). - \(h(t)\) 의 형태가 모수로 정해짐. - 가정 충족 시 효율 ↑, 외삽 가능.

Semiparametric (반모수적): - 대표: Cox proportional hazards model. - \(h_0(t)\) (baseline hazard) 형태 가정 X — 비모수. - \(\beta\) (covariate 효과) 만 모수. - 분포 가정 회피 — robust.

3 단계 직관:

  • 추상 정의: Parametric 은 “전체 함수의 형태 + 모수” 가정. Semiparametric 은 “효과 부분만 모수, baseline 자유”.
  • 일상어 비유: 수학 시험 답안 — Parametric 은 “공식 사용 + 변수 대입” (정해진 공식). Semiparametric 은 “결과 순위 + 변수 효과 추정” (공식 자유).
  • 반사실 시나리오: 진성 hazard 가 Weibull 이면 Weibull PH 가 Cox 보다 효율 ↑ (10~20%). 형태 미지면 Cox 가 안전. 실무 디폴트는 Cox.

2 11.2 — 생존 시간의 기본 함수

2.1 11.2.1 Survival Function \(S(t)\)

정의: Survival Function

\(T\) 가 사건 발생 시점이라면:

\[S(t) = P(T > t)\]

시점 \(t\) 까지 사건이 발생하지 않을 확률.

성질: - \(S(0) = 1\) (시작 시 모두 생존). - \(S(\infty) = 0\) (충분히 긴 시간 후 모두 사건 — 단 cure model 예외). - 단조 감소. - 우연속 (right-continuous).

2.2 직관 — Survival 의 의미

직관 3 단계: \(S(t) = 0.7\) 의 해석
  • 추상 정의: 시점 \(t\) 에 무작위 1 명이 사건 미발생일 확률 0.7.
  • 일상어 비유: 학교 입학생 100 명 중 졸업까지 남는 비율. \(S(t) = 0.7\) → “이 시점까지 70 명 남아있음”.
  • 반사실 시나리오: 만약 사건이 흔하면 (예: 대학 졸업) \(S(t)\) 가 빠르게 ↓. 희귀하면 (예: 평생 흡연 폐암) \(S(t)\) 가 천천히 ↓. 그래프의 기울기가 위험률을 시사.

임상 의의: - “5 년 생존율 80%” → \(S(5\text{ yr}) = 0.80\). - 환자에게 직관적 보고 가능. - 비교 (treatment vs control) 시 두 KM 곡선의 시각적 거리가 효과의 직관적 표현.

2.3 CDF 와의 관계

\[F(t) = P(T \le t) = 1 - S(t)\]

직관: \(F\) vs \(S\) 의 보고 관점
  • \(S(t)\): 이익 관점 (생존 확률).
  • \(F(t)\): 위험 관점 (누적 사건 확률).

같은 정보, 다른 강조.

3 단계 직관:

  • 추상 정의: \(F(t) + S(t) = 1\). 두 함수가 보완.
  • 일상어 비유: 컵에 든 물 — “절반 차” vs “절반 비어”. 같은 사실, 다른 표현.
  • 반사실 시나리오: 환자에게 보고 시 양 쪽 모두 사용 — “5 년 생존 80%” + “5 년 누적 사망 20%”. 두 표현이 다른 인지적 효과.

2.4 11.2.2 Hazard Function \(h(t)\)

정의: Hazard Function

\[h(t) = \lim_{\Delta t \to 0} \frac{P(t \le T < t + \Delta t \mid T \ge t)}{\Delta t}\]

시점 \(t\) 까지 살아남은 자에 대한 즉각적 사건 발생 비율 (instantaneous failure rate).

핵심 차이: - \(f(t)\): 사건이 시점 \(t\) 에서 발생할 확률 밀도 (모든 사람 기준). - \(h(t)\): 사건이 시점 \(t\) 에서 발생할 비율 (\(t\) 까지 무사한 사람 기준).

2.5 직관 — 조건부 비율의 의미

직관 3 단계: Hazard vs Density
  • 추상 정의: \(h(t) = f(t)/S(t)\). \(f\) 가 분자 (사건 발생 강도), \(S\) 가 분모 (위험에 노출된 자).
  • 일상어 비유: 보험 회사가 80 세 가입자에게 매기는 보험료 — 80 세까지 살아남은 사람 중 다음 1 년 사망 확률 (조건부) 이 결정. 신생아 사망률과 다른 측도.
  • 반사실 시나리오: 만약 \(h(t) = 0.05/\text{yr}\) 라면 — “80 세까지 무사한 사람의 향후 1 년 사망률 5%”. 누적 위험 (\(H(t) = \int h\)) 과 다른 의미.

왜 hazard 가 임상에 중요한가: - 환자의 “현재 시점의 위험률” — 현재 의사 결정에 직접. - 두 군의 hazard ratio 가 모형 단위 (Cox 의 \(\beta\)) 와 직접 연결. - 시간에 따른 위험 변화 패턴 파악.

2.6 Bathtub Curve — 인간 사망의 hazard 패턴

사례: Figure 11.1 — 인간 일생의 hazard

Woodward 의 idealised plot:

hazard
 ↑
 │   ╲                          ╱
 │    ╲                        ╱
 │     ╲                      ╱
 │      ╲___________________ ╱
 └────────────────────────────→ age
   0   10   20   30  40  50  60  70  80

3 단계 시기:

  1. 유아기 (0~5 세): 높은 hazard. 선천성 질환·감염병 사망률 ↑.
  2. 청·중년기 (5~50 세): 낮고 거의 일정. 사고·자살의 약간 변동.
  3. 노년기 (50+ 세): 시간 따라 ↑. 노화·만성 질환 누적.

전형 bathtub 패턴.

3 단계 직관:

  • 추상 정의: \(h(t)\)\(t\) 에 따라 비단조. 단순 모수 (exponential, Weibull) 모형으로 적합 어려움.
  • 일상어 비유: 자동차의 고장률 — 신차 (제조 결함), 안정 운행, 노후 (마모) 의 3 단계.
  • 반사실 시나리오: 만약 hazard 가 일정 (exponential 가정) 으로 모형하면 인간 사망 적합 부적절. 부분 인구 (예: 20~40 세) 만 분석으로 가정 충족 가능. 또는 Weibull (단조) 또는 piecewise 모형.

2.7 Hazard 의 단위

가정 점검: Hazard 의 단위 확인

\(h(t)\) 의 단위 = 1 / (시간 단위). 예:

  • 1 년당 hazard \(h = 0.02/\text{yr}\) — 한 해에 2% 사망.
  • 1 일당 hazard \(h = 0.02 / 365 = 5.5 \times 10^{-5}/\text{day}\).

3 단계 직관:

  • 추상 정의: Hazard 는 비율 (rate) — 단위 시간 당. 확률 (0~1) 아님.
  • 일상어 비유: 자동차 사고율 — “1 년에 1.5 회 사고” 같은 비율. 확률 아니므로 1 초과 가능 (이론적).
  • 반사실 시나리오: 짧은 시간 단위 (예: 1 일) 에서는 \(h(t) \cdot dt \approx P(\text{event in } dt)\) 로 확률 근사. 긴 시간 단위에서는 누적 hazard 사용해야.

보고 시 단위 명시: - “Hazard ratio = 1.5” (단위 무관 비율). - “Hazard = 0.02 / yr” (단위 명시).

2.8 11.2.3 누적 위험 함수 \(H(t)\)

정의: Cumulative Hazard

\[H(t) = \int_0^t h(u)\, du\]

\(0\) 에서 \(t\) 까지의 hazard 누적.

핵심 관계: \[S(t) = e^{-H(t)} \quad \Leftrightarrow \quad H(t) = -\log S(t)\]

2.9 4 가지 함수의 동치성

직관 3 단계: \(S, F, f, h, H\) 의 변환 관계
f(t)  ←─────  d/dt  ─────→  F(t)
                 ↓
              CDF / 1 - S
                 ↓
              S(t)  ←───  exp(-H)  ───→  H(t)
                 ↓                          ↑
              f(t)/S(t) = h(t)  →  ∫ → H(t)

5 함수가 모두 서로 변환 가능 — 하나의 정보, 5 가지 표현.

  • 추상 정의: \(f\) 가 가장 기본 (분포의 정의), \(h\) 가 가장 임상적 (즉각 비교).
  • 일상어 비유: 같은 도시의 인구 분포를 (1) 연령별 인구수, (2) 누적 비율, (3) 연령별 사망률, (4) 누적 사망 위험 으로 표현. 같은 자료, 다른 분석 도구.
  • 반사실 시나리오: 만약 \(S(t)\) 만 추정하면 시점별 위험 패턴 (감소 → 일정 → 증가) 못 본다. \(H(t)\) 의 기울기 변화 (= \(h(t)\)) 가 패턴 시각화.

2.10 4 함수의 사용 분업

함수 활용
\(S(t)\) 환자 보고, KM 곡선 시각화
\(F(t) = 1 - S(t)\) 누적 사건 발생 보고
\(h(t)\) 시점별 위험 비교, Cox 모형
\(H(t)\) 모형 진단 (NA estimator), Weibull plot
\(f(t)\) 이론 분석, 분포 적합

3 Glioblastoma 사례 — Example 11.1

사례: 27 명 의 생존 자료 (Karkavelas et al., 1995)

Cisplatin 치료 시작부터 사망까지의 주 단위:

10, 12, 13, 15, 16, 20, 20, 24, 24, 26, 26, 27, 39, 42, 45, 45, 48, 52, 58, 60, 61, 62, 73, 75, 77, 104, 120

모두 사건 발생 — censoring 없음.

KM 추정: - 27 주에 약 50% (median survival). - 120 주에 0.

3 단계 직관:

  • 추상 정의: 사건이 흔하고 censoring 0 — 분석이 단순.
  • 일상어 비유: 교실의 학생들이 모두 시험을 응시하는 경우 — 모든 자료 활용.
  • 반사실 시나리오: 만약 일부가 추적 손실 (censored) 이면 KM 의 정직한 처리. 또는 administrative censoring (연구 종료) 도 같은 방식.

3.1 KM 추정의 산출

KM 추정량: \[\hat S(t) = \prod_{t_i \le t} \left(1 - \frac{d_i}{n_i}\right)\]

각 사건 시점의 조건부 생존 확률을 곱.

\(t\) \(n_t\) \(e_t\) \(\hat S(t)\)
10 27 1 \(26/27 = 0.9630\)
12 26 1 \(0.9630 \cdot 25/26 = 0.9259\)
13 25 1 \(0.9259 \cdot 24/25 = 0.8889\)
15 24 1 \(0.8519\)
16 23 1 \(0.8148\)
20 22 2 \(0.7407\)
24 20 2 \(0.6667\)
26 18 2 \(0.5926\)
27 16 1 \(0.5556\)

해석: - 16 주까지 81.5% 생존. - 27 주까지 55.6%. - 73 주에 14.8%.

Hazard 의 spiky 패턴: KM hazard \(\hat h_t = e_t/(n_t \cdot u_t)\) 가 사건 빈도 + 위험 인구에 따라 극단적 변화 (사건 없는 구간 0, 빈번한 구간 ↑).

4 코드 예시 — KM + Hazard 시각화

import numpy as np
import pandas as pd
from lifelines import KaplanMeierFitter, NelsonAalenFitter
import matplotlib.pyplot as plt

# Glioblastoma 자료
times = [10, 12, 13, 15, 16, 20, 20, 24, 24, 26, 26, 27, 39, 42, 45, 45,
         48, 52, 58, 60, 61, 62, 73, 75, 77, 104, 120]
events = [1] * len(times)  # 모두 사건 발생

# KM (S(t))
kmf = KaplanMeierFitter()
kmf.fit(times, events, label="Glioblastoma")

# NA (H(t))
naf = NelsonAalenFitter()
naf.fit(times, events, label="Glioblastoma")

# 시각화
fig, axes = plt.subplots(1, 3, figsize=(15, 4))

# S(t)
kmf.plot_survival_function(ax=axes[0])
axes[0].set_title("Survival function S(t)")
axes[0].set_xlabel("Time (weeks)")
axes[0].set_ylabel("S(t)")

# 1 - S(t) = F(t)
axes[1].plot(kmf.survival_function_.index,
             1 - kmf.survival_function_.values.flatten())
axes[1].set_title("Cumulative density F(t)")
axes[1].set_xlabel("Time (weeks)")
axes[1].set_ylabel("F(t) = 1 - S(t)")

# H(t)
naf.plot_cumulative_hazard(ax=axes[2])
axes[2].set_title("Cumulative hazard H(t)")
axes[2].set_xlabel("Time (weeks)")
axes[2].set_ylabel("H(t)")

plt.tight_layout()

해석: 같은 자료의 3 가지 시각. \(S(t)\) 가 감소, \(F(t)\) 가 증가, \(H(t)\) 가 누적 증가. \(H(t) = -\log S(t)\) 관계 자동 충족.

5 A/B 테스트의 Survival 함수 활용

A/B 테스트에서 시간 차원이 있는 분석에 survival function 자연 적용.

사례: 사용자 retention 의 KM

A/B 테스트의 retention curve = 사용자의 가입 후 이탈까지의 시간 분석.

  • \(T\): 가입 후 이탈까지의 일수.
  • \(\delta\): 이탈 여부 (분석 시점에 활성 = censored).

KM 곡선이 retention curve. 두 군 (A vs B) 비교 시 log-rank test 가 통계 유의성 검정.

3 단계 직관:

  • 추상 정의: A/B 의 결과를 단순 binary (이탈 yes/no) 가 아닌 시간 차원 보존 분석 → 정보 효율 ↑.
  • 일상어 비유: 학생 자퇴율 분석 — “1 년 자퇴율” 이항 분석 vs “자퇴까지 시간” 시계열 분석. 후자가 풍부.
  • 반사실 시나리오: 만약 logistic 으로만 분석하면 추적 길이 차이 (조기 가입 vs 후기 가입) 의 정보 손실. KM + Cox 가 정직.

6 Bathtub 의 IT 판 — 사용자 lifecycle

hazard (이탈)
 ↑
 │ ╲ (가입 직후 이탈 — 1 일~1 주: onboarding 실패)
 │  ╲
 │   ╲
 │    ─────────── (안정기: 6 개월~2 년)
 │                                    ╱
 │                                   ╱  (장기 사용자의 churn: 권태·경쟁사)
 └──────────────────────────────────────→ tenure
   0d   7d   30d   90d   1yr   2yr   3yr

3 단계 직관:

  • 추상 정의: 사용자 hazard 가 비단조 — 단순 exponential 부적합. 단계별 분석 또는 Weibull 권장.
  • 일상어 비유: 결혼 이혼율의 시간 패턴 — 신혼 (소수 이혼), 안정기, 장기 (권태로운 ↑).
  • 반사실 시나리오: 단계 무시 후 평균 hazard 만 보면 onboarding 위험 + 장기 churn 위험 모두 평탄화. 단계별 분석 (e.g., piecewise hazard) 이 정직. :::

7 결론

생존·위험·누적위험 함수가 시간-사건 분석의 세 기둥. 4 함수 (\(S, F, f, h, H\)) 가 모두 서로 변환 가능하나 활용 분업이 다름. Bathtub 곡선 같은 비단조 패턴이 모수 모형의 한계를 시사 — Cox PH 의 강점.

다음 글 (H-WOO11-2) 에서 hazard 추정의 4 가지 방법 (KM, Person-time, Actuarial, Nelson-Aalen) 의 수식과 활용을 깊이 본다.

8 관련 주제

Phase B 크로스링크

Statistics 크로스링크

Time-to-Event 통합 정리

Subscribe

Enjoy this blog? Get notified of new posts by email: