Klein Ch.4 Overview — Nonparametric Estimation of Basic Quantities for Right-Censored and Left-Truncated Data

Kaplan-Meier product-limit Ŝ(t) = ∏ (1-d_i/Y_i) · Nelson-Aalen Ĥ(t) = Σ d_i/Y_i · Greenwood σ_S² · Aalen σ_H² · pointwise CI 3 종 (linear/log/arcsine) · confidence band 2 종 (EP·Hall-Wellner) × 3 변환 · restricted mean μ̂_τ · median 신뢰구간 (Brookmeyer-Crowley) · left-truncated risk set 재정의 (Channing) · competing risks 3 곡선 (1-KM·CIF·CP)

Klein & Moeschberger Ch.4 의 7 개 절을 한 편으로 조망한다. Ch.3 가 censoring·truncation 의 likelihood 와 counting process 를 정의했다면, Ch.4 는 그 likelihood 를 실제로 풀어 4 함수 (S, H, μ, x_p) 를 데이터로부터 추정한다. § 4.1 Introduction — 7 절 개관 + 핵심 quantity d_i/Y_i (사건 직전 생존자 중 사건 발생 비율) 의 의미. § 4.2 Kaplan-Meier · Nelson-Aalen — 비모수 MLE 의 두 형태·5 가지 유도 (reduced-sample · redistribute-to-the-right · self-consistency · counting process · NPMLE)·소표본에서 NA > KM의 우월성·tail 처리 3 안 (Efron · Gill · Brown-Hollander-Kowar). § 4.3 Pointwise CI — linear (asymptotic normality 직접) · log-transformed (Kalbfleisch-Prentice 1980) · arcsine-square-root (Nair 1984) 3 종·소표본에서 변환된 CI 우월성. § 4.4 Confidence Bands — pointwise CI 의 단순 연결은 too narrow 함정·EP (Nair 1984, q(x)=[x(1-x)]^{-1/2} 변환) · Hall-Wellner (Brownian bridge) 두 형태 × 3 변환·EP 의 t_L>0 제약 vs HW 의 t_L=0 허용. § 4.5 Mean · Median — restricted mean μ̂_τ = ∫_0^τ Ŝ(t)dt + tail 처리·median: Brookmeyer-Crowley 1982a 의 무모수 CI (S(t) 신뢰구간을 quantile 신뢰구간으로 역변환). § 4.6 Left-Truncation — Y_i 재정의 (L_i ≤ t_i ≤ T_i 인 자만 위험집합)·conditional survival S(t|T>L)·Channing house 462 명 retirement community 의 정전 예제·Lai-Ying 1991 의 small-risk-set 정규화. § 4.7 Competing Risks — 1-KM (다른 risk = censoring 처리: hypothetical world)·CIF cumulative incidence (real world)·CP conditional probability (생존자 한정)·1-KM ≠ CIF 함정 + 25%~30% 과대추정 사례. Ch.5~13 의 모든 비모수 (kernel hazard·log-rank·Cox·Aalen·AFT) 가 본 chapter 의 KM·NA 위에서 동작.

Statistics
Survival Analysis
Klein-Moeschberger
Kaplan-Meier
Nelson-Aalen
Confidence-Bands
저자

Kwangmin Kim

공개

2026년 04월 28일

1 들어가며 — Ch.3 likelihood 에서 Ch.4 추정량으로

Klein 시리즈 사다리:

주제
Ch.1 시리즈 19 예제 catalog (5 censoring/truncation 형태)
Ch.2 시리즈 수학적 기초 (4 함수 + 9 분포 + PH/AFT + competing risks)
Ch.3 시리즈 Censoring·truncation 의 likelihood 와 counting process
Ch.4 (본 편) 비모수 추정 — KM · NA · CI · CB · 평균·중앙 · 좌절단 · CIF
Ch.5 (예정) 다른 sampling scheme (interval cens · double cens · right trunc · life table)
… (Ch.6~13) kernel hazard · log-rank · Cox · Aalen · AFT · 진단
Ch.4 의 한 줄 요약

“우측 중도절단 데이터에서, 사건 시점 \(t_i\) 직전 생존자 \(Y_i\) 중 사건 수 \(d_i\) 의 비율 \(d_i/Y_i\) 가 모든 비모수 추정의 출발점이다. 이 비율의 곱 \(\prod (1 - d_i/Y_i)\) 가 생존함수 KM, 합 \(\sum d_i/Y_i\) 가 누적위험 NA, 적분 \(\int \widehat{S} dt\) 가 평균, 좌표 역변환이 중앙값이다. Truncation 은 \(Y_i\) 의 정의를 바꿀 뿐 동일한 framework 으로 처리된다.”

이 단순한 quantity \(d_i/Y_i\) 가 Ch.5~13 의 모든 비모수·반모수 도구의 공통 building block 이다.

직관 — 왜 \(d_i/Y_i\) 가 모든 추정의 출발인가

연속 분포에서 hazard 의 정의:

\[ h(t) = \lim_{\Delta \to 0} \frac{P(t \leq X < t+\Delta \mid X \geq t)}{\Delta} \]

즉 “지금까지 살아있는 사람 중에서 다음 순간 죽을 비율”. 이산 시점 \(t_i\) 에서는 \(\Delta\) 극한 없이 그대로:

\[ h(t_i) = P(X = t_i \mid X \geq t_i) \approx \frac{d_i}{Y_i} \]

  • 분모 \(Y_i\) : “\(t_i\) 직전까지 살아있던 사람 수” (조건부 분모).
  • 분자 \(d_i\) : “\(t_i\) 에 죽은 사람 수” (조건부 분자).
  • 따라서 \(d_i/Y_i\) = \(t_i\) 에서의 hazard 추정.

이 hazard 추정으로부터 — survival, cumulative hazard, mean, median — 4 함수가 모두 자동 도출된다 (Ch.2 의 동등성).

1.1 Ch.4 의 7 절 조망

주제 핵심
§ 4.1 Introduction \(d_i/Y_i\) 의 의미·7 절 개관
§ 4.2 KM · NA estimators 비모수 MLE·5 가지 유도
§ 4.3 Pointwise CI linear · log · arcsine 3 종
§ 4.4 Confidence Bands EP · Hall-Wellner 두 형태
§ 4.5 Mean · Median restricted mean · Brookmeyer-Crowley
§ 4.6 Left-Truncation \(Y_i\) 재정의·Channing 정전
§ 4.7 Competing Risks 1-KM · CIF · CP 3 곡선

2 § 4.1 Introduction — \(d_i/Y_i\) 의 의미

표기 (Ch.4 전체에서 사용):

기호 정의
\(D\) 서로 다른 사건 시점의 수
\(t_1 < t_2 < \cdots < t_D\) 사건 발생 시점
\(d_i\) \(t_i\) 에서의 사건 수 (tie 가능)
\(Y_i\) \(t_i\) 직전의 위험집합 크기 (just before \(t_i\))
정의: 위험집합 (risk set, \(Y_i\))

\(Y_i\) 는 시점 \(t_i\) 직전에 여전히 추적 중이고, 아직 사건을 경험하지 않은 개체의 수이다. 즉

\[ Y_i = \#\{j : T_j \geq t_i\} \]

여기서 \(T_j\) 는 개체 \(j\) 의 관측 시간 (사건 또는 censoring time 중 더 작은 것).

본 chapter 의 가정:

  1. 독립 (비정보적) censoring — censoring 시점이 사건 시점과 독립.
  2. Type I, Type II, progressive, random censoring 모두 적용 가능 (Ch.3.2).

가정 위반 시 (예: 예후 나쁜 환자만 선택적 censoring) 추정량이 다른 함수를 추정하게 되어 결론이 왜곡된다 (Klein & Moeschberger 1984).

3 § 4.2 — Kaplan-Meier · Nelson-Aalen

3.1 Kaplan-Meier (Product-Limit) Estimator

정의: Kaplan-Meier 추정량 (식 4.2.1)

\[ \widehat{S}(t) = \begin{cases} 1 & \text{if } t < t_1 \\ \displaystyle\prod_{t_i \leq t} \left(1 - \frac{d_i}{Y_i}\right) & \text{if } t_1 \leq t \end{cases} \]

직관 — 왜 곱인가:

생존확률을 조건부 확률의 사슬로 분해한다.

\[ \begin{aligned} S(t_k) &= P(X > t_k) \\ &= P(X > t_k \mid X > t_{k-1}) \cdot P(X > t_{k-1} \mid X > t_{k-2}) \cdots P(X > t_1) \end{aligned} \]

각 조건부 확률 \(P(X > t_i \mid X > t_{i-1})\) 는 “\(t_{i-1}\) 까지 생존한 사람 중 \(t_i\) 까지도 생존할 비율” \(\approx (Y_i - d_i)/Y_i = 1 - d_i/Y_i\). 곱하면 KM.

5 가지 유도 (Theoretical Notes 1~5)

KM 은 다섯 가지 다른 관점에서 동일한 추정량으로 도출된다 — 이것이 KM 이 “비모수 MLE” 로 불리는 이유.

  • Reduced-sample: 이산 분포로 보고, 각 시점에서 조건부 확률을 곱.
  • Redistribute-to-the-right (Efron 1967): censored observation 의 mass 를 그 이후 관측에 균등 재분배.
  • Self-consistency (Efron 1967): \(\widehat{S}(t) = \frac{1}{n}[\sum_{T_i > t} 1 + \sum_{\delta_i=0, T_i \leq t} \widehat{S}(t)/\widehat{S}(T_i)]\) 의 fixed point — EM 의 원형.
  • Counting process (Andersen et al. 1993): \(\widehat{S}(t) = \prod_{u \leq t}(1 - dN(u)/Y(u))\) 의 product integral.
  • NPMLE: 모든 점프 위치를 사건 시점에만 둔 분포 가족 안에서의 최대 likelihood.

다섯 유도가 모두 동일한 추정량을 산출한다는 사실이 KM 의 robustness 의 근거다.

3.2 Greenwood 분산 공식

KM 추정량의 분산은 다음 식 4.2.2:

\[ \widehat{V}[\widehat{S}(t)] = \widehat{S}(t)^2 \sum_{t_i \leq t} \frac{d_i}{Y_i (Y_i - d_i)} \]

직관 — 왜 이 형태인가:

\(\log \widehat{S}(t) = \sum_{t_i \leq t} \log(1 - d_i/Y_i)\). 각 항을 \(-d_i/Y_i\) 로 근사하고, \(d_i \sim \text{Binomial}(Y_i, h_i)\) 의 분산 \(Y_i h_i (1-h_i) \approx d_i (Y_i - d_i)/Y_i\) 를 쓰면, \(\log \widehat{S}\) 의 분산이 \(\sum d_i / [Y_i(Y_i - d_i)]\). delta method 로 \(\widehat{S}^2\) 곱하면 식 4.2.2.

3.3 Nelson-Aalen Estimator

정의: Nelson-Aalen 추정량 (식 4.2.3)

\[ \widetilde{H}(t) = \begin{cases} 0 & \text{if } t \leq t_1 \\ \displaystyle\sum_{t_i \leq t} \frac{d_i}{Y_i} & \text{if } t_1 \leq t \end{cases} \]

분산 (식 4.2.4): \(\sigma_H^2(t) = \displaystyle\sum_{t_i \leq t} \frac{d_i}{Y_i^2}\).

직관 — 왜 합인가:

\(H(t) = \int_0^t h(u) du\) 의 이산 근사. 각 시점에서 hazard 추정 \(d_i/Y_i\) 를 누적.

NA 로부터 survival 추정도 가능: \(\widetilde{S}(t) = \exp[-\widetilde{H}(t)]\).

KM 과 NA 의 비교 — 어느 쪽을 쓸까
측면 Kaplan-Meier \(\widehat{S}\) Nelson-Aalen \(\widetilde{S} = e^{-\widetilde{H}}\)
자연성 생존함수 직접 누적위험 → 변환
점프 처리 \(1 - d_i/Y_i\) (multiplicative) \(-d_i/Y_i\) (additive log)
소표본 음의 편향 (조금 더 작음) \(\widehat{S}\) 보다 큼
\(d_i/Y_i\) \(\widetilde{S} > \widehat{S}\) (Taylor 1차)
점근적 동치 동치
모형 식별 약함 \(\widetilde{H}\) vs \(t\) 직선이면 Exp
Hazard 추정 어려움 점프 크기가 \(h\) 의 거친 추정

관행: 생존곡선 보고는 KM, hazard 모양 진단은 NA, 분포 식별 plot 은 NA.

3.4 손풀이 예제 — 6-MP 백혈병 데이터 (Klein Example 4.1)

Freireich (1963) 6-MP 군 21 명의 관해 시간 (주 단위, \(+\) = censoring): 6, 6, 6, 6+, 7, 9+, 10, 10+, 11+, 13, 16, 17+, 19+, 20+, 22, 23, 25+, 32+, 32+, 34+, 35+.

KM 계산표 (Klein Table 4.1A 재구성):

\(t_i\) \(d_i\) \(Y_i\) \(1 - d_i/Y_i\) \(\widehat{S}(t_i)\) Greenwood term
6 3 21 0.857 0.857 \(3/(21 \cdot 18) = 0.0079\)
7 1 17 0.941 0.807 \(0.0079 + 1/(17 \cdot 16)\)
10 1 15 0.933 0.753 \(0.0116 + 1/(15 \cdot 14)\)
13 1 12 0.917 0.690 \(0.0164 + 1/(12 \cdot 11)\)
16 1 11 0.909 0.628 \(0.0240 + 1/(11 \cdot 10)\)
22 1 7 0.857 0.538 \(0.0330 + 1/(7 \cdot 6)\)
23 1 6 0.833 0.448 \(0.0569 + 1/(6 \cdot 5)\)

해석:

  • \(\widehat{S}(23) = 0.448\) 은 “23 주까지 무재발 생존할 확률 약 44.8%”.
  • \(t > 35\) 부분은 정의되지 않는다 — 마지막 관측이 censoring 이므로 (Practical Note 2: Efron tail · Gill tail · Brown-Hollander-Kowar exponential tail 3 안 중 선택).
  • \(Y_i\) 의 갑작스런 감소 (예: \(11 \to 7\)) 는 \(t_i = 16\)\(t_i = 22\) 사이에 4 명이 censoring 되었기 때문.

NA 계산표 (Klein Table 4.2):

\(t_i\) \(d_i/Y_i\) \(\widetilde{H}(t_i)\) \(d_i/Y_i^2\) \(\sigma_H^2\)
6 0.143 0.143 0.0068 0.0068
7 0.059 0.202 0.0035 0.0103
10 0.067 0.268 0.0044 0.0147
13 0.083 0.352 0.0069 0.0217
16 0.091 0.443 0.0083 0.0299
22 0.143 0.585 0.0204 0.0503
23 0.167 0.752 0.0278 0.0781

해석: \(\widetilde{H}(t)\) 의 거의 직선적 증가 (0.143 → 0.752) → constant hazard ≈ exponential 분포 후보 (Ch.12 model identification).

끝에서의 처리 — 3 안 비교

마지막 관측이 censoring 일 때 \(\widehat{S}(t)\)\(t_{\max}\) 너머로 어떻게 정의할까:

방법 가정 \(\widehat{S}(t > t_{\max})\)
Efron (1967) 마지막 censored 가 즉시 사건 0
Gill (1980) 마지막 censored 가 \(\infty\) 에서 사건 \(\widehat{S}(t_{\max})\) (constant)
Brown-Hollander-Kowar (1974) exponential tail \(\exp\{t \ln[\widehat{S}(t_{\max})]/t_{\max}\}\)

Klein (1991) 의 small-sample 실험 결과 Gill 안이 표준. Efron 은 음의 편향, BHK 는 모수적 가정 추가.

4 § 4.3 — Pointwise Confidence Intervals

특정 시점 \(t_o\) 에서의 \(S(t_o)\) 신뢰구간 3 종.

정의: Linear pointwise CI (식 4.3.1)

\[ \widehat{S}(t_o) \pm Z_{1-\alpha/2} \, \sigma_S(t_o) \, \widehat{S}(t_o) \]

여기서 \(\sigma_S^2(t) = \widehat{V}[\widehat{S}(t)] / \widehat{S}^2(t)\) — Greenwood 의 분산을 \(\widehat{S}^2\) 으로 나눈 것.

문제점: linear CI 는 \([0, 1]\) 을 벗어날 수 있다. 또 소표본에서 coverage probability 가 nominal level 보다 작다 (Borgan & Liestøl 1990).

4.1 Log-transformed CI (식 4.3.2)

\[ \left[\widehat{S}(t_o)^{1/\theta}, \widehat{S}(t_o)^{\theta}\right], \quad \theta = \exp\left\{\frac{Z_{1-\alpha/2} \sigma_S(t_o)}{\ln \widehat{S}(t_o)}\right\} \]

직관 — 왜 log 변환인가

\(H(t) = -\ln S(t) > 0\). \(\ln H\) 의 분포가 정규에 더 가깝고, \(H\) 의 자연 도메인 \((0, \infty)\) 가 정규 공간 \((-\infty, \infty)\) 으로 일대일 매핑된다. 신뢰구간을 \(\ln H\) 공간에서 만든 후 \(S = \exp(-H) = \exp(-\exp(\ln H))\) 로 역변환하면, \(S\) 의 신뢰구간이 자연스럽게 \([0, 1]\) 안에 들어가고 비대칭성이 반영된다.

→ 이 변환을 “log-log transformation” 이라고도 부른다 (Theoretical Note 4): \(S\)\(H = -\ln S\)\(\ln H = \ln(-\ln S)\).

4.2 Arcsine-square-root CI (식 4.3.3, Nair 1984)

\[ \sin^2\left\{\arcsin\sqrt{\widehat{S}(t_o)} \pm \frac{1}{2} Z_{1-\alpha/2} \sigma_S(t_o) \sqrt{\frac{\widehat{S}(t_o)}{1 - \widehat{S}(t_o)}}\right\} \]

(상한·하한에 대해 \([0, \pi/2]\) 로 clip).

직관 — 왜 arcsine-sqrt 인가

이항분포 \(p\) 에서 \(\arcsin\sqrt{p}\) 변환은 분산을 안정화한다 (variance stabilizing transformation). \(p \in [0, 1]\)\(\arcsin\sqrt{p} \in [0, \pi/2]\) 의 일대일 매핑이 되고, 분산이 \(p\) 에 의존하지 않게 된다. 결과: 작은 \(\widehat{S}\) (예: 0.05) 와 큰 \(\widehat{S}\) (예: 0.95) 양 끝에서도 CI 가 도메인을 벗어나지 않고 coverage 가 유지된다.

3 종 CI 의 비교 — Borgan & Liestøl (1990)
CI 형태 \([0, 1]\) 보장 소표본 coverage 권장
Linear 대칭 \(\widehat{S} \pm Z\sigma_S\widehat{S}\) X nominal 보다 낮음 큰 표본만
Log-transformed 비대칭 O nominal 보다 약간 낮음 표준
Arcsine-sqrt 비대칭 O nominal 보다 약간 높음 (보수적) 매우 작은 표본

관행: 대부분의 통계 패키지 default 는 linear (R survival::survfitconf.type="plain"). \(n < 50\) 면 log 또는 arcsine 권장. R 의 survfit(..., conf.type="log-log") 가 식 4.3.2 의 변환.

4.3 6-MP 1 년 시점 신뢰구간 비교 (Klein Example 4.2 의 ALL 군)

ALL 환자 38 명의 1 년 (365 일) 무병생존확률 \(\widehat{S}(365) = 0.5492\), 표준오차 \(0.0812\), \(\sigma_s(365) = 0.1479\).

방법 95% CI
Linear \((0.3900, 0.7084)\)
Log-transformed \((0.3783, 0.6911)\)
Arcsine-sqrt \((0.3903, 0.7032)\)

세 CI 의 중심값과 폭이 거의 같지만, 변환된 두 CI 는 비대칭 (\(\widehat{S} = 0.5492\) 기준으로 위쪽이 더 넓음). 이는 sampling distribution 의 skewness 를 반영한다.

5 § 4.4 — Confidence Bands for the Survival Function

5.1 Pointwise CI 를 잇는 것이 왜 틀린가

함정 — pointwise CI 를 모든 \(t\) 에 대해 그리면 confidence band 가 아니다

\(t\) 에서 95% pointwise CI 의 의미:

“이 특정 \(t = t_o\) 에서, \(S(t_o)\) 가 CI 안에 들어갈 확률이 95%”

이를 모든 \(t\) 에 대해 plot 하고 “전체 곡선이 95% 확률로 band 안에 있다” 라고 말하는 것은 잘못. 각 점은 95% 이지만 동시(joint) 신뢰영역은 훨씬 좁다 — multiple comparison 의 본질.

→ 진짜 confidence band 가 필요: \(1 - \alpha = P[L(t) \leq S(t) \leq U(t), \forall t \in [t_L, t_U]]\).

5.2 EP (Equal Probability) Band — Nair (1984)

정의: EP confidence band (식 4.4.2~4.4.4)

먼저 \(a_L, a_U\) 계산 (식 4.4.1):

\[ a_L = \frac{n \sigma_S^2(t_L)}{1 + n \sigma_S^2(t_L)}, \quad a_U = \frac{n \sigma_S^2(t_U)}{1 + n \sigma_S^2(t_U)} \]

조건: \(0 < a_L < a_U < 1\) (즉 $t_L > $ 첫 사건 시점).

Klein Appendix C.3 에서 \(c_\alpha(a_L, a_U)\) 를 찾고, pointwise CI 의 \(Z_{1-\alpha/2}\)\(c_\alpha\) 로 교체:

  • Linear band (식 4.4.2): \(\widehat{S}(t) \pm c_\alpha(a_L, a_U) \sigma_S(t) \widehat{S}(t)\).
  • Log-transformed band (식 4.4.3) · Arcsine-sqrt band (식 4.4.4): pointwise 와 동일한 변환에 \(c_\alpha\) 사용.

직관: EP band 는 pointwise CI 를 단순히 더 넓게 (그러나 비례적으로) 확대한 것. “equal precision” — 모든 \(t\) 에서 같은 standardized 차이로 확대.

5.3 Hall-Wellner (HW) Band — Hall & Wellner (1980)

정의: HW confidence band (식 4.4.5~4.4.7)

Klein Appendix C.4 에서 \(k_\alpha(a_L, a_U)\) 를 찾고:

Linear (식 4.4.5): \[ \widehat{S}(t) \pm \frac{k_\alpha(a_L, a_U) \, [1 + n \sigma_S^2(t)]}{n^{1/2}} \widehat{S}(t) \]

EP 와 달리 HW 는 \(t_L = 0\) 허용 (즉 시작 시점부터의 band 가능).

EP vs HW 비교:

측면 EP (Nair) Hall-Wellner
근거 \(W^\circ(x)/\sqrt{x(1-x)}\) 의 sup Brownian bridge \(W^\circ(x)\) 의 sup
\(t_L = 0\) 허용 안 함 (\(a_L > 0\) 필요) 허용
이른 시점에서 좁음 이른 시점에서 넓음
작은 위험집합 불안정 가능 안정
권장 데이터 풍부한 중간 구간 시작점 포함 시
직관 — HW 와 Brownian bridge

KM 의 \(\widehat{S}(t) - S(t)\) 를 표준화하면 \(n \to \infty\) 에서 Brownian bridge \(W^\circ(\sigma^2)\) 로 수렴 (Klein Theoretical Note 1). Brownian bridge 는 양 끝 (0, 1) 에서 0 으로 고정된 process — HW band 가 양 끝에서 자연스럽게 좁아지는 이유.

EP 의 변환 \(q(x) = [x(1-x)]^{-1/2}\) 는 Brownian bridge 를 “대각선 표준화” 하여 모든 \(x \in (0, 1)\) 에서 같은 분산을 갖게 만든다 — 그래서 “equal precision”.

변환 비교 — Borgan & Liestøl (1990)
Band × 변환 소표본 coverage 권장
EP linear 매우 낮음 (n < 200) X
EP log 적정 O (n ≥ 20 사건)
EP arcsine-sqrt 적정 (약간 보수적) 표준 권장
HW linear 적정 O (n ≥ 20 사건)
HW log 적정 O
HW arcsine-sqrt 적정 O

결론: EP arcsine-sqrt 또는 HW arcsine-sqrt 가 권장. R km.ci package 또는 직접 구현 (Klein Appendix C.3, C.4 의 critical value table 사용).

6 § 4.5 — Mean and Median Survival Time

6.1 Restricted Mean Survival Time (RMST)

정의: 제한 평균 생존시간 (식 4.5.1, 4.5.2)

\[ \widehat{\mu}_\tau = \int_0^\tau \widehat{S}(t) dt \]

분산: \[ \widehat{V}[\widehat{\mu}_\tau] = \sum_{i=1}^D \left[\int_{t_i}^\tau \widehat{S}(t) dt\right]^2 \frac{d_i}{Y_i (Y_i - d_i)} \]

\(\tau\) 는 (a) 마지막 사건 시점, (b) 사전 지정된 임상적으로 의미 있는 시점. 95% CI: \(\widehat{\mu}_\tau \pm 1.96 \sqrt{\widehat{V}[\widehat{\mu}_\tau]}\).

직관 — 왜 “면적” 이 평균인가

\(X \geq 0\) 의 평균:

\[ \mu = E[X] = \int_0^\infty t f(t) dt = \int_0^\infty S(t) dt \]

(부분적분: \(tf(t) = -tS'(t)\), \(\int_0^\infty -tS'(t)dt = [-tS(t)]_0^\infty + \int_0^\infty S(t)dt = \int_0^\infty S(t)dt\)).

survival 곡선 아래 면적이 평균 수명. KM 이 \(t_{\max}\) 에서 끝나면 면적도 \(\tau = t_{\max}\) 까지로 제한. 이것이 RMST.

왜 RMST 가 임상에서 주목 받는가 (최근 trend):

  • PH 가정 위반 시 hazard ratio 의 해석이 불명확해진다.
  • RMST 는 “\(\tau\) 시점까지의 평균 생존 일수” 라는 절대 척도로 직접 해석.
  • 두 군의 RMST 차이 = “평균적으로 며칠 더 살았는가” — 임상 의사결정에 직관적.

6.2 6-MP 군 RMST 계산 (Klein Example 4.1)

마지막 관측이 censoring (35+ 주) 이므로 \(\tau = 35\) 로 제한:

\[ \widehat{\mu}_{35} = 1 \cdot 6 + 0.857 \cdot 1 + 0.807 \cdot 3 + 0.753 \cdot 3 + 0.690 \cdot 3 + 0.628 \cdot 6 + 0.538 \cdot 1 + 0.448 \cdot 12 = 23.286 \text{ 주} \]

표준오차: \(\sqrt{7.993} = 2.827\) 주. 즉 6-MP 군의 평균 무재발 시간은 23.3 주 (35 주 한정), SE 2.8 주.

6.3 Median Survival — Brookmeyer-Crowley (1982a) CI

중앙값 추정은 단순: \(\widehat{x}_{0.5} = \inf\{t : \widehat{S}(t) \leq 0.5\}\) (KM 곡선이 0.5 에 도달하는 가장 빠른 시점).

신뢰구간은 트릭이 필요. 일반적으로 quantile 의 분산은 density \(f(\widehat{x}_p)\) 를 추정해야 하는데 비모수에서는 어려움.

정의: Brookmeyer-Crowley median CI (식 4.5.4~4.5.6)

100(1-α)% CI 는 다음을 만족하는 모든 \(t\) 의 집합:

Linear: \[ -Z_{1-\alpha/2} \leq \frac{\widehat{S}(t) - 0.5}{\widehat{V}^{1/2}[\widehat{S}(t)]} \leq Z_{1-\alpha/2} \]

(log·arcsine 변환 형태도 식 4.5.5, 4.5.6).

직관 — quantile CI 를 survival CI 로 역변환

핵심 아이디어: \(S(x_p) = 1 - p\)\(\widehat{S}(\widehat{x}_p) \approx 1 - p\) 의 관계.

  • 시간축에서의 신뢰구간 (\(\widehat{x}_p\) 의 분산) 은 직접 구하기 어렵다.
  • 그러나 생존확률축에서 \(\widehat{S}(t)\) 의 신뢰구간은 안다.
  • “특정 \(t\) 가 95% CI 안에 있다” \(\Leftrightarrow\) “그 \(t\)\(\widehat{S}(t)\)\(0.5\) 의 95% 신뢰구간에 있다”.

→ 시간 → 생존 → 다시 시간으로 역변환. density 추정 불필요.

7 § 4.6 — Left-Truncated Data

7.1 좌절단 데이터의 위험집합 재정의

좌절단: 개체 \(i\)\(L_i\) (entry time) 이전에 사건 발생 시 표본에서 제외 (Ch.3.4 의 Channing house 정전 예제). 관측 데이터: \((L_i, T_i, \delta_i)\)\(T_i \geq L_i\).

정의: 좌절단 데이터의 위험집합

\[ Y_i = \#\{j : L_j \leq t_i \leq T_j\} \]

\(t_i\) 직전에 이미 entry 했고, 아직 사건이나 censoring 이 발생하지 않은 개체. 우측 censoring 만의 경우 \(L_j = 0\) 이므로 \(\#\{j : T_j \geq t_i\}\) 와 일치.

\(Y_i\) 를 식 4.2.1 (KM) 과 식 4.2.3 (NA) 에 그대로 대입하면 left-truncated 데이터의 비모수 추정.

7.2 추정하는 양의 의미

좌절단 KM 은 무엇을 추정하는가

좌절단 데이터에서 KM 은 무조건부 \(S(t) = P(X > t)\) 가 아닌, 조건부

\[ S(t \mid X > L_{\min}) = P(X > t \mid X > L_{\min}) \]

을 추정한다. 즉 “표본에 포함된다는 조건 하의 생존함수”.

  • \(L_{\min}\) = 표본 내 최소 entry time.
  • 일반적으로 \(t < L_{\min}\) 영역에서는 \(Y_i\) 가 매우 작거나 0 이라 추정 불가.
  • Channing house 예: 60 세 이전은 입소 자체가 없어 추정 불가.

7.3 Channing House 정전 예제

Hyde (1980) 의 462 명 retirement community 데이터 (Klein § 1.16).

  • \(L_i\) = 입소 연령 (개월).
  • \(T_i\) = 사망 연령 또는 1975 년 7 월 1 일 시점 연령.
  • 좌절단 처리 무시 시 → 입소 후 짧은 기간 내 사망자만 비중이 커져 사망률 과대 추정.
  • 좌절단 처리 (식 4.6.1 의 \(Y_i\) 재정의) 시 → 진정한 conditional survival 추정.
직관 — length-biased sampling 보정

요양원 입소자 중 “오래 산 사람” 일수록 수집 시점에 만나기 쉽다 (length-biased sampling). 좌절단 보정 = “각 개체가 표본에 포함된 사실을 분모에 반영” — entry time 이전의 데이터는 사용 불가.

실무적 함의: 의료기록 retrospective study 에서 “diagnosis 이후 추적” 자료는 본질적으로 좌절단. entry time = diagnosis time 으로 정의하고 식 4.6.1 적용.

Practical Note 2 — 작은 위험집합 안정화 (Lai-Ying 1991)

좌절단 + 우측 censoring 시, \(t\) 의 양 끝에서 \(Y_i\) 가 작아지면 KM 의 분산이 폭증. 해결: 작은 \(Y_i\) 의 사건을 무시.

\[ \widetilde{S}(t) = \prod_{t_i \leq t} \left\{1 - \frac{d_i}{Y_i} I[Y_i \geq c n^\alpha]\right\} \]

\(c > 0\), \(0 < \alpha < 1\). 점근적으로 KM 과 동치이지만 finite sample 에서 안정.

8 § 4.7 — Summary Curves for Competing Risks

8.1 3 가지 다른 곡선이 등장하는 이유

핵심 — 3 곡선은 “다른 질문” 에 답한다

각 곡선이 답하는 질문이 명확히 다르다:

곡선 답하는 질문 가정 세계
1-KM (complement of KM) “다른 위험이 없었다면 시점 \(t\) 까지 사건 K 가 일어날 확률” 경쟁 위험 제거된 가상 세계
CIF (cumulative incidence) “현실 세계에서 시점 \(t\) 까지 사건 K 가 일어날 확률” 모든 위험이 작동하는 실제 세계
CP (conditional probability) “다른 사건이 안 일어난 사람 중에서, 시점 \(t\) 까지 사건 K 가 일어날 확률” 생존자 한정 조건부

세 곡선 중 무엇을 보고할지는 분석 목적에 따라 다르며, 잘못 선택하면 결과 해석이 정반대로 갈 수 있다.

8.2 1-KM (Complement of KM) — Klein 비추천

다른 사건을 censoring 처리하고 KM 적용 후 1 - \(\widehat{S}_K(t)\) 계산.

문제: 다른 사건이 “독립” 이라는 가정이 필요한데, 실제로는 거의 항상 위반. 또 해석이 “hypothetical world” — 임상적으로 의미가 모호.

8.3 CIF (Cumulative Incidence Function)

정의: CIF (식 4.7.1)

\(t_1 < t_2 < \cdots < t_K\) 가 사건 (어느 종류든) 발생 시점, \(r_i\) = \(t_i\) 에서 관심 사건 수, \(d_i\) = \(t_i\) 에서 다른 사건 수, \(Y_i\) = 위험집합. 그러면

\[ \text{CI}(t) = \sum_{t_i \leq t} \widehat{S}(t_i^-) \frac{r_i}{Y_i} \]

여기서 \(\widehat{S}\)모든 사건을 사건으로 간주한 KM (overall survival).

직관 — CIF 의 두 항

\(t_i\) 에서의 관심 사건 K 의 발생 확률 = (그 시점까지 어떤 사건도 안 일어날 확률) × (그 시점에서 K 가 일어날 조건부 확률)

  • \(\widehat{S}(t_i^-)\) : “\(t_i\) 직전까지 어떤 사건도 안 일어남” — 모든 risk 작동하는 현실의 생존.
  • \(r_i/Y_i\) : “\(t_i\) 에서 K 가 일어남” — K 의 cause-specific hazard.

곱하면 K 의 marginal contribution. 누적합 = \(t\) 까지의 K 발생률.

핵심 성질: \(\sum_{K} \text{CI}_K(t) = 1 - \widehat{S}(t)\) — 모든 risk 의 CIF 합이 전체 사건 발생 확률과 일치.

8.4 CP (Conditional Probability)

\[ \text{CP}_K(t) = \frac{\text{CI}_K(t)}{1 - \text{CI}_{K^c}(t)} \]

여기서 \(K^c\) = K 가 아닌 모든 다른 위험. 분모: \(t\) 까지 다른 사건이 안 일어났을 확률.

직관 — CP 는 “생존자만 본 발생률”

“다른 사망 원인이 발생하지 않은 사람들 중에서, \(t\) 까지 K 가 일어날 확률”.

임상 예: BMT 환자에서 relapse CP = “감염·GVHD 등 다른 원인으로 안 죽은 사람 중에서 재발할 확률”. 환자 상담 시점에서 “당신이 다른 합병증을 잘 넘기면 재발 위험은…” 이라는 문맥에 적합.

8.5 1-KM ≠ CIF — 정전 함정

100 명 BMT hypothetical 예제 (Klein § 4.7)

100 명 1 년 후: 10 명 재발, 30 명 무재발 사망. censoring 없음.

  • CIF for 재발: \(10/100 = 0.10\) (현실).

  • CIF for 무재발 사망: \(30/100 = 0.30\).

  • CIF 합: \(0.40 = 1 - \widehat{S}(1\text{년})\) ✓.

  • 1-KM for 재발 (무재발 사망을 censoring 처리): KM 곡선이 30 명 censoring 으로 인해 인공적으로 더 천천히 떨어진다 → 1-KM > CIF. 흔히 25%~40% 과대 추정.

→ 경쟁 위험이 흔한 의료 데이터에서 반드시 CIF 를 보고. 1-KM 은 “다른 원인 사망이 모두 0 인 가상 세계의 재발률” 이라는 비현실적 의미.

9 응용 분야

분야 활용 구체적 예시
임상 시험 일차 종점의 생존곡선 신약군 vs 위약군의 PFS KM 비교
종양학 무진행 생존 (PFS) Kaplan-Meier 5 년 PFS = 65% (95% CI 58~72)
신뢰성 공학 MTBF 추정 부품의 평균 고장 시간 RMST
보험·금융 잔존 채무 부도 시점까지의 NA 누적 위험
인구 통계 Cohort 사망률 좌절단 보정 후 retirement community 생명표
골수이식 (BMT) competing risks relapse CIF vs TRM CIF — 1-KM 함정 회피
HIV 역학 잠복기 분포 우절단 데이터의 reverse-time KM (Ch.5)

10 코드 예시

10.1 Step 1: 순수 NumPy 로 KM·NA 직접 구현

원리 이해를 위해 product-limit·Nelson-Aalen 을 직접 코드.

import numpy as np

# 6-MP 데이터 (Freireich 1963)
times = np.array([6, 6, 6, 6, 7, 9, 10, 10, 11, 13, 16, 17, 19, 20, 22, 23, 25, 32, 32, 34, 35])
events = np.array([1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0])

def kaplan_meier(times, events):
    order = np.argsort(times)
    t_sorted = times[order]
    e_sorted = events[order]
    unique_times = np.unique(t_sorted[e_sorted == 1])

    S = 1.0
    H = 0.0
    var_S_term = 0.0
    var_H = 0.0
    results = []

    for ti in unique_times:
        Y = np.sum(t_sorted >= ti)
        d = np.sum((t_sorted == ti) & (e_sorted == 1))

        S *= (1 - d / Y)                                # KM (식 4.2.1)
        H += d / Y                                       # NA (식 4.2.3)
        var_S_term += d / (Y * (Y - d))                  # Greenwood (식 4.2.2)
        var_H += d / (Y ** 2)                            # Aalen (식 4.2.4)

        var_S = (S ** 2) * var_S_term
        results.append((ti, Y, d, S, np.sqrt(var_S), H, np.sqrt(var_H)))

    return results

for ti, Y, d, S, se_S, H, se_H in kaplan_meier(times, events):
    print(f"t={ti:3d}  Y={Y:2d}  d={d}  S={S:.3f} (SE {se_S:.3f})  H={H:.3f} (SE {se_H:.3f})")

출력 결과는 Klein Table 4.1B + Table 4.2 와 일치.

10.2 Step 2: lifelines 로 실무 코드

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

df = pd.DataFrame({"t": times, "event": events})

kmf = KaplanMeierFitter().fit(df["t"], df["event"], label="6-MP")
naf = NelsonAalenFitter().fit(df["t"], df["event"], label="6-MP")

# 점별 신뢰구간 — log-log 변환
print(kmf.confidence_interval_.tail())
print(f"중앙값: {kmf.median_survival_time_}")  # NaN 이면 50% 도달 안 함
print(f"RMST(35): {kmf.survival_function_.loc[:35].sum()}")  # 거친 RMST

fig, axes = plt.subplots(1, 2, figsize=(12, 4))
kmf.plot_survival_function(ax=axes[0])
axes[0].set_title("Kaplan-Meier")
naf.plot_cumulative_hazard(ax=axes[1])
axes[1].set_title("Nelson-Aalen")
plt.tight_layout()

10.3 Step 3: R survival 로 confidence band + competing risks

library(survival)
library(km.ci)
library(cmprsk)

# 6-MP KM + log-log pointwise CI
fit <- survfit(Surv(time, status) ~ 1, data = sixmp,
               conf.type = "log-log")
summary(fit)

# Hall-Wellner band
ci_hw <- km.ci(fit, conf.level = 0.95, method = "hall-wellner")
plot(ci_hw)

# Restricted Mean Survival Time
print(fit, rmean = 35)  # tau = 35

# Competing risks — CIF
ci_fit <- cuminc(ftime = bmt$time, fstatus = bmt$event,
                 group = bmt$group, cencode = 0)
plot(ci_fit, curvlab = c("ALL relapse", "AML relapse",
                         "ALL TRM", "AML TRM"))
R · Python 패키지 매핑
기능 R Python
KM survival::survfit lifelines.KaplanMeierFitter
NA survival::survfit(..., type="fh") lifelines.NelsonAalenFitter
log-log CI conf.type="log-log" KaplanMeierFitter(...).confidence_interval_
HW band km.ci::km.ci(..., method="hall-wellner") 직접 구현 (lifelines 미지원)
EP band km.ci::km.ci(..., method="epband") 직접 구현
RMST survival::print(..., rmean=tau) 또는 survRM2::rmst2 lifelines.utils.restricted_mean_survival_time
Median CI survival::survfitmedian lifelines.utils.median_survival_times
좌절단 Surv(start, stop, event) KaplanMeierFitter.fit_left_censoring (다른 truncation 형태는 직접)
CIF cmprsk::cuminc 또는 survival::survfit(... ~ 1, etype=...) lifelines.aalen_johansen.AalenJohansenFitter

소표본 confidence band 가 필요하면 R 의 km.ci 가 표준. Python 에서는 직접 구현 필요 (Klein Appendix C 의 critical value 표 활용).

11 핵심 takeaway

Ch.4 의 5 가지 교훈
  1. \(d_i/Y_i\) 가 모든 비모수 추정의 building block — KM 은 곱, NA 는 합, RMST 는 KM 적분, median 은 KM 역변환, 좌절단은 \(Y_i\) 재정의, competing risks 는 cause-specific 분리. 도구가 7 개로 보이지만 실은 한 가지 양의 변형.
  2. 소표본에서는 변환된 CI/CB 가 표준 — linear 는 큰 표본만, log-transformed/arcsine 이 finite sample 에서 nominal coverage 보장 (Borgan-Liestøl 1990).
  3. Pointwise CI 를 그대로 잇지 말 것 — joint coverage 가 보장되지 않는다. EP 또는 Hall-Wellner band 사용.
  4. 좌절단은 \(Y_i\) 정의만 바꾸면 끝 — 식 자체는 동일. 단 추정 대상이 conditional survival \(S(t \mid X > L_{\min})\) 임을 잊지 말 것 (Channing 함정).
  5. Competing risks 에서는 CIF, 1-KM 아님 — 1-KM 은 “다른 원인 없는 가상 세계”, CIF 는 “현실 세계”. BMT 류 의료 데이터에서 1-KM 사용 시 25%~40% 과대추정 발생 가능.

12 관련 주제

선행 지식

후속 주제

  • Ch.5 — Other Sampling Schemes (interval cens · double cens · right trunc · life table)
  • Ch.6 — Topics in Univariate Estimation (kernel hazard · excess mortality · Bayesian NPMLE)
  • Ch.7 — Hypothesis Testing (log-rank, Wilcoxon, Tarone-Ware, stratified)
  • Ch.8 — Cox Proportional Hazards Model

관련 개념

Subscribe

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