1 왜 시간-사건 분석이 필요한가
코호트가 단순한 “발생 비율 비교” 라면 카이제곱 검정으로 충분할 것이다. 그러나 실제 코호트에서는 다음 두 문제가 발생한다.
- 추적 기간이 사람마다 다르다 — 어떤 사람은 2 년 만에 결과 발생, 어떤 사람은 10 년 추적 후에도 미발생.
- 추적 시작 시점이 사람마다 다르다 — 신규 등록이 연구 기간 내내 들어옴(staggered entry).
이 두 문제 때문에 단순한 “10 년 안에 사례 발생 비율” 같은 이분 비교는 정보를 잃는다. 각 시점에서의 위험 변화 자체를 모형화해야 한다 — 이것이 생존 분석(survival analysis) 의 출발점이다 (Schulz & Grimes, 2019, Panel 4.1).
생존 함수 (Survival Function):
\[ S(t) = P(T > t) \]
시간 \(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\) 까지 살아남은 자가 그 직후 짧은 구간 \([t, t+\Delta t)\) 에서 결과를 겪을 순간적 비율.
1.1 직관: 위험 함수는 “지금까지 무사한 사람의 위험률”
\(h(t)\) 는 누적이 아니라 순간 슬라이스다. 마치 자동차 보험 갱신 시점마다 묻는 “이번 1 년 안에 사고 날 확률” 과 같다 — 매 시점마다 갱신되며, 개인 단위로 시간에 따라 변할 수 있다. 위험률은 “현재까지 살아남은 사람” 만 분모에 둔다는 점에서 누적 발생률과 본질적으로 다르다.
2 Kaplan-Meier 추정량
KM 곡선은 모형 가정 없이 비모수적으로 생존 함수를 추정한다.
\[ \hat S(t) = \prod_{t_i \le t} \left( 1 - \frac{d_i}{n_i} \right) \]
- \(t_i\): 결과(사건)가 발생한 시점.
- \(d_i\): 시점 \(t_i\) 에서 결과가 발생한 사례 수.
- \(n_i\): 시점 \(t_i\) 직전까지 위험 상태에 남아 있는 사람 수 (at risk).
각 시점 \(t_i\) 에서 살아남을 조건부 확률은 \(1 - d_i/n_i\) — “지금까지 무사한 \(n_i\) 명 중 \(d_i\) 명을 잃지 않을 확률”. 이 조건부 확률들을 시간 순서로 곱해 가면, 시점 \(t\) 까지 누적 생존 확률이 된다.
핵심 직관: KM 은 “한 단계씩 살아남기” 의 곱셈이다. 한 시점이라도 위험률이 높으면 그 충격이 이후 모든 누적 생존에 반영된다.
2.1 왜 KM 이 단순 비율보다 우월한가
만약 단순히 “추적 종료 시점까지의 사례 발생 비율” 만 비교하면, 늦게 등록되어 추적 기간이 짧은 사람의 정보가 왜곡된다. 예를 들어 5 년 짜리 연구에 2 년 차에 등록한 사람이 3 년 추적 후 미발생으로 끝나면, “이 사람은 무사” 라는 정보의 가치가 5 년 추적된 무발생자와 동일하게 처리된다.
KM 은 각 사람을 그가 실제로 위험에 노출된 시간만큼만(at risk 분모에 포함시켜) 사용하므로 이 정보 손실을 막는다. 이것이 censoring(절단) 처리의 본질이다.
2.2 단계 함수와 시각화
KM 곡선은 계단형(step function) 으로 그려진다 — 사건이 발생할 때마다 한 단계씩 떨어지고, 사건이 없는 구간은 평평하다.
S(t)
1.0 │■■■■
│ ■■■■
0.8 │ ■■■
│ ■■■■■
0.6 │ ■■■■■
│ ■■■■
0.4 │ ■■
└────────────────────────────→ t
상보적으로 누적 발생률 곡선 \(1 - S(t)\) 도 같은 정보를 위로 올라가는 형태로 표현한다.
3 Log-Rank 검정 — 두 곡선이 다른가
두 군의 KM 곡선이 통계적으로 다른지 검정한다 (Schulz & Grimes, 2019, Panel 4.1).
각 사건 시점 \(t_i\) 에서 군 1 의 기대 사건 수를 \(E_{1i}\), 관찰 사건 수를 \(O_{1i}\) 라 하자. 모든 사건 시점에 대해
\[ \chi^2 = \frac{\left( \sum_i (O_{1i} - E_{1i}) \right)^2}{\sum_i V_i} \]
이 자유도 1 의 카이제곱 분포를 따른다. \(V_i\) 는 각 시점의 분산.
3.1 직관: 매 시점의 “기대 vs 관찰” 누적
\(O_{1i} - E_{1i}\) 는 시점 \(t_i\) 에서 군 1 이 무작위 분배보다 사건을 더(또는 덜) 겪었는가의 부호다. 두 군의 위험률이 같다면 사건은 두 군에 비례적으로 배분되어 평균 0 이 된다. 검정은 이 편차들을 시간 축 전체에서 누적하여 통계량을 만든다.
비유: 농구 경기에서 매 쿼터마다 “기대 점수 vs 실제 점수” 의 차이를 전 경기에 걸쳐 합산해 우승팀이 정말 강했는지 평가하는 것과 비슷하다 — 한 쿼터의 운이 전체 결과를 흔들지 않게 시간 축 전체를 본다.
4 Cox 비례 위험 모형
Log-rank 가 두 곡선의 차이만 검정한다면, Cox PH 모형은 그 차이의 크기를 정량화하고 다변량 보정도 가능하게 한다 (Schulz & Grimes, 2019, Panel 4.1).
\[ h(t \mid \mathbf{x}) = h_0(t) \exp\left( \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_p x_p \right) \]
- \(h_0(t)\): 모든 공변량이 0 일 때의 기준 위험 함수(baseline hazard) — 시간에 따라 변할 수 있으나 형태는 자유.
- \(\exp(\beta_j)\): 공변량 \(x_j\) 가 1 단위 증가할 때의 위험비(hazard ratio, HR) — 다른 공변량 일정 가정 하.
4.1 비례 위험 가정의 의미
가정: 두 군 간의 위험비가 시간에 따라 일정하다 — \(h_1(t) / h_0(t) = \exp(\beta) = \text{const}\).
비례 위험 가정이 깨지면 — 예를 들어 새 약이 초기에 큰 효과를 주지만 1 년 후 효과가 소멸한다면 — Cox PH 의 단일 HR 추정은 시간 평균을 평탄화하여 진성 효과 패턴을 가린다.
이 경우 시간 의존 공변량 또는 stratified Cox 모형으로 가정 위반을 흡수해야 한다. 검진 도구로는 Schoenfeld residuals 의 시간 추세를 본다 — 시간에 따라 0 주변에서 흐트러지는지.
4.2 직관: HR 의 일상어 해석
\(\exp(\beta_{\text{흡연}}) = 2.5\) 라면 다른 조건이 같을 때 흡연자가 비흡연자 대비 매 시점 사건 발생률이 2.5 배 라는 뜻이다. 이는 “흡연자가 비흡연자보다 2.5 배 빨리 죽는다” 가 아니라, 순간 위험률이 2.5 배 라는 더 정밀한 진술이다.
위험비는 다음과 같이 RR 과 거의 동일하게 해석되되, 시간 차원이 추가된다.
| 지표 | 시간 차원 | 해석 |
|---|---|---|
| Relative Risk (RR) | 없음 (특정 기간 누적) | “기간 X 안에 발생할 확률 비” |
| Hazard Ratio (HR) | 있음 (순간 위험률) | “현 시점 발생 위험률 비” |
희귀 결과에서는 두 값이 거의 같지만, 사건이 흔하면 HR 이 더 정확한 지표다.
4.3 부분 가능도 — 왜 Cox 가 강력한가
Cox 모형은 기준 위험 \(h_0(t)\) 의 형태를 가정하지 않고도 \(\beta\) 를 추정한다. 이는 부분 가능도(partial likelihood) 라는 천재적 통찰의 결과다 — 사건이 발생한 시점에 누가 위험 상태에 있었는지의 순서 정보만 사용한다.
비유: 경마에서 우승마가 누군지 안다고 해서 “각 말의 절대 속도” 까지 알 필요는 없다. 순위 정보만으로 어떤 말이 평균적으로 빠른지 추정 가능하다. Cox 가 baseline hazard 의 모양을 모르면서도 HR 을 추정할 수 있는 이유가 같다.
5 코호트의 약점 1 — Selection Bias
코호트의 이상적 가정은 “비노출자는 노출자에서 노출만 빼면 동일” 이다. 그러나 관찰 코호트에서 이는 거의 성립하지 않는다.
예시 — 조깅 코호트 (Schulz & Grimes, 2019, Ch.4.3): 조깅 노출자 vs 비조깅자의 심혈관 질환 비교.
조깅을 선택하는 사람은 다른 면에서도 다르다 — 식이가 더 건강하고, 흡연이 적고, 사회경제적 지위가 높을 수 있다. 그래서 심혈관 질환 차이가 조깅의 효과인지, 다른 변수의 효과인지 구분되지 않는다.
5.1 반사실: RCT 가 이 함정에서 자유로운 이유
RCT 는 무작위 배정으로 모든 잠재 교란 변수를 두 군에 평균적으로 동일하게 분배한다. 측정되지 않은 변수까지 포함된다. 코호트는 측정된 교란만 회귀로 보정 가능하므로, 미측정 교란이 남는다.
| 측면 | RCT | Observational Cohort |
|---|---|---|
| 측정된 교란 | 무작위 배정으로 자동 균형 | 회귀·매칭으로 보정 |
| 미측정 교란 | 무작위 배정으로 자동 균형 | 보정 불가, 잔여 교란 |
자기선택(self-selection) 이 IT 에서 동일 패턴을 만든다 — A/B 테스트 opt-out 사용자가 활성도 낮은 사용자라면, opt-in 사용자만 본 결과는 일반 사용자에게 일반화되지 않는다.
6 약점 2 — 희귀 결과 부적합
희귀 질환(예: 경피증) 의 발생률이 인구 10 만명당 1~3 건이라면, 100,000 명을 추적해도 사건이 1~3 건만 발생한다. 검정력이 절망적이다.
6.1 직관: 사건 수가 검정력의 본질
코호트의 검정력은 표본 크기보다 사건 수가 결정한다. 100,000 명 추적이라도 사건 5 건이면 OR 측정도, HR 측정도 모두 큰 신뢰구간을 갖는다.
대안: case-control. 희귀 결과를 가진 사례를 모은 다음, 적절한 비교군을 비효율 없이 표집한다 (cross-link: B-SCH5 시리즈 — Case-Control 묶음).
6.2 반사실: 희귀 노출 vs 희귀 결과의 분업
| 희귀 측면 | 적합 설계 | 이유 |
|---|---|---|
| 노출이 희귀 (이온화 방사선) | Cohort | 노출자 풀이 한정되어 있어 표집이 자연 |
| 결과가 희귀 (경피증) | Case-Control | 결과부터 시작해 사례 표본을 보장 |
이 분업이 두 설계의 본질적 분담이다. Schulz Ch.5 (case-control) 가 이 반대편을 다룬다.
7 약점 3 — 장기 비용
암·심혈관 등 장잠복 질환은 추적이 수십 년에 달한다. 운영 비용·인건비·표본 유지가 모두 큰 도전이다.
7.1 그러나 — 큰 코호트의 가치
장기 비용은 단점이지만, 잘 설계된 큰 코호트는 다음 30~50 년의 의학 지식을 결정한다. 다음 코호트들이 그 증거다 (Schulz & Grimes, 2019, Ch.4.3).
- Framingham Heart Study (1948 시작) — 심혈관 위험 인자의 거의 모든 정량 추정의 출처.
- Nurses’ Health Study (1976 시작) — 여성 건강과 호르몬·식이 관계 (Barbhaiya et al., 2017).
- British Physicians’ Study (1951 시작) — Doll & Peto 의 흡연-사망 연구의 모태 (Doll et al., 2000).
- Royal College of General Practitioners’ Oral Contraceptive Study — 경구피임약 평생 위험 (Iversen et al., 2017).
이들은 비싸지만 비교 불가능한 가치를 산출했다.
8 약점 4 — Loss to Follow-up
추적 손실은 두 가지 수준에서 문제다.
- 검정력 손실 — 사건 수 감소.
- 차별 손실(differential loss) — 노출-결과와 상관된 손실 → 편향.
가정: “추적 손실은 노출·결과와 무관” (missing at random 의 강한 형태).
위반 시나리오: 새 항생제 치료군에서 부작용이 심한 사람이 응답을 거부하고 사라진다. 손실되지 않은 자만 분석에 들어간다 → 이 항생제가 실제보다 좋아 보인다.
이 함정은 “관찰된 평균만 본다” 는 분석 전략의 본질적 약점이다.
8.1 회피 전략
| 단계 | 행동 |
|---|---|
| 등록 단계 | 완료 가능성 높은 자만 등록 (외적 타당도 vs 내적 타당도 트레이드오프) |
| 등록 시점 | 가족·지인 연락처, 가정의 정보 사전 확보 |
| 추적 단계 | 차량등록·주민등록·국가 사망 색인 활용 |
| 응답 보상 | 시간 보상 — 응답률 유지 |
| 분석 단계 | Sensitivity analysis (손실자가 모두 결과 발생/모두 미발생 가정) |
대규모 동시대 코호트가 다단계 추적으로 높은 유지율을 달성한 사례는 INAS-OC 등이 보여준다 (Dinger et al., 2014).
8.2 IT 대응 — 측정 손실의 IT 판
A/B 테스트에서 로그 누락, 앱 업데이트 후 이벤트 추적 끊김, Sample Ratio Mismatch (SRM) 가 같은 패턴이다. 차별 누락 — 한 군에서만 추적이 깨지면 결과 해석 전체가 위태로워진다.
9 코드 예시 — KM + Log-rank + Cox PH
import numpy as np
import pandas as pd
from lifelines import KaplanMeierFitter, CoxPHFitter
from lifelines.statistics import logrank_test
np.random.seed(42)
n = 500
# 가상 데이터: 노출 여부와 추적 시간·사건
exposure = np.random.binomial(1, 0.5, n)
# 노출자의 위험률이 1.6 배
hazard_ratio_true = 1.6
T = np.where(
exposure == 1,
np.random.exponential(scale=1.0 / 0.05 / hazard_ratio_true, size=n),
np.random.exponential(scale=1.0 / 0.05, size=n),
)
# 관측 종료 시점 8.0 년에서 행정적 censoring
event = (T <= 8.0).astype(int)
T = np.minimum(T, 8.0)
df = pd.DataFrame({"T": T, "event": event, "exposure": exposure})
# 1. Kaplan-Meier 곡선
kmf = KaplanMeierFitter()
for label, mask in [("noexpose", exposure == 0), ("expose", exposure == 1)]:
kmf.fit(df.loc[mask, "T"], event_observed=df.loc[mask, "event"], label=label)
print(f"{label}: 5 년 생존확률 = {kmf.survival_function_at_times(5.0).values[0]:.3f}")
# 2. Log-rank
lr = logrank_test(
df.loc[exposure == 1, "T"], df.loc[exposure == 0, "T"],
event_observed_A=df.loc[exposure == 1, "event"],
event_observed_B=df.loc[exposure == 0, "event"],
)
print(f"Log-rank p = {lr.p_value:.4f}")
# 3. Cox PH
cph = CoxPHFitter()
cph.fit(df, duration_col="T", event_col="event")
print(cph.summary[["exp(coef)", "exp(coef) lower 95%", "exp(coef) upper 95%", "p"]])해석: KM 곡선이 두 군의 시간별 생존을 시각화하고, log-rank 가 차이의 통계 유의성을, Cox PH 가 hazard ratio 와 95% CI 를 정량화한다. 진성 HR 1.6 에 가까운 추정이 나오면 모형이 잘 작동.
10 결론
생존 분석(KM, log-rank, Cox PH)은 추적 기간이 다른 코호트에서 정보 손실 없이 효과를 추정하기 위한 표준 도구다. 그 위력의 대가로 비례 위험 가정 같은 새로운 가정을 받아들여야 하고, 가정이 깨지면 시간 의존·층화 모형으로 보정해야 한다.
코호트의 4 가지 약점은 모두 무작위 배정이 없다는 사실의 그림자다 — selection bias, 희귀 결과 부적합, 장기 비용, loss to follow-up. 이들은 RCT 에서는 다른 형태로 나타나거나 제거된다. 다음 글(B8) 에서는 코호트 보고를 어떻게 평가할 것인지(4 질문)와 추적 손실 관리의 실무를 정리한다.
11 관련 주제
- 코호트 연구 개관
- 전향·후향·양방향 + 강점
- 코호트 평가 기준과 추적 손실
- 코호트 보고 표준과 변형
- Time-to-Event Measures: 시간-사건 분석 지표 종합 — IR/IRR/HR/KM/Cox/SMR 통합 정리