1 들어가며 — Ch.5 두 번째 deep-dive
| 편 | 주제 |
|---|---|
| Ch.5 Overview | 5 sampling scheme 조망 |
| § 5.1~5.2 | Left·Double·Interval Censoring + Turnbull |
| § 5.3~5.4 (본 편) | Right Truncation + Cohort Life Table |
| § 5.5 (예정) | 10 Exercises 풀이 |
“§ 5.3 의 right truncation 은 § 4.6 의 좌절단의 mirror image — 시간축 뒤집기 (\(R_i = \tau - X_i\)) 만으로 좌절단 framework 으로 환원되어 동일 KM 식 적용. Lagakos 1988 AIDS 잠복기 추정의 historical impact. § 5.4 의 cohort life table 은 grouped 데이터의 KM 일반화 — Thompson 1977 의 lim 구간 → 0 = KM. 11 column 표와 식 5.4.1~5.4.10 으로 모든 비모수 quantity (S, f, h, median, mdrl) 추정. 위험집합 보정 \(Y_j = Y'_j - W_j/2\) 가 균등 분포 가정의 결과.”
2 § 5.3 — Right-Truncated Data
2.1 Right Truncation 의 본질
표본에 사건이 시점 \(\tau\) 이전에 발생한 개체만 포함:
- \(T_i\): chronological 사건 발생 시점 (예: HIV 감염일).
- \(X_i\): 사건의 duration (예: HIV → AIDS 잠복기).
- 표본 조건: \(T_i + X_i \leq \tau\) — 즉 시점 \(\tau\) 까지 disease 발현한 사람만.
→ 시점 \(\tau\) 이후에 발현할 사람은 표본에서 제외. Length-biased: 빠른 발현자만 over-sample.
| 측면 | Left Truncation (§ 4.6) | Right Truncation (§ 5.3) |
|---|---|---|
| 표본 조건 | \(X_i \geq L_i\) (entry 이후 사건) | \(X_i \leq \tau - T_i\) (시점 \(\tau\) 까지 사건) |
| 누락 | Entry 이전 사건자 | 시점 \(\tau\) 이후 사건자 |
| 정전 예제 | Channing house (60 세 이상 입소) | AIDS retrospective (1986-06-30 까지 발현) |
| 추정 가능 | \(S(t) / S(L_{\min})\) | \(P(X < \tau - t \mid X \leq \tau)\) |
→ 시간축의 좌우 대칭. Right trunc 는 left trunc 의 거울상이라 같은 도구를 미러링하여 사용.
AIDS 1980 년대 역학:
- 1986 년 시점에 발현한 환자만 관측 (즉 우측 절단).
- “발현까지 걸린 시간” 만 보면 → 빠르게 발현한 사람만 표본에 있음.
- 절단 무시 시 → 잠복기 평균 추정이 매우 짧음 (예: 2~3 년).
- 진실: HIV 잠복기는 평균 8~10 년 (children 5 년, adults 8 년).
→ 1980 년대 중반 AIDS 잠복기 over-estimation 의 historical case. Lagakos (1988) 의 우측 절단 보정이 정확한 잠복기 추정의 출발점.
2.2 Time Reversal Trick — § 5.2.1 의 두 번째 응용
§ 5.2.1 의 left censoring → right censoring 변환과 같은 전략. 이번에는 right truncation → left truncation:
변환: 큰 시점 \(\tau\) 잡고 새 시간 \(R_i = \tau - X_i\).
- 원래 우측 절단 (\(X_i \leq \tau\)) → \(R_i \geq 0\).
- 원래 entry 시점 \(T_i\) → 새 시간에서의 left truncation 점 \(L_i^* = \tau - T_i\).
새 시간에서 표본 조건: \(T_i + X_i \leq \tau \Leftrightarrow X_i \leq \tau - T_i \Leftrightarrow R_i = \tau - X_i \geq T_i \Leftrightarrow R_i \geq L_i^*\).
→ 새 시간 데이터는 left-truncated (entry 이후 사건만 표본). Right censoring 은 없음 (모든 사건 관측).
§ 4.6 의 위험집합 재정의 그대로 적용:
\[ Y_i = \#\{j : L_j^* < R_i \leq R_j\} \]
원래 시간으로 풀면:
\[ Y_i = \#\{j : T_j > X_i, \, X_j \leq \tau - X_i\} \]
해석:
- \(T_j > X_i\): infection time 이 \(X_i\) 보다 큼 (후에 감염).
- \(X_j \leq \tau - X_i\): 그러나 induction 이 \(\tau - X_i\) 안에 — 즉 표본에 들어옴.
→ “induction time 이 \(X_i\) 이상이면서 동시에 \(\tau\) 까지 발현한 사람” 의 수.
KM 적용 결과는 좌절단 데이터의 conditional survival:
\[ \widehat{P}(R > t \mid R \geq 0) \]
원래 시간으로 역변환:
\[ \widehat{P}(\tau - X > t \mid \tau - X \geq 0) = \widehat{P}(X < \tau - t \mid X \leq \tau) \]
→ “표본에 포함된다는 조건 (\(X \leq \tau\)) 하의 induction time 분포”.
무조건 \(P(X < t)\) 를 추정 못 함 — 표본에 \(\tau\) 이후 발현자가 없어서 정보 부재. 이는 좌절단의 conditional vs 무조건 차이와 같은 구조.
2.3 Klein Example 5.3 — Lagakos 1988 AIDS
Lagakos (1988) HIV-contaminated blood transfusion AIDS:
- 258 adults + 37 children.
- \(T_i\) = infection 시점 (1978-04-01 기준 quarter year).
- \(X_i\) = induction time (HIV → AIDS).
- \(\tau = 8\) years (1986-06-30 까지 보고된 환자만).
- Right truncated.
본 풀이: 37 children 중심.
\(X_i = 1.0\) (induction 1 년 걸림) 의 경우:
- \(R_i = 8 - 1 = 7\).
- \(Y_i = \#\{j : X_j > 1.0\} - \#\{j : T_j > 7\}\)
- \(X_j > 1.0\): induction 이 1 년 초과인 사람 = 37 - 18 = 19.
- \(T_j > 7\): infection 이 7 년 초과 (1985-04 이후 감염) 인 사람 = 1.
- 둘 다 만족 안 함 (즉 induction \(\leq 1\) 또는 infection \(\leq 7\)): 17 + 18 + 1 = 36? 잠깐, Klein 손계산 로직:
- 좌절단 framework 에서 \(Y_i\) = “\(R_i\) 직전 risk 인 사람 수”.
- 원래 시간 표현: \(Y_i = 37 - (\text{induction} > X_i \text{ 인 수}) - (\text{infection} > \tau - X_i \text{ 인 수}) = 37 - 19 - 1 = 17\).
- \(d_i = 5\): \(X_i = 1.0\) 인 사건 수 (Klein Table 5.5 행).
- \(\widehat{P}(X < 1 \mid X \leq 8)\):
- 좌절단 KM 곱 누적. 이전 시점 \(\widehat{P}(X < 0.75 \mid \cdot) = 0.0850\).
- $(X < 1 ) = 0.0850 + (1 - 0.0850) /17 = 0.0850 + 0.2691 = $ 약 0.158?
- 정확한 식: 좌절단 KM 의 누적 hazard 형식.
Klein 결과: \(\widehat{P}(X < 1 \mid X \leq 8) = 0.1579\) → 약 16% 가 1 년 이내 induction.
| \(X_i\) (yr) | \(Y_i\) | \(d_i\) | \(\widehat{P}(X < x \mid X \leq 8)\) |
|---|---|---|---|
| 0.25 | 2 | 2 | 0.0000 |
| 0.50 | 7 | 5 | 0.0243 |
| 0.75 | 13 | 6 | 0.0850 |
| 1.00 | 17 | 5 | 0.1579 |
| 1.25 | 18 | 2 | 0.2237 |
| 1.50 | 19 | 3 | 0.2516 |
| 1.75 | 21 | 3 | 0.2988 |
| 2.25 | 19 | 2 | 0.3486 |
| 2.50 | 20 | 2 | 0.3896 |
| 2.75 | 18 | 1 | 0.4329 |
| 3.00 | 17 | 2 | 0.4584 |
| 3.25 | 14 | 1 | 0.5195 |
| 3.50 | 13 | 1 | 0.5594 |
| 4.25 | 11 | 1 | 0.6061 |
| 5.50 | 3 | 1 | 0.6667 |
관찰:
- 3.25 yr 시점에 \(\widehat{P} = 0.52\) → median induction time ≈ 3.25 년 (children).
- 5.5 yr 시점에 \(\widehat{P} = 0.67\) → 67% 가 5.5 년 이내 induction.
- \(Y_i\) 가 후반부에 작아짐 (3 명, 1 명) — 정보 적음.
Adults (258 명): 전체적으로 children 보다 길게 — 8 년 시점 약 50% 가 induction (adults 의 평균 잠복기 약 8 년).
Klein Figure 5.2 의 두 군 비교: children vs adults 의 conditional distribution.
→ children 이 adults 보다 빠른 induction — 면역 시스템 미성숙.
2.4 Practical & Theoretical Notes
- 분산: Greenwood 공식 (식 4.2.2) 그대로 — 변환된 좌절단 데이터에 적용.
- 두 군 비교: Lagakos et al. (1988) 의 검정.
- 회귀: Gross-Huber-Carol (1992) 의 우측 절단 회귀 모형.
→ § 4.6 의 좌절단 도구 모두 그대로 일반화.
Right truncation 의 점근 성질은 Keiding-Gill (1990) 의 counting process 도출:
- 시간 reversal 후 좌절단 framework 의 martingale CLT (§ 3.6) 직접 적용.
- “Cumulative backward hazard” 의 추정으로 자연스러운 해석.
→ § 4.6 의 점근과 동일한 framework. 모든 비모수 도구 (CI · band · RMST) 가 그대로 적용 가능.
3 § 5.4 — Cohort Life Table
3.1 Grouped Data 의 본질
사건 시점이 정확히 알려지지 않고, 미리 정해진 구간 \((a_{j-1}, a_j]\) (\(j = 1, \ldots, k+1\)) 내에서만 알려진 데이터.
구간 정의:
- \(a_0 = 0\), \(a_{k+1} = \infty\).
- 첫 구간: \((a_0, a_1]\).
- 마지막 구간: \((a_k, \infty)\) — 점추정 안 됨.
Cohort vs Current Life Table:
- Cohort (Klein § 5.4): 동일 시작 시점의 그룹을 추적 (longitudinal).
- Current (Chiang 1984): cross-sectional sampling, 다양한 age 의 사건/위험 카운트 (인구통계).
본 deep-dive 는 cohort 만 다룸.
| 분야 | 사건 | 구간 |
|---|---|---|
| 인구통계 | 사망 | 5~10 년 age group |
| 보험 actuarial | 사망 / claim | 1 년 |
| 임상시험 정기 검진 | progression | 3~6 개월 |
| 동물 실험 | 종양 발생 | 12 주 |
| 사회과학 | weaning · 결혼 · 첫 직장 | 1~6 개월 |
→ 정기 검진/조사가 있는 어디서나 grouped data 발생. 정확한 시점 대신 구간만 보고됨.
3.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\) 는 구간 중심.
3.3 핵심 식 — 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) \]
KM 식 4.2.1 과 형태 동일. 차이: \(t_i\) 대신 구간 endpoint \(a_j\), \(Y_i\) 대신 보정된 \(Y_j = Y'_j - W_j/2\).
위험집합 \(Y_j\) = 구간 내 “사건 발생 가능했던 사람 수” 의 평균.
- \(Y'_j\) 명이 구간 시작에 진입.
- \(W_j\) 명이 구간 내에서 censoring.
- 가정: censoring 시점이 구간 내 균등 분포.
→ Censoring 의 평균 노출 기간 = 구간 길이의 절반. 효과적 위험집합:
\[ Y_j = Y'_j - W_j/2 \]
(전체 진입자에서 censoring 의 절반을 뺌).
왜 절반: 구간 시작에 censoring 한 사람은 0% 노출, 구간 끝에 censoring 한 사람은 100% 노출. 균등 분포면 평균 50% 노출 → \(W_j\) 의 절반만 위험집합에 기여.
→ 이 단순한 가정으로 KM 식을 grouped 데이터에 적용. § 4.6 의 좌절단 \(Y_i\) 재정의처럼 위험집합 정의 변경 만으로 framework 확장.
3.4 Density 와 Hazard 추정
\[ \widehat{f}(a_{mj}) = \frac{\widehat{S}(a_{j-1}) - \widehat{S}(a_j)}{a_j - a_{j-1}} \]
→ “구간 시작 시 생존자 중 사건 발생 비율” 을 구간 길이로 나눔. 단위 시간당 사건 발생 확률.
Hazard 식 1 (식 5.4.3) — density / 중간 survival:
\[ \widehat{h}(a_{mj}) = \frac{\widehat{f}(a_{mj})}{\widehat{S}(a_{mj})} = \frac{2 \widehat{f}(a_{mj})}{\widehat{S}(a_{j-1}) + \widehat{S}(a_j)} \]
(중심 \(a_{mj}\) 의 \(\widehat{S}\) 는 두 끝점의 선형 보간 = 평균).
Hazard 식 2 (식 5.4.4) — Person-time 형식:
\[ \widehat{h}(a_{mj}) = \frac{d_j}{(a_j - a_{j-1})(Y_j - d_j/2)} \]
(분모: 구간 길이 × 사건 발생 가능 person-time. 사건자는 구간 절반 살고 사망 가정 → \(-d_j/2\)).
두 식이 수학적으로 동일하다는 사실은 hazard 의 본질 을 보여준다:
- 식 5.4.3: “비율의 비율” 표현 (density / survival).
- 식 5.4.4: “사건 / person-time” 표현 (epidemiology 표준).
두 표현 모두 “단위 시간 + 단위 위험집합 당 사건 수” 라는 hazard 의 정의에 부합. 서로 다른 관점에서 같은 양 도출.
식 5.4.4 의 직관적 표현: 100 person-year 당 사건 5 건 → hazard rate 0.05 / year. 역학에서 가장 직관적.
3.5 Greenwood SE = KM SE 의 grouped 형태
\[ \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.7 의 hazard SE:
\[ \text{SE}[\widehat{h}(a_{mj})] = \widehat{h}(a_{mj}) \sqrt{\frac{1 - [\widehat{h}(a_{mj})(a_j - a_{j-1})/2]^2}{Y_j q_j}} \]
여기서 \(q_j = d_j / Y_j\) 는 구간 사건 확률.
식 5.4.5 가 식 4.2.2 와 동일하다는 사실은 cohort life table 이 본질적으로 KM 의 변형임을 보여준다. 연속 시간 vs 이산 grid 의 차이만 있을 뿐.
→ Thompson (1977) 의 limit theorem 을 미리 시사: 구간 길이 → 0 면 두 framework 일치.
3.6 Median 과 Median Residual Lifetime
\(\widehat{S}(a_{j-1}) \geq 0.5\) 이고 \(\widehat{S}(a_j) \leq 0.5\) 인 구간을 찾고:
\[ \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 가 발생할 시점을 두 구간 끝점 사이의 선형 보간으로 추정.
KM (정확 시점) 에서 median 은 “곡선이 0.5 에 도달하는 첫 시점”.
Cohort life table 에서는 곡선이 step function 이 아닌 끝점 정보만 있음. 구간 안에서 어떻게 변하는지 가정 필요.
- 가장 단순한 가정: 구간 내 선형 감소 → 식 5.4.8.
- 더 정교: 구간 내 exponential decay (Sacher 1956 의 hazard 형태).
실무에서 식 5.4.8 표준. 연속 시간 KM 의 median 정의와 일관.
시점 \(a_{i-1}\) 에서의 median residual lifetime \(\text{mdrl}(a_{i-1})\): “그 시점까지 산 사람의 절반이 추가로 살 시간”.
\[ \widehat{S}(a_{i-1} + \text{mdrl}) = \widehat{S}(a_{i-1})/2 \]
식 5.4.9 (linear interpolation):
\[ \widehat{\text{mdrl}}(a_{i-1}) = (a_{j-1} - a_{i-1}) + \frac{[\widehat{S}(a_{j-1}) - \widehat{S}(a_{i-1})/2](a_j - a_{j-1})}{\widehat{S}(a_{j-1}) - \widehat{S}(a_j)} \]
분산 식 5.4.10:
\[ \widehat{V}[\widehat{\text{mdrl}}(a_{i-1})] = \frac{[\widehat{S}(a_{i-1})]^2}{4 Y_i [\widehat{f}(a_{mj})]^2} \]
3.7 Klein Example 5.4 — NLSY Weaning 손풀이
NLSY (National Longitudinal Survey of Youth) 의 927 명 first-born child 에 대한 모유 수유 기간 (weaning time).
- 1978 년 이후 출생자만 (recall bias 회피).
- 임신 20~45 주.
- 모두 모유 수유 시작 (그렇지 않은 산모 제외).
- Event = 모유 수유 종료 (weaning).
- Censoring = 인터뷰 시점까지 모유 수유 지속.
10 구간 (early weaning 짧게, 나중 길게).
| 구간 (주) | \(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 | — | — |
손계산 검증 — 첫 구간 [0, 2):
- \(Y_1 = Y'_1 - W_1/2 = 927 - 2/2 = 926\).
- \(q_1 = d_1/Y_1 = 77/926 = 0.0832\).
- \(p_1 = 1 - q_1 = 0.9168\).
- \(\widehat{S}(2) = 1.000 \cdot 0.9168 = 0.9168\) → 다음 행의 \(\widehat{S}\).
- \(\widehat{f}(1) = (1.000 - 0.9168)/2 = 0.0416\) ✓.
- \(\widehat{h}(1) = 2 \cdot 0.0416 / (1.000 + 0.9168) = 0.0832/1.9168 = 0.0434\) ✓.
→ 11 column 표의 모든 값이 식 5.4.1~5.4.4 의 직접 적용 결과.
| 구간 | \(\widehat{h}\) | 패턴 |
|---|---|---|
| 0-2 | 0.0434 | 초기 어려움 (시작 시 적응) |
| 2-3 | 0.0875 | 정점 (모유 수유 정착 실패 산모) |
| 3-5 | 0.0836 | 여전히 높음 |
| 5-7 | 0.0618 | 안정 시작 |
| 7-11 | 0.0537 | 가장 안정 |
| 11-17 | 0.0662 | 약간 상승 |
| 17-25 | 0.0555 | 안정 |
| 25-37 | 0.0414 | 낮음 |
| 37-53 | 0.0764 | 재상승 (자연 weaning) |
Bathtub 패턴:
- 0~5 주: 높음 — 모유 수유 시작 어려움.
- 5~37 주: 안정 plateau.
- 37 주+: 다시 상승 — 자연 weaning 시기.
→ 인구학 사망률의 bathtub (infant mortality + senescence) 와 유사한 패턴이 weaning 에서도 나타남.
\(\widehat{S}(11) = 0.5058 \geq 0.5\), \(\widehat{S}(17) = 0.3381 < 0.5\) → 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 + 0.207 = 11.21 \text{ 주} \]
(SE 0.568 주). → 모유 수유 시작한 산모 절반이 11.2 주에 종료.
Median Residual at 25 주 (식 5.4.9): 15.40 주 (SE 1.294 주).
해석: 25 주까지 모유 수유 지속한 산모 중 절반은 추가 15.4 주 (즉 약 40 주 = 9 개월) 까지 지속.
→ “초반에 종료하지 않은 산모는 더 오래 지속” — 후반부 conditional 안정성.
3.8 Practical Notes
Cohort life table 의 모든 결과는 다음에 의존:
- Independent censoring: censoring 시점이 사건 시점과 독립.
- Uniform distribution within interval: censoring 과 사건 시점이 구간 내 균등 분포 → \(Y_j = Y'_j - W_j/2\) 의 정당성.
- Constant hazard within interval: 식 5.4.3·4 의 도출.
가정 위반 시:
- 가정 1 위반 (informative censoring): KM 처럼 추정량이 다른 함수 추정.
- 가정 2 위반 (early/late skewed censoring): \(Y_j\) 가 부정확.
- 가정 3 위반 (구간 내 hazard 변동): hazard 추정 평활 부족 → 더 작은 구간 필요.
→ 구간 선택이 결과에 큰 영향. infant mortality 같은 hazard 변동 큰 구간은 짧게, 노년 mortality 같은 안정 구간은 길게.
Lost to follow-up: 추적 끊김 (이주, 미응답 등) — 생존 상태 모름.
Withdrawn alive: 연구 종료일에 살아있음 — 명시적으로 censoring.
가정: 두 종류 모두 censoring 시점 이후 생존이 다른 사람과 동일.
Cutler-Ederer (1958) 의 경고: lost individuals 의 생존이 더 좋을 수도, 같을 수도, 나쁠 수도 있음. 추적 노력 최대화 가 필수.
→ Sensitivity analysis: lost individuals 가 모두 사건 또는 모두 안 일어났다고 가정한 worst-case bounds.
3.9 Theoretical Notes
식 5.4.3 외에 또 다른 hazard 추정:
\[ \widehat{h}(a_{mj}) = \frac{-\ln \widehat{p}_j}{a_j - a_{j-1}} \]
여기서 \(\widehat{p}_j = 1 - d_j/Y_j\).
도출: Constant hazard 가정 하의 exponential survival → \(S(a_j) = S(a_{j-1}) e^{-h \cdot (a_j - a_{j-1})}\). 양변 log → \(\ln \widehat{p}_j = -h (a_j - a_{j-1})\) → 풀면 \(h = -\ln \widehat{p}_j / (a_j - a_{j-1})\).
Gehan-Siddiqui (1973) 의 비교: 식 5.4.3 보다 약간 더 편향. 따라서 식 5.4.3 (또는 5.4.4) 표준.
Thompson (1977):
“구간 길이가 모두 0 으로 수렴하면, life table 의 \(\widehat{S}(a_j)\) 가 KM 의 \(\widehat{S}(t)\) 로 수렴.”
의미:
- Life table 은 KM 의 grouped 일반화 — 두 추정량이 본질적으로 같은 framework.
- 구간이 충분히 작으면 정확한 시점 데이터로 KM 한 결과와 같음.
- 구간이 크면 평활 효과 (KM 의 잡음 감소) 가 있지만 정밀도 손실.
Trade-off: 구간 크기 vs 평활도.
→ “정확한 시점 데이터를 grouped 으로 처리” 와 “정확한 시점으로 KM 처리” 가 점근적으로 동일. Life table 의 정당성의 깊은 근거.
4 응용 분야
| 분야 | Sampling Scheme | 도구 |
|---|---|---|
| 감염병 retrospective | Right truncation | Time reversal + 좌절단 KM |
| HIV/AIDS 잠복기 | Right truncation | Lagakos 1988 |
| Hepatitis seroconversion | Right truncation | Time reversal |
| 인구통계 sex·연령 사망 | Cohort life table | 식 5.4.1 |
| 보험 actuarial | Cohort life table | 식 5.4.4 person-time |
| 임상시험 정기 검진 | Cohort life table | 식 5.4.1 |
| 동물 실험 | Cohort life table | 식 5.4.3 hazard |
| 사회과학 (weaning) | Cohort life table | NLSY 식 |
5 코드 예시
5.1 Step 1 — Right Truncation 직접 처리 (R)
library(KMsurv)
library(survival)
data(aids) # Klein § 1.19 AIDS data
# Lagakos 1988 right truncation:
# T_i = infection time, X_i = induction time, tau = 8 yr
aids$tau <- 8
aids$R <- aids$tau - aids$infect # backward induction time
aids$L_star <- aids$tau - aids$induct # backward truncation
# 좌절단 KM 으로 처리
fit <- survfit(Surv(L_star, R, event = rep(1, nrow(aids))) ~ group,
data = aids, type = "kaplan-meier")
# Group: children vs adults
plot(fit, col = c("blue", "red"),
xlab = "Backward induction time", ylab = "Conditional survival")5.2 Step 2 — Cohort Life Table 직접 구현 (Python)
import numpy as np
import pandas as pd
def cohort_life_table(intervals, Y_prime, W, d):
"""Klein § 5.4 의 11 column life table"""
n_int = len(intervals)
Y = Y_prime - W / 2 # 식 5.4.4
q = d / Y
p = 1 - q
# 식 5.4.1 — KM 의 grouped 형태
S_start = np.zeros(n_int + 1)
S_start[0] = 1.0
for j in range(n_int):
S_start[j + 1] = S_start[j] * p[j]
rows = []
cum_var = 0.0
for j, (a0, a1) in enumerate(intervals):
if np.isinf(a1):
f = h = se_S = se_f = se_h = np.nan
else:
dt = a1 - a0
f = (S_start[j] - S_start[j+1]) / dt # 식 5.4.2
h = 2 * f / (S_start[j] + S_start[j+1]) # 식 5.4.3
# Greenwood SE — 식 5.4.5
cum_var += d[j] / (Y[j] * (Y[j] - d[j])) if Y[j] > d[j] else 0
se_S = S_start[j] * np.sqrt(cum_var) if j > 0 else 0
# Hazard SE — 식 5.4.7
se_h = h * np.sqrt((1 - (h * dt / 2) ** 2) / (Y[j] * q[j]))
rows.append({
"interval": f"{a0}-{a1}",
"Y_prime": Y_prime[j], "W": W[j], "Y": Y[j], "d": d[j],
"S_start": S_start[j], "f": f, "h": h,
"SE_S": se_S, "SE_h": se_h
})
return pd.DataFrame(rows)
# Klein Example 5.4 — NLSY weaning 927 명
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))5.3 Step 3 — Median + Median Residual Lifetime
def median_life_table(intervals, S_start):
"""식 5.4.8 - linear interpolation median"""
for j in range(len(intervals) - 1):
if S_start[j] >= 0.5 and S_start[j+1] < 0.5:
a0, a1 = intervals[j]
return a0 + (S_start[j] - 0.5) * (a1 - a0) / (S_start[j] - S_start[j+1])
return None
def median_residual_life(intervals, S_start, t_start):
"""식 5.4.9 - mdrl at time t_start"""
# find interval containing t_start
i = next(j for j, (a0, a1) in enumerate(intervals) if a0 <= t_start < a1)
target = S_start[i] / 2
for j in range(i, len(intervals) - 1):
if S_start[j] >= target and S_start[j+1] < target:
a0, a1 = intervals[j]
return (a0 - t_start) + (S_start[j] - target) * (a1 - a0) / (S_start[j] - S_start[j+1])
return None
# NLSY 결과
median_w = median_life_table(intervals, S_start)
print(f"Median weaning: {median_w:.2f} weeks") # ≈ 11.21
mdrl_25 = median_residual_life(intervals, S_start, 25)
print(f"MRL at 25 weeks: {mdrl_25:.2f} weeks") # ≈ 15.405.4 Step 4 — R KMsurv 패키지 활용
library(KMsurv)
# Cohort life table
ltab.data <- data.frame(
start = c(0, 2, 3, 5, 7, 11, 17, 25, 37, 53),
enter = c(927, 848, 774, 649, 565, 449, 296, 186, 112, 27),
lost = c(2, 3, 6, 9, 7, 5, 3, 0, 0, 0),
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)6 핵심 takeaway
Right truncation 은 좌절단의 mirror image — Time reversal \(R_i = \tau - X_i\) 로 § 4.6 framework 에 환원. 같은 위험집합 정의 (재해석된 형태) + 동일 KM 식. 시간축의 좌우 대칭성.
HIV/AIDS 잠복기의 historical impact — 1980 년대 우측 절단 무시 시 잠복기 5+ 년 과소 추정. Lagakos 1988 의 보정으로 children 5 년·adults 8 년 정확 추정. 통계적 도구가 공중보건 결정에 직접 영향.
Cohort life table = grouped KM (Thompson 1977) — 구간 길이 → 0 면 life table = KM. 두 추정량이 본질적으로 같은 framework, 단지 관측 단위가 다를 뿐.
\(Y_j = Y'_j - W_j/2\) 의 균등 분포 가정 — Censoring 시점이 구간 내 균등 분포 → 평균 노출 = 구간 절반. 이 단순 가정으로 KM 식을 grouped 데이터에 적용. 핵심: 위험집합 정의가 framework 의 본질.
Hazard 의 두 표현 (식 5.4.3·4) 의 동일성 — “density / survival” vs “events / person-time” — 두 관점이 수학적으로 동일. 역학의 person-time 표현 (식 5.4.4) 이 가장 직관적.
7 관련 주제
선행 지식
- Ch.5 Overview
- § 5.1~5.2 — Left·Double·Interval Censoring · Turnbull
- § 4.6 — Left-Truncation 의 Y_i 재정의
- § 1.19 — AIDS Right Truncation (Example 5.3 출처)
- § 1.14 — Weaning · NLSY (Example 5.4 출처)
후속 주제
- § 5.5 — 10 Exercises 풀이
- Ch.6 — Kernel Hazard Smoothing · Excess Mortality
- Ch.9 — Cox PH with Right Truncation 일반화
- Current life table (Chiang 1984) — cross-sectional sampling
관련 개념
- 1980 년대 AIDS 역학 — Brookmeyer-Liao 1990, Bacchetti 1990 의 잠복기 모형
- 인구통계 (current life table) — actuarial science 표준
- Bathtub hazard — infant mortality + senescence 의 인간 생애 패턴
- Person-year 분석 (식 5.4.4) — 역학의 standard 추정량