1 개요
Ch.12~16 의 인과 분석은 단일 시점 결과 (\(Y\)) 를 대상으로 했다. Ch.17 은 결과가 시간-사건 (time-to-event) 인 경우 — 사망까지 걸린 시간, 질병 발생까지 시간, 이탈까지 시간 — 의 인과 분석을 다룬다.
직관 — 생존 분석의 특수성: 시간-사건 결과는 “관측 안 된 결과 (censoring)” 가 본질적. 추적 종료 시점까지 사건 발생 안 한 사람의 정확한 사건 시간 모름. 일반 회귀로 단순 분석 불가능.
Survival probability: \(\Pr(T > k)\) — 시점 \(k\) 까지 생존 확률. Risk (cumulative incidence): \(\Pr(T \leq k) = 1 - \text{Survival}\). Hazard (discrete-time): \(\Pr(T = k | T > k - 1)\) — 시점 \(k\) 까지 생존한 후의 즉시 사건 확률. Hazard ratio: \(\frac{\Pr(D_{k+1}=1|D_k=0, A=1)}{\Pr(D_{k+1}=1|D_k=0, A=0)}\).
직관 — 세 측정 단위의 관계: Survival 은 누적, hazard 는 순간. Survival = 모든 시점의 (1 - hazard) 의 곱. Hazard 알면 survival 도출 가능, 반대도.
2 6 개 소챕터의 흐름
| 소챕터 | 핵심 질문 | 답 |
|---|---|---|
| 17.1 | 시간-사건의 측정 단위는? | Survival, risk, hazard, HR |
| 17.2 | Hazard 에서 survival 로? | 곱셈 공식, Kaplan-Meier, logistic 회귀 |
| 17.3 | Censoring 의 처리는? | 행정 vs 비행정, IPW 보정 |
| 17.4 | IPW MSM 으로 인과 분석? | 가중 logistic, 시점별 모수 |
| 17.5 | G-formula 로? | 결과 모형 + 표준화 |
| 17.6 | G-estimation 으로? | SNMM 의 생존 확장 |
3 NHEFS 사례 — 흡연 중단의 사망 효과
데이터: 1629 명 1971-75 흡연자, 1983-1992 추적 (120 개월). 318 명 사망, 1311 명 censored.
보정 없음: 120 개월 생존 — quitters 76.2%, non-quitters 82.0%. 차이 5.8% (quitters 가 더 사망).
IPW 보정 후: 차이 0.2% (95% CI -4.1, 3.7) — 흡연 중단의 통계적 사망 영향 약함.
직관 — 보정 전후의 정반대 결과: 단순 비교에서 quitters 가 더 사망. 이는 confounding — 나이 든 사람이 더 많이 끊었고 더 많이 사망. 보정 후 효과 거의 0 — 흡연 중단이 사망에 직접 영향 약함 (체중 증가 같은 다른 메커니즘 때문 가능).
4 핵심 개념 5 가지
4.1 1. Hazard Ratio 의 함정 (17.1)
(1) 시점 의존: HR 은 시점마다 다를 수 있음. 단일 HR 보고 (Cox 모형) 는 가중 평균 — 해석 어려움.
(2) Built-in Selection Bias: HR 은 이미 생존한 사람들 의 위험 비율. \(D_{k}\) 의 collider conditioning 으로 처치-결과 false 연관 도입.
→ Hernan 의 권장: HR 보다 risk/survival 비교.
직관 — Built-in selection bias 의 메커니즘: 처치가 high-risk 환자를 일찍 죽였다고 하자. \(k+1\) 의 HR = “\(k\) 까지 생존한 처치-대조의 비율”. 처치군 생존자 = low-risk 만, 대조군 생존자 = high+low-risk 혼합. → HR < 1 이지만 처치 효과는 음의 방향. HR 은 conditioning on collider.
직관 — Cox 모형의 함정: 가장 흔한 생존 분석 도구지만 단일 HR 추정으로 시간 의존성 무시. 결과 해석 시 항상 HR 의 가정 (proportionality) 점검 필요.
4.2 2. Survival ↔︎ Hazard 변환 (17.2)
\[\Pr(D_k = 0) = \prod_{m=1}^{k} \Pr(D_m = 0 | D_{m-1} = 0)\]
Hazard 의 곱이 survival. Logistic 회귀로 hazard 추정 후 곱셈으로 survival 계산.
\[\mathrm{logit}\, \Pr(D_{k+1}=1 | D_k=0, A) = \theta_{0,k} + \theta_1 A + \theta_2 A k + \theta_3 A k^2\]
- \(\theta_{0,k}\): 시간변동 절편 (예: \(\theta_0 + \theta_4 k + \theta_5 k^2\)).
- \(\theta_1, \theta_2, \theta_3\): 처치 효과의 시점 변동.
Person-time 데이터 형식 (각 person × month 가 row) 으로 적합.
직관 — Person-time 데이터의 의미: 1 명 환자가 추적 기간만큼 row 생성. 사망 또는 censoring 시점까지. NHEFS 의 1629 명이 person-month 형식에서 약 17 만 row.
직관 — Logistic 으로 hazard 모형 가능한 이유 (Tech Point 17.1): hazard 가 작으면 (rare event 가정) hazard ≈ odds → log(hazard) ≈ logit(odds). Logistic 회귀의 모수가 hazard 모수의 근사치. 시점별 hazard 가 < 0.1 이면 정확.
4.3 3. Kaplan-Meier 추정량 (17.2)
\[\widehat{S}(k) = \prod_{m=1}^{k} \left(1 - \frac{d_m}{n_m}\right)\]
여기서 \(d_m\) = 시점 \(m\) 의 사망 수, \(n_m\) = \(m\) 진입 시점의 위험 인구.
비모수 — 함수 형태 가정 없음. 큰 표본에서 robust.
직관 — KM 의 단순함: 매 시점 “(아직 살아 있는 사람 - 그 시점 사망자) / 아직 살아 있는 사람” 의 비율을 곱. 가정 없이 직접 계산. 그러나 표본이 작거나 censoring 많으면 추정 불안정.
4.4 4. Censoring 의 처리 (17.3)
Administrative: 모든 사람의 추적 종료 시점. 행정적 사유 — 무작위적 (시간변동 외 다른 변수와 무관 가정).
Non-administrative: 손실 추적 (loss to follow-up), 경쟁 사건 (competing event). 무작위 아닐 수 있음 → selection bias 위험.
비행정 censoring 은 IPW 가중 (\(W^C = 1/\Pr(C=0|L,A)\)) 으로 보정.
직관 — Competing Event (Fine Point 17.1): 다른 사망 원인이 관심 사건 발생 차단. 처리 방식이 인과 질문 자체를 변경. 가장 어려운 생존 분석 문제 — Hernan 의 자세한 논의는 Ch.23 의 mediation 까지.
4.5 5. 인과 생존 분석의 도구 (17.4-17.6)
| 도구 | 핵심 절차 |
|---|---|
| IPW MSM (17.4) | 가중 logistic hazard model + product 로 survival 도출 |
| Parametric g-formula (17.5) | 결과 모형 + 표준화로 시점별 survival |
| G-estimation SNMM (17.6) | SNMM 의 생존 확장 |
세 도구 모두 Ch.12~14 의 g-method 의 시간-사건 일반화.
직관 — 단일 시점 처치 + 시간-사건 결과의 미묘함: 처치는 baseline 의 한 시점, 결과는 매 시점 hazard. 처치 효과가 시점별로 다를 수 있음 (early vs late). 모형이 이를 표현해야 함.
5 가정의 점검
| 가정 | 영향 |
|---|---|
| 조건부 교환가능성 | 보정된 covariate \(L\) 이 모든 교란 포함 |
| 양의 확률 | 모든 \(L\) 에서 처치-비처치 모두 존재 |
| 일관성 | \(A=a\) 의 사람의 결과가 \(Y^a\) 와 일치 |
| 비행정 censoring 무작위 | 또는 측정된 \(L\) 로 보정 가능 |
| Hazard 모형 specification | logistic 함수 형태 옳음 |
직관 — Time-fixed 처치의 단순화: Ch.17 은 baseline 에서 처치 한 번 결정 (smoking cessation at baseline). Part III 는 시간변동 처치 (시점별 처방 변경) 를 다룸 — 더 어려운 case.
6 응용 분야
- 임상 코호트 사망 분석: NHEFS 같은 long-term follow-up
- 종양학 무진행 생존: 진행까지의 시간
- 고객 이탈 분석 (Churn): 가입 → 이탈까지 시간
- 신뢰성 공학: 부품 작동 → 고장까지 시간
- 의약품 안전성: 부작용 발생까지 시간
7 후속 글로 이어지는 다리
| 글 | 다루는 내용 |
|---|---|
| 16-1 | 17.1 + 17.2 — Hazard·Risk + Hazard 에서 Survival 로 |
| 16-2 | 17.3 + 17.4 — Censoring 의 중요성 + IPW MSM |
| 16-3 | 17.5 + 17.6 — Parametric g-formula + SNMM g-estimation |
8 코드 미리보기
import pandas as pd
from lifelines import KaplanMeierFitter
# Person-month 데이터로 변환 (lifelines 는 person-level 받음)
nhefs = pd.read_csv("nhefs.csv")
nhefs["death"] = nhefs["death"].fillna(0)
nhefs["survtime"] = (nhefs["yrdth"] - 1983) * 12 + nhefs["modth"]
nhefs.loc[nhefs["death"] == 0, "survtime"] = 120 # administrative censoring
kmf = KaplanMeierFitter()
fig, ax = plt.subplots()
for level, label in [(0, "Non-quitters"), (1, "Quitters")]:
sub = nhefs[nhefs["qsmk"] == level]
kmf.fit(sub["survtime"], sub["death"], label=label)
kmf.plot_survival_function(ax=ax)
ax.set_xlabel("Months"); ax.set_ylabel("Survival probability")
plt.show()9 한 줄 요약
생존 분석은 시간-사건 결과의 censoring 을 다루는 특수 분석. Hazard 는 시점별 즉시 위험, survival 은 누적 생존. HR 은 시점 의존성 + built-in selection bias 위험으로 risk/survival 비교 권장. NHEFS 흡연 중단의 사망 효과는 보정 후 약함. IPW MSM, parametric g-formula, SNMM g-estimation 이 인과 생존 분석의 표준 도구.
10 관련 주제
선행 지식
후속 주제
- Hazard·Risk + Hazard→Survival — Ch.17.1-17.2
- Censoring + IPW MSM — Ch.17.3-17.4
- Parametric g-formula + SNMM g-est — Ch.17.5-17.6
- Variable Selection — Ch.18
- 시간변동 g-방법 — Ch.21
다른 카테고리 연결
- 생존 분석 통계 기초 — Cox 모형, AFT, KM
- Time-to-event 분석