1 들어가며 — Ch.4 의 두 sampling scheme 에서 모든 sampling scheme 으로
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·Band·Mean/Median·LT·CIF (우측 censored + 좌절단) |
| Ch.5 (본 편) | Left·Double·Interval Censoring + Right Truncation + Cohort Life Table |
| Ch.6 (예정) | Kernel hazard smoothing + excess mortality + Bayesian NPMLE |
| … (Ch.7~13) | log-rank · Cox · Aalen · AFT · 진단 |
“Ch.4 의 KM·NA framework 는 우측 censoring + 좌절단 두 가지 sampling scheme 만 직접 처리한다. 다른 모든 scheme — left censoring · double censoring · interval censoring · right truncation · grouped data — 는 (1) time-reversal trick 으로 Ch.4 framework 에 환원 (left cens → right cens, right trunc → left trunc), (2) Turnbull 의 self-consistency 반복으로 NPMLE 직접 계산 (double·interval), 또는 (3) cohort life table 의 grouped KM 으로 처리한다. Ch.5 의 모든 도구가 Ch.4 의 변형 또는 일반화.”
Ch.4 가 처리하는 두 scheme:
- 우측 censoring: 사건이 일어났는지 안 일어났는지만 알고, 일어났다면 그 시점도 정확히 안다 (가장 흔한 임상시험 데이터).
- 좌절단: entry 시점 이전의 사건 발생자는 표본에 없음 (length-biased sampling).
다른 sampling scheme (Ch.1.17~1.19 의 정전 사례):
- Left censoring (마리화나 첫 사용 시점): 사건이 일어난 건 알지만 정확한 시점을 모름 — “이미 사용한 적 있음” 같은 응답.
- Interval censoring (breast cancer cosmetic deterioration): 사건이 두 검진 시점 사이 어딘가에 일어남.
- Right truncation (AIDS): 표본 수집 시점까지 사건 발생한 사람만 표본 포함 (vs 좌절단의 mirror image).
- Grouped data (life table): 사건 시점이 미리 정해진 구간 내에서만 보고됨.
→ 각 scheme 은 다른 정보 구조 를 가지므로 다른 likelihood, 다른 추정량이 필요. 그러나 Ch.4 의 수학적 도구를 (적절히 변형하여) 그대로 활용 가능.
1.1 Ch.5 의 4 절 조망
| 절 | 주제 | 핵심 도구 |
|---|---|---|
| § 5.1 | Introduction | Ch.5 의 5 sampling scheme 위치 |
| § 5.2 | Left·Double·Interval Cens | Time reversal + Turnbull 1974/1976 self-consistency |
| § 5.3 | Right Truncation | Time reversal → 좌절단 환원 |
| § 5.4 | Cohort Life Table | Grouped data 의 KM (식 5.4.1) |
| § 5.5 | Exercises | 10 문제 |
2 § 5.2 — Left, Double, and Interval Censoring
2.1 Left Censoring — Time Reversal Trick
개체 \(i\) 의 사건 시점 \(X_i\) 에 대해:
- 정확히 관측: \(X_i\) 값 알려짐.
- Left censored: \(X_i\) 가 어떤 시점 \(C_{l,i}\) 이전에 일어났음만 알려짐 (\(X_i \leq C_{l,i}\)).
예 (Klein § 1.17 마리화나): 고등학생에게 “마리화나 처음 사용 나이” 를 물음. “이미 사용한 적 있음” 응답 = “현재 나이 이전에 사용했음” → left censored.
핵심 아이디어: 시간을 거꾸로 흐르게 하면 left censoring 이 right censoring 으로 변환.
- 큰 시점 \(\tau\) 를 잡고 새로운 시간 \(T_i^* = \tau - T_i\) 정의.
- 원래 left-censored (\(X_i \leq C_{l,i}\)) → 새 시간에서 right-censored (\(\tau - X_i \geq \tau - C_{l,i}\)).
→ 변환된 데이터에 § 4.2 의 KM 그대로 적용. 결과 KM 은 \(P(\tau - X > t) = P(X < \tau - t)\) 의 추정.
원래 시간으로 역변환: \(\widehat{F}(t) = \widehat{P}(X < t) = 1 - \widehat{S}^*(\tau - t)\) where \(\widehat{S}^*\) 은 변환 데이터의 KM.
조건: \(\tau\) 가 모든 관측 시점 이후. censoring 과 사건 시점의 독립 가정 유지.
→ Ch.4 도구를 그대로 사용. 새 추정 framework 불필요. Ware-DeMets (1976) 의 적용 사례.
2.2 Double Censoring — Turnbull (1974) Self-Consistency
표본에 left + right censoring 이 모두 있고, 일부 정확한 사건 시점도 있음.
표기:
- \(t_1 < t_2 < \cdots < t_m\): 사전 정의된 grid.
- \(d_i\): 시점 \(t_i\) 에서의 정확한 사건 수.
- \(r_i\): \(t_i\) 에서의 right censoring 수.
- \(c_i\): \(t_i\) 에서의 left censoring 수 (“\(t_i\) 이전 어딘가” 에서 사건 발생).
Double censoring 은 단순 time reversal 로 처리 안 됨 (양 방향 censoring 이 동시 존재). Turnbull (1974) 의 반복 알고리즘 (self-consistency) 이 표준.
§ 4.2 Theoretical Note 3 의 self-consistency (Efron 1967) 가 right censoring 의 KM 을 fixed point 로 도출했다. Turnbull 은 이를 left + right 양방향 으로 확장:
알고리즘:
- Step 0: 초기값 \(S_0(t_j)\) — Turnbull 권장은 left-censored 무시한 KM.
- Step (K+1)-1: 현재 \(S_K\) 로 conditional 확률 계산:
\[ \widehat{p}_{ij} = \widehat{P}(t_{j-1} < X \leq t_j \mid X \leq t_i) = \frac{S_K(t_{j-1}) - S_K(t_j)}{1 - S_K(t_i)}, \quad j \leq i \]
- Step (K+1)-2: 각 left censored 관측 \(c_i\) 를 가능한 시점들에 분배:
\[ \widehat{d}_i = d_i + \sum_{l \geq i} c_l \cdot \widehat{p}_{li} \]
(시점 \(t_l\) 에서 left censored 된 \(c_l\) 명 중, 실제로 \(t_i\) 에서 사건 발생했을 기댓값을 더함).
- Step (K+1)-3: 새 KM 계산 (right censored 데이터 처리):
\[ S_{K+1}(t_j) = \prod_{i \leq j}\left(1 - \frac{\widehat{d}_i}{Y_i}\right) \]
- 수렴할 때까지 반복.
EM 알고리즘과의 관계: \(\widehat{p}_{ij}\) 가 E-step, \(\widehat{d}_i\) 업데이트가 M-step. Self-consistency 는 EM 의 비모수 적용. → § 4.2 의 right censoring 만의 self-consistency 가 단방향, Turnbull 이 양방향.
2.3 Interval Censoring — Turnbull (1976) NPMLE
각 개체 \(i\) 의 사건 시점이 구간 \((L_i, R_i]\) 내에 있음만 알려짐.
- Exact = degenerate interval (\(L_i = R_i^-\)).
- Left = \((0, R_i]\).
- Right = \((L_i, \infty)\).
→ Interval censoring 은 censoring 의 super-class.
Closed form 없음. NPMLE (nonparametric MLE) 를 반복 계산:
Jump points 결정: 모든 \(L_i, R_i\) 모은 후 정렬. 가능한 jump 시점들 \(q_1 < q_2 < \cdots < q_m\).
Indicator \(\alpha_{ij}\): 개체 \(i\) 의 가능한 사건 시점이 \(q_j\) 를 포함하는가.
\[ \alpha_{ij} = I(q_j \in (L_i, R_i]) \]
Self-consistency 반복: \(\widehat{p}_j\) = \(q_j\) 에서의 확률 mass. 초기값에서 시작:
\[ \widehat{p}_j^{(K+1)} = \frac{1}{n} \sum_i \frac{\widehat{p}_j^{(K)} \alpha_{ij}}{\sum_l \widehat{p}_l^{(K)} \alpha_{il}} \]
(개체 \(i\) 의 mass 를 그 가능 시점들에 비례 분배).
수렴 후 \(\widehat{S}(t) = 1 - \sum_{q_j \leq t} \widehat{p}_j\).
→ Turnbull 1976 의 알고리즘은 EM 의 직접 비모수 적용. interval censoring 의 표준 도구. R icenReg + interval 패키지 구현.
2.4 Klein Examples 5.1·5.2
California 고등학생 191 명의 마리화나 첫 사용 나이.
- 정확히 관측: 일정 나이에 사용 시작 응답.
- Left censored: “이미 사용한 적 있음” 응답 (현재 나이 이전 어딘가).
- Right censored: “사용한 적 없음” + 인터뷰 시점.
Turnbull 1974 알고리즘 적용 → 17 회 반복 후 수렴 (Klein Table 5.2).
결과 (interval-summarized):
- 12-24 월령: 0.761.
- 25-33 월령: 0.668.
- 40-48 월령: 0.467.
→ 청소년의 marijuana 첫 사용 빈도가 14~16 세에 급증.
Beadle (1984) 94 명 breast cancer 의 4-6 개월 검진 사이에서의 cosmetic 악화 시점:
- Radiation only 46 명 vs Radiation + chemotherapy 48 명.
- 검진 사이의 interval censoring (정확한 시점 모름).
Turnbull 1976 NPMLE → 두 군의 추정 곡선 비교 (Klein Figure 5.1).
→ Radiation only 군의 cosmetic 악화 시점이 더 늦음 (chemotherapy 추가 시 부작용 가속).
2.5 Turnbull 분산 — J 행렬의 inverse
double censoring 의 covariance matrix \(\mathbf{V} = (V_{ij})\), \(V_{ij} = \text{Cov}[\widehat{S}(t_i), \widehat{S}(t_j)]\).
Tridiagonal symmetric matrix \(\mathbf{J}\) 의 inverse 가 \(\mathbf{V}\):
\[ A_{ii} = \frac{d_i}{[\widehat{S}(t_{i-1}) - \widehat{S}(t_i)]^2} + \frac{d_{i+1}}{[\widehat{S}(t_i) - \widehat{S}(t_{i+1})]^2} + \frac{r_i}{\widehat{S}(t_i)^2} + \frac{c_i}{[1 - \widehat{S}(t_i)]^2} \]
\[ A_{i,i+1} = -\frac{d_{i+1}}{[\widehat{S}(t_i) - \widehat{S}(t_{i+1})]^2} \]
\(|i-j| \geq 2\) 면 \(A_{ij} = 0\).
\(A_{ii}\) 의 4 항: 각 종류의 데이터가 \(\widehat{S}(t_i)\) 의 정밀도에 기여.
- \(d_i, d_{i+1}\): 사건 시점 양 옆.
- \(r_i\): right censoring.
- \(c_i\): left censoring.
→ 모든 정보 source 가 합산된 Fisher information 의 비모수 일반화.
Tridiagonal 구조: 인접 시점의 정보만 직접 공유 (멀리 떨어진 시점은 covariance 0).
3 § 5.3 — Right-Truncated Data
3.1 Right Truncation 의 본질
표본에 사건이 시점 \(\tau\) 이전에 발생한 개체만 포함.
- \(T_i\) = chronological 사건 발생 시점.
- \(X_i\) = “infection 부터 disease 까지” 의 시간 (induction time, latency).
- 표본 조건: \(T_i \leq \tau\) — 즉 시점 \(\tau\) 까지 disease 발현한 사람만.
전형적 응용: 감염병 retrospective study (AIDS, hepatitis 등). 발병 시점에서 거꾸로 추적.
| 측면 | Left truncation (§ 4.6) | Right truncation (§ 5.3) |
|---|---|---|
| 표본 조건 | \(X_i \geq L_i\) (entry 이후 사건) | \(X_i \leq \tau\) (시점 \(\tau\) 까지 사건) |
| 누락 | Entry 이전 사건자 (Channing 의 60 세 이전 사망) | 시점 \(\tau\) 이후 사건자 (AIDS 잠복기 긴 환자) |
| 추정 가능 | \(S(t) / S(L_{\min})\) — conditional | \(P(X < \tau - t \mid X \leq \tau)\) — conditional |
→ 두 truncation 은 시간축의 좌우 대칭. Right trunc 는 left trunc 의 mirror image.
3.2 Time-Reversal: Right Truncation → Left Truncation
§ 5.2 의 left censoring 처럼, time reversal 로 right truncation 을 left truncation 으로 변환:
- \(R_i = \tau - X_i\).
- 원래 right truncated (\(X_i \leq \tau\)) → 새 시간 \(R_i \geq 0\).
- 원래 entry 시점 \(T_i\) → 새 시간에서의 entry \(L_i^* = \tau - T_i\).
- 표본 조건 \(X_i \leq \tau - T_i\) (사건이 추적 종료 전) → \(R_i \geq T_i\) → \(L_i^* \leq R_i\).
→ 새 시간 데이터는 left-truncated + right-censored = 0 (모든 사건 관측됨).
§ 4.6 의 Y_i 재정의 그대로 적용:
\[ Y_i = \#\{j : L_j^* < R_i \leq R_j\} = \#\{j : T_j > X_i, X_j \leq \tau - X_i\} \]
(원래 시간에서: induction time 이 \(X_i\) 이상이고 infection 시점이 \(\tau - X_i\) 이하인 사람 수).
KM 적용 → \(P(R > t \mid R \geq 0)\) 추정 → 역변환으로 \(P(X < \tau - t \mid X \leq \tau)\).
3.3 Klein Example 5.3 — AIDS Induction Time
배경: HIV-contaminated blood transfusion 으로 인한 AIDS. Infection time \(T_i\) 와 induction time (HIV → AIDS 발현) \(X_i\) 의 추정.
- Sampling: 1986-06-30 까지 AIDS 발현한 환자만 (right truncation 의 정전).
- \(\tau = 8\) years (1978-04 부터 1986-06 까지).
Klein Table 5.5 의 손풀이:
- \(X_i = 1.0\) (induction 1 년) 시점:
- \(R_i = 8 - 1 = 7\).
- \(Y_i\) = “induction time > 1 인 사람과 infection time > 7 인 사람을 제외” = \(37 - 19 - 1 = 17\).
- \(\widehat{P}(X < 1 \mid X \leq 8) = 0.1579\) (즉 1 년 이내 induction 확률 16%).
- \(X_i = 5.5\) (induction 5.5 년):
- \(\widehat{P}(X < 5.5 \mid X \leq 8) = 0.6667\) (즉 5.5 년 이내 67%).
임상 함의: HIV 감염 후 AIDS 발현까지 평균 약 5 년 (children). Adults 는 약 8 년.
이 결과가 1980 년대 중반 AIDS 잠복기 추정의 historical 근거 — 우측 절단 무시 시 잠복기 과소 추정 (early infectees 만 보임).
→ 우측 절단 보정의 임상적 중요성.
3.4 Practical Note + Theoretical Note
- 분산: Greenwood 공식 (식 4.2.2) 그대로 — 변환된 좌절단 데이터에 적용.
- 두 군 비교: Lagakos et al. (1988) 의 검정.
- 회귀: Gross-Huber-Carol (1992) 의 우측 절단 회귀 모형.
- 점근: Keiding-Gill (1990) 의 counting process 점근 (cumulative backward hazard).
→ § 4.6 의 좌절단 도구가 그대로 일반화. Time reversal trick 의 우아함.
4 § 5.4 — Cohort Life Table
4.1 Grouped Data 의 본질
사건 시점이 정확히 알려지지 않고, 미리 정해진 구간 \((a_{j-1}, a_j]\) (\(j = 1, \ldots, k+1\)) 내에서만 알려진 grouped data.
구간 정의:
- \(a_0 = 0\), \(a_{k+1} = \infty\).
- 첫 구간: \((a_0, a_1]\).
- 마지막 구간: \((a_k, \infty)\) — 점추정 안 됨.
응용:
- 인구통계 (sex·연령대별 사망률).
- 임상시험의 정기 검진 (3 개월·6 개월 등).
- 보험 actuarial table.
- 동물·식물 cohort study.
4.2 11 Column Life Table 구조
| 열 | 기호 | 의미 |
|---|---|---|
| 1 | \(I_j = (a_{j-1}, a_j]\) | 구간 |
| 2 | \(Y'_j\) | 구간 시작 시 추적 중인 사람 수 |
| 3 | \(W_j\) | 구간 내 censoring (loss + withdrawal) |
| 4 | \(Y_j = Y'_j - W_j/2\) | 위험집합 (균등 분포 가정) |
| 5 | \(d_j\) | 구간 내 사건 수 |
| 6 | \(\widehat{S}(a_{j-1})\) | 구간 시작 시 생존확률 |
| 7 | \(\widehat{f}(a_{mj})\) | 구간 중심에서의 density |
| 8 | \(\widehat{h}(a_{mj})\) | 구간 중심에서의 hazard |
| 9 | \(\text{SE}[\widehat{S}(a_{j-1})]\) | Greenwood SE |
| 10 | \(\text{SE}[\widehat{f}(a_{mj})]\) | density SE |
| 11 | \(\text{SE}[\widehat{h}(a_{mj})]\) | hazard SE |
여기서 \(a_{mj} = (a_{j-1} + a_j)/2\) 는 구간 중심.
4.3 핵심 식 5 가지
식 5.4.1 — KM 의 grouped 형태:
\[ \widehat{S}(a_j) = \widehat{S}(a_{j-1}) \cdot (1 - d_j/Y_j) = \prod_{i=1}^j (1 - d_i/Y_i) \]
식 5.4.2 — Density:
\[ \widehat{f}(a_{mj}) = \frac{\widehat{S}(a_{j-1}) - \widehat{S}(a_j)}{a_j - a_{j-1}} \]
식 5.4.3·4 — Hazard 두 형태:
\[ \widehat{h}(a_{mj}) = \frac{2 \widehat{f}(a_{mj})}{\widehat{S}(a_{j-1}) + \widehat{S}(a_j)} = \frac{d_j}{(a_j - a_{j-1})(Y_j - d_j/2)} \]
식 5.4.5 — Greenwood SE for \(\widehat{S}\):
\[ \text{SE}[\widehat{S}(a_{j-1})] = \widehat{S}(a_{j-1}) \sqrt{\sum_{i=1}^{j-1} \frac{d_i}{Y_i (Y_i - d_i)}} \]
→ § 4.2 의 식 4.2.2 와 완전히 동일 (KM 의 grouped 일반화).
식 5.4.8 — Median linear interpolation:
\[ \widehat{x}_{0.5} = a_{j-1} + \frac{[\widehat{S}(a_{j-1}) - 0.5](a_j - a_{j-1})}{\widehat{S}(a_{j-1}) - \widehat{S}(a_j)} \]
(정확히 0.5 가 되는 시점을 두 구간 끝점 사이의 선형 보간으로 추정).
4.4 핵심 직관 — Y_j = Y’_j - W_j/2 의 의미
위험집합 \(Y_j\) = 구간 내에서 “사건 발생 가능했던 사람 수” 의 평균.
- \(Y'_j\) 명이 구간 시작에 진입.
- \(W_j\) 명이 구간 내에서 censoring.
- 가정: censoring 시점이 구간 내 균등 분포.
→ censoring 의 “평균 노출 기간” = 구간 길이의 절반. 따라서 효과적 위험집합:
\[ Y_j = Y'_j - W_j/2 \]
(전체 진입자에서 censoring 의 절반을 뺌).
→ 이 단순한 가정으로 KM 식을 grouped 데이터에 적용. § 4.6 의 좌절단 \(Y_i\) 재정의처럼 위험집합 정의의 변경 만으로 framework 확장.
4.5 Klein Example 5.4 — NLSY Weaning Data
| 구간 (주) | \(Y'_j\) | \(W_j\) | \(Y_j\) | \(d_j\) | \(\widehat{S}\) | \(\widehat{f}\) | \(\widehat{h}\) |
|---|---|---|---|---|---|---|---|
| 0-2 | 927 | 2 | 926 | 77 | 1.000 | 0.0416 | 0.0434 |
| 2-3 | 848 | 3 | 846.5 | 71 | 0.917 | 0.0769 | 0.0875 |
| 3-5 | 774 | 6 | 771 | 119 | 0.840 | 0.0648 | 0.0836 |
| 5-7 | 649 | 9 | 644.5 | 75 | 0.710 | 0.0413 | 0.0618 |
| 7-11 | 565 | 7 | 561.5 | 109 | 0.628 | 0.0305 | 0.0537 |
| 11-17 | 449 | 5 | 446.5 | 148 | 0.506 | 0.0279 | 0.0662 |
| 17-25 | 296 | 3 | 294.5 | 107 | 0.338 | 0.0154 | 0.0555 |
| 25-37 | 186 | 0 | 186 | 74 | 0.215 | 0.0071 | 0.0414 |
| 37-53 | 112 | 0 | 112 | 85 | 0.130 | 0.0061 | 0.0764 |
| 53- | 27 | 0 | 27 | 27 | 0.031 | — | — |
Hazard 형태 (Klein Figure 5.3):
- 0~5 주: 높음 (모유 수유 중단 많음).
- 5~37 주: 안정 (continuance plateau).
- 37 주+: 다시 상승 (자연 weaning).
→ bathtub-style hazard — 처음 어려움 후 안정, 후반 자연 종료.
Median weaning time (식 5.4.8):
\(\widehat{S}(11) = 0.5058\), \(\widehat{S}(17) = 0.3381\). 0.5 가 11~17 주 사이.
\[ \widehat{x}_{0.5} = 11 + \frac{(0.5058 - 0.5)(17 - 11)}{0.5058 - 0.3381} = 11 + \frac{0.0058 \cdot 6}{0.1677} = 11.21 \text{ 주} \]
(SE 0.568 주). 즉 절반의 산모가 11.2 주에 모유 수유 종료.
Median residual at 25 weeks (식 5.4.9): 15.40 주 (SE 1.294).
4.6 Practical Notes 의 핵심 가정
Cohort life table 의 모든 결과는 다음에 의존:
- Independent censoring: censoring 시점이 사건 시점과 독립 (§ 4.2 와 동일).
- Uniform distribution within interval: censoring 과 사건이 구간 내 균등 분포 → \(Y_j = Y'_j - W_j/2\) 의 정당성.
- Constant hazard within interval: 구간 내 hazard 상수 → 식 5.4.3·4 의 도출.
가정 위반 시:
- 가정 1 위반 (informative censoring): KM 처럼 추정량이 다른 함수 추정.
- 가정 2 위반 (early/late skewed censoring): \(Y_j\) 가 부정확.
- 가정 3 위반 (구간 내 hazard 변동): hazard 추정의 평활 정도 부족 — 더 작은 구간 권장.
→ 구간 선택이 결과에 큰 영향. infant mortality 처럼 hazard 가 빠르게 변하는 구간은 짧게, 노년 mortality 처럼 안정 구간은 길게.
4.7 Sacher 1956 의 Hazard 대안
식 5.4.3 외에 또 다른 hazard 추정:
\[ \widehat{h}(a_{mj}) = \frac{-\ln \widehat{p}_j}{a_j - a_{j-1}} \]
(생존확률 변화의 log 기반).
Gehan-Siddiqui (1973): 식 5.4.3 보다 약간 더 편향. → 식 5.4.3 표준.
4.8 Thompson 1977 — Life Table = lim KM
Thompson (1977):
“구간 길이가 모두 0 으로 수렴하면, life table 의 \(\widehat{S}(a_j)\) 가 KM 의 \(\widehat{S}(t)\) 로 수렴.”
→ Cohort life table 은 KM 의 grouped 일반화. 두 추정량은 본질적으로 같은 framework.
이 결과의 의의:
- 구간이 충분히 작으면 life table = KM 이므로 grouped 데이터로 정확한 추정 가능.
- 구간이 크면 평활 효과 (KM 의 잡음 감소) 가 있지만 정밀도 손실.
- Trade-off: 구간 크기 vs 평활도.
실무 권장: hazard 가 빠르게 변하는 구간 짧게, 안정 구간 길게. 일반적 가이드라인은 frequency histogram 의 bin 선택과 유사.
5 § 5.5 — Exercises (10 문제)
Ch.5 의 10 exercises:
| 문제 | 주제 |
|---|---|
| 5.1 | Pure left censoring + time reversal (gestation 데이터) |
| 5.2 | Double censoring + Turnbull 1974 (radiation deterioration) |
| 5.3 | Double censoring + Turnbull 1974 (alternative) |
| 5.4 | Right truncation + AIDS Lagakos 데이터 |
| 5.5 | Right truncation + alternative dataset |
| 5.6 | Cohort life table + Greenwood SE (mortality) |
| 5.7 | Cohort life table + median + median residual |
| 5.8 | Cohort life table + hazard 형태 진단 |
| 5.9 | Mixed (interval + right censored) |
| 5.10 | Time reversal + custom dataset |
→ 각 문제는 § 5.2~5.4 의 도구를 다양한 데이터에 적용. 다음 deep-dive 편에서 풀이.
6 응용 분야
| 분야 | Sampling Scheme | 도구 |
|---|---|---|
| 청소년 행동 조사 | Left censoring (이미 시작) | Time reversal + KM |
| 유방암 부작용 | Interval censoring (정기 검진) | Turnbull 1976 NPMLE |
| 감염병 잠복기 (HIV) | Right truncation (retrospective) | Time reversal → 좌절단 |
| 인구통계 (life table) | Grouped + censoring | Cohort life table (식 5.4.1) |
| 보험 actuarial | Grouped data | Life table |
| 가축 cohort study | Grouped + lost to follow-up | Life table |
| 동물 실험 (DMBA) | Interval censoring (검사 일자) | Turnbull NPMLE |
7 코드 예시
7.1 Step 1 — Time Reversal 직접 구현 (Left Censoring)
import numpy as np
from lifelines import KaplanMeierFitter
def left_censored_km(times, lower_bounds, tau=None):
"""
Left censoring: 사건이 lower_bounds 이전에 발생했음만 알 때.
times: 정확히 관측된 사건 시점 (else NaN).
lower_bounds: left censored 의 시점 (사건이 이 이전에 발생했음).
tau: 시간 reversal 의 기준점 (default: max + 1).
"""
if tau is None:
tau = np.nanmax(np.concatenate([times, lower_bounds])) + 1
# 모든 시간을 reversal: tau - 원래시간
# 정확한 사건 → reversed 시간에서도 정확히 사건
# left censored → reversed 시간에서 right censored
new_times = np.where(np.isnan(times), tau - lower_bounds, tau - times)
new_events = np.where(np.isnan(times), 0, 1) # left → right cens
kmf = KaplanMeierFitter().fit(new_times, new_events,
label="reversed")
# 역변환: 원래 시간 t 의 P(X < t) = 1 - S*(tau - t)
return kmf, tau7.2 Step 2 — Turnbull 1976 Interval Censoring
library(icenReg)
library(KMsurv)
# Klein Example 5.2 — breast cancer cosmetic deterioration
data(bcdeter)
# Turnbull NPMLE
fit <- ic_np(cbind(left, right) ~ treat, data = bcdeter)
plot(fit)
# 두 군 비교
fit_only_rad <- ic_np(cbind(left, right) ~ 1,
data = subset(bcdeter, treat == "Radiation"))
fit_rad_chemo <- ic_np(cbind(left, right) ~ 1,
data = subset(bcdeter, treat == "Radiation+Chemo"))7.3 Step 3 — Cohort Life Table (식 5.4.1~5.4.5)
import numpy as np
import pandas as pd
def cohort_life_table(intervals, Y_prime, W, d):
"""
intervals: list of (a_{j-1}, a_j) tuples
Y_prime: 구간 시작 진입자
W: 구간 내 censoring
d: 구간 내 사건 수
"""
Y = Y_prime - W / 2 # 식 5.4.4
q = d / Y # 조건부 사건 확률
p = 1 - q # 조건부 생존
S = np.cumprod(np.concatenate([[1], p]))[:-1] # 식 5.4.1
S_next = S * p
# 구간별 정량
table = []
for j, (a0, a1) in enumerate(intervals):
if a1 == np.inf:
f = h = se_S = se_f = se_h = np.nan
else:
f = (S[j] - S_next[j]) / (a1 - a0) # 식 5.4.2
h = 2 * f / (S[j] + S_next[j]) # 식 5.4.3
cum = sum(d[:j+1] / (Y[:j+1] * (Y[:j+1] - d[:j+1])))
se_S = S[j] * np.sqrt(cum) if j > 0 else 0 # 식 5.4.5
se_h = h * np.sqrt((1 - (h * (a1 - a0) / 2) ** 2) / (Y[j] * q[j])) # 식 5.4.7
table.append({"interval": f"{a0}-{a1}",
"Y": Y[j], "d": d[j],
"S": S[j], "f": f, "h": h,
"SE_S": se_S, "SE_h": se_h})
return pd.DataFrame(table)
# Klein Example 5.4 — NLSY weaning
intervals = [(0,2), (2,3), (3,5), (5,7), (7,11), (11,17),
(17,25), (25,37), (37,53), (53, np.inf)]
Y_prime = np.array([927, 848, 774, 649, 565, 449, 296, 186, 112, 27])
W = np.array([2, 3, 6, 9, 7, 5, 3, 0, 0, 0])
d = np.array([77, 71, 119, 75, 109, 148, 107, 74, 85, 27])
print(cohort_life_table(intervals, Y_prime, W, d))7.4 Step 4 — R KMsurv 패키지 활용
library(KMsurv)
# Klein Example 5.4 NLSY weaning
ltab.data <- data.frame(
start = c(0, 2, 3, 5, 7, 11, 17, 25, 37, 53),
end = c(2, 3, 5, 7, 11, 17, 25, 37, 53, NA),
enter = c(927, 848, 774, 649, 565, 449, 296, 186, 112, 27),
exit = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), # withdrawn
lost = c(2, 3, 6, 9, 7, 5, 3, 0, 0, 0), # lost to follow-up
events = c(77, 71, 119, 75, 109, 148, 107, 74, 85, 27)
)
life_table <- lifetab(tis = ltab.data$start,
ninit = 927,
nlost = ltab.data$lost,
nevent = ltab.data$events)
print(life_table)8 핵심 takeaway
Time-reversal trick 의 universality — Left censoring (§ 5.2) 과 right truncation (§ 5.3) 모두 시간축 뒤집기로 Ch.4 framework 으로 환원. 두 sampling scheme 의 구조적 대칭성.
Turnbull self-consistency 는 EM 의 비모수 일반화 — Double censoring 의 1974 알고리즘과 interval censoring 의 1976 NPMLE 가 모두 § 4.2 self-consistency (Efron 1967) 의 양방향 / 다중구간 일반화. EM 알고리즘의 깊은 통일성.
Cohort life table = grouped KM — Thompson 1977: 구간 길이 → 0 면 life table = KM. 두 추정량이 본질적으로 같은 framework, 단지 관측 단위가 다름.
위험집합의 정의가 framework 의 핵심 — Ch.4 우측 censoring: \(Y_i = \#\{T_j \geq t_i\}\). Ch.4 좌절단: \(Y_i = \#\{L_j < t_i \leq T_j\}\). Ch.5 life table: \(Y_j = Y'_j - W_j/2\). 데이터 구조가 바뀌어도 위험집합 재정의로 framework 일반화.
임상적 함의 — 우측 절단 보정의 historical impact — 1980 년대 AIDS 잠복기 추정 (Lagakos 1988) 이 우측 절단 무시 시 5 년+ 잠복기 과소 추정. 통계적 도구가 공중보건 의사결정에 직접 영향. 적절한 sampling scheme 처리의 중요성.
9 관련 주제
선행 지식
- Ch.4 시리즈 — 우측 censoring + 좌절단의 비모수 추정
- § 4.2 — KM·NA + self-consistency Efron 1967
- § 4.6 — Left-Truncation 의 Y_i 재정의
- § 3.3~3.4 — Censoring·Truncation 정밀 정의
- § 1.17~1.18 — Marijuana doubly censored · Breast Cancer interval censored (Examples 5.1·5.2 출처)
- § 1.19 — AIDS Right Truncation (Example 5.3 출처)
- § 1.14 — Weaning (Example 5.4 출처)
후속 주제
- Ch.5 deep-dive 편 (§ 5.5 exercises 풀이 + 더 깊은 Turnbull 알고리즘)
- Ch.6 — Kernel Hazard Smoothing · Excess Mortality · Bayesian NPMLE
- Ch.7 — Log-rank · Wilcoxon · Tarone-Ware
- Ch.9 — Cox PH with Left Truncation (Ch.5 의 좌절단 일반화)
관련 개념
- EM 알고리즘 (Dempster-Laird-Rubin 1977) — Turnbull self-consistency 의 일반론
- 인구통계 life table (insurance · demography) — 식 5.4.1 의 actuarial 버전
- AIDS 잠복기 추정의 historical case (Brookmeyer-Liao 1990, Bacchetti 1990)