Klein § 5.3~5.4 — Right-Truncated Data · Cohort Life Table

§ 5.3 Right Truncation: 표본 = 시점 τ 까지 사건 발생자만 (HIV/AIDS retrospective) · time reversal R_i = τ - X_i 로 좌절단 framework 환원 (§ 4.6 의 두 번째 응용) · Y_i = #{j: T_j > X_i, X_j ≤ τ - X_i} · 추정 대상 P(X < τ - t | X ≤ τ) conditional · Klein Example 5.3 Lagakos 1988 AIDS 37 children + 258 adults induction time · X_i = 1 yr → Ŷ = 17, Ŝ = 0.158 · X_i = 5.5 yr → Ŝ = 0.667 / § 5.4 Cohort Life Table: grouped data 의 KM 일반화 (Thompson 1977 lim → KM) · 11 column 표 (interval · Y’_j entering · W_j withdrawn · Y_j = Y’_j - W_j/2 · d_j events · Ŝ · f̂ · ĥ · 3 SE) · 식 5.4.1~5.4.7 · median linear interpolation 식 5.4.8 · NLSY 927 명 weaning 11.21 주 손풀이 · Sacher 1956 hazard 대안 ĥ = -ln p̂j/(a_j - a{j-1})

Klein & Moeschberger Ch.5 의 § 5.3 (Right-Truncated Data) + § 5.4 (Cohort Life Table) 를 deep-dive 로 풀어낸다. § 5.1~5.2 가 censoring 의 3 형태를 다뤘다면, 본 편은 (1) truncation 의 우측 형태 (좌절단의 mirror image) 와 (2) grouped data 의 life table 처리. § 5.3 — Right-Truncated Data: 표본 조건이 사건이 시점 τ 까지 발생한 사람만 — 감염병 retrospective study (HIV/AIDS) 의 표준. § 4.6 의 좌절단의 mirror image. Time reversal trick 의 두 번째 응용: R_i = τ - X_i → 새 시간 R_i 의 좌절단 + right-censored 0 구조. 좌절단 framework (식 4.6.1) 그대로 적용 — Y_i = #{j: T_j > X_i, X_j ≤ τ - X_i} (원래 시간에서 induction time > X_i 와 infection time ≤ τ - X_i). 추정 대상이 conditional P(X < τ - t | X ≤ τ). Klein Example 5.3: Lagakos (1988) HIV-contaminated blood transfusion AIDS 37 children + 258 adults. Infection time T_i + induction time X_i (HIV → AIDS). τ = 8 years (1978-04 부터 1986-06). Klein Table 5.5 손풀이: X = 1 yr → Y = 17, P̂(X < 1 | X ≤ 8) = 0.158. X = 5.5 yr → Y = 3, P̂ = 0.667. Children 평균 잠복기 약 5 년, adults 약 8 년. 우측 절단 무시 시 잠복기 5+ yr 과소 추정 — 1980 년대 AIDS 역학의 historical impact. § 5.4 — Cohort Life Table: 사건 시점이 정확히 알려지지 않고 미리 정해진 구간 (a_{j-1}, a_j] 내에서만 알려진 grouped data. KM 의 grouped 일반화 (Thompson 1977: lim 구간 → 0 = KM). 11 column 구성: (1) interval I_j = (a_{j-1}, a_j] · (2) Y’j entering · (3) W_j withdrawn · (4) Y_j = Y’j - W_j/2 (균등 분포 가정) · (5) d_j events · (6) Ŝ(a{j-1}) · (7) f̂(a_mj) density · (8) ĥ(a_mj) hazard · (9~11) 3 종 SE. 핵심 식 5 가지: (5.4.1) Ŝ(a_j) = ∏(1 - d_i/Y_i) — KM 의 grouped 형태. (5.4.2) f̂ = [Ŝ(a_{j-1}) - Ŝ(a_j)]/(a_j - a{j-1}). (5.4.3·4) ĥ 두 형태 — 2f̂/[Ŝ_{j-1} + Ŝ_j] 또는 d_j/[(a_j - a_{j-1})(Y_j - d_j/2)]. (5.4.5) Greenwood SE = KM 식 4.2.2 와 동일. (5.4.7) hazard SE. Median linear interpolation (식 5.4.8): x̂0.5 = a{j-1} + Ŝ_{j-1} - 0.5/[Ŝ_{j-1} - Ŝ_j]. Median residual lifetime (식 5.4.9·10). Klein Example 5.4: NLSY 927 명 first-born breastfeeding (Klein § 1.14). Table 5.6 의 10 구간 손풀이 — Y_j 균등 분포 보정 (W_j/2), Ŝ 곱 누적 (1.000 → 0.0313), bathtub-style hazard (0~5 주 높음·5~37 주 안정·37 주+ 상승). Median weaning 11.21 주 (식 5.4.8 직접 계산), median residual at 25 wk = 15.40 주. Sacher (1956) 대안 hazard ĥ = -ln p̂j / (a_j - a{j-1}) — Gehan-Siddiqui 1973 의 비교 (식 5.4.3 보다 약간 편향). Thompson (1977) 의 limit theorem: 구간 길이 → 0 면 life table = KM. 인구통계 (current life table, Chiang 1984) 와 cohort life table 의 차이.

Statistics
Survival Analysis
Klein-Moeschberger
Right-Truncation
Life-Table
Time-Reversal
Grouped-Data
저자

Kwangmin Kim

공개

2026년 04월 28일

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~5.4 의 한 줄 요약

“§ 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 의 본질

정의: 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.

직관 — 좌절단 의 mirror image
측면 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\) 까지 발현한 사람” 의 수.

추정 대상 — Conditional Distribution

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 중심.

Klein Table 5.5 손풀이 — \(X = 1\) yr 시점

\(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.

추가 시점 결과 (Klein Table 5.5)
\(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

Practical Note 1 — 분산과 두 군 비교
  • 분산: Greenwood 공식 (식 4.2.2) 그대로 — 변환된 좌절단 데이터에 적용.
  • 두 군 비교: Lagakos et al. (1988) 의 검정.
  • 회귀: Gross-Huber-Carol (1992) 의 우측 절단 회귀 모형.

→ § 4.6 의 좌절단 도구 모두 그대로 일반화.

Theoretical Note 1 — Counting Process 점근

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 의 본질

정의: Cohort Life Table

사건 시점이 정확히 알려지지 않고, 미리 정해진 구간 \((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 구조

Klein Table 5.6 형식
기호 의미
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 일반화

정의: 식 5.4.1 — Grouped KM

\[ \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/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 추정

정의: 식 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 두 형태

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 식의 동일성

두 식이 수학적으로 동일하다는 사실은 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 형태

정의: 식 5.4.5 — Greenwood SE

\[ \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\) 는 구간 사건 확률.

직관 — 모든 SE 식이 KM 의 일반화

식 5.4.5 가 식 4.2.2 와 동일하다는 사실은 cohort life table 이 본질적으로 KM 의 변형임을 보여준다. 연속 시간 vs 이산 grid 의 차이만 있을 뿐.

→ Thompson (1977) 의 limit theorem 을 미리 시사: 구간 길이 → 0 면 두 framework 일치.

3.6 Median 과 Median Residual Lifetime

정의: 식 5.4.8 — Median Linear Interpolation

\(\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 정의와 일관.

정의: 식 5.4.9·10 — Median Residual Lifetime

시점 \(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 손풀이

데이터 (Klein § 1.14)

NLSY (National Longitudinal Survey of Youth) 의 927 명 first-born child 에 대한 모유 수유 기간 (weaning time).

  • 1978 년 이후 출생자만 (recall bias 회피).
  • 임신 20~45 주.
  • 모두 모유 수유 시작 (그렇지 않은 산모 제외).
  • Event = 모유 수유 종료 (weaning).
  • Censoring = 인터뷰 시점까지 모유 수유 지속.

10 구간 (early weaning 짧게, 나중 길게).

Klein Table 5.6 — 11 column 손풀이 (10 구간)
구간 (주) \(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 의 직접 적용 결과.

Hazard 형태 — Bathtub 패턴 (Klein Figure 5.3)
구간 \(\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 에서도 나타남.

Median Weaning Time — 식 5.4.8 직접 적용

\(\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

Practical Note 1 — 3 가정의 명시

Cohort life table 의 모든 결과는 다음에 의존:

  1. Independent censoring: censoring 시점이 사건 시점과 독립.
  2. Uniform distribution within interval: censoring 과 사건 시점이 구간 내 균등 분포 → \(Y_j = Y'_j - W_j/2\) 의 정당성.
  3. 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 같은 안정 구간은 길게.

Practical Note 2 — Lost vs Withdrawn Alive

Lost to follow-up: 추적 끊김 (이주, 미응답 등) — 생존 상태 모름.

Withdrawn alive: 연구 종료일에 살아있음 — 명시적으로 censoring.

가정: 두 종류 모두 censoring 시점 이후 생존이 다른 사람과 동일.

Cutler-Ederer (1958) 의 경고: lost individuals 의 생존이 더 좋을 수도, 같을 수도, 나쁠 수도 있음. 추적 노력 최대화 가 필수.

→ Sensitivity analysis: lost individuals 가 모두 사건 또는 모두 안 일어났다고 가정한 worst-case bounds.

3.9 Theoretical Notes

Theoretical Note 1 — Sacher (1956) Hazard 대안

식 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) 표준.

Theoretical Note 2 — Thompson (1977): Life Table = lim KM

Thompson (1977):

“구간 길이가 모두 0 으로 수렴하면, life table 의 \(\widehat{S}(a_j)\) 가 KM 의 \(\widehat{S}(t)\) 로 수렴.”

의미:

  1. Life table 은 KM 의 grouped 일반화 — 두 추정량이 본질적으로 같은 framework.
  2. 구간이 충분히 작으면 정확한 시점 데이터로 KM 한 결과와 같음.
  3. 구간이 크면 평활 효과 (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.40

5.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

§ 5.3~5.4 의 5 가지 교훈
  1. Right truncation 은 좌절단의 mirror image — Time reversal \(R_i = \tau - X_i\) 로 § 4.6 framework 에 환원. 같은 위험집합 정의 (재해석된 형태) + 동일 KM 식. 시간축의 좌우 대칭성.

  2. HIV/AIDS 잠복기의 historical impact — 1980 년대 우측 절단 무시 시 잠복기 5+ 년 과소 추정. Lagakos 1988 의 보정으로 children 5 년·adults 8 년 정확 추정. 통계적 도구가 공중보건 결정에 직접 영향.

  3. Cohort life table = grouped KM (Thompson 1977) — 구간 길이 → 0 면 life table = KM. 두 추정량이 본질적으로 같은 framework, 단지 관측 단위가 다를 뿐.

  4. \(Y_j = Y'_j - W_j/2\) 의 균등 분포 가정 — Censoring 시점이 구간 내 균등 분포 → 평균 노출 = 구간 절반. 이 단순 가정으로 KM 식을 grouped 데이터에 적용. 핵심: 위험집합 정의가 framework 의 본질.

  5. Hazard 의 두 표현 (식 5.4.3·4) 의 동일성 — “density / survival” vs “events / person-time” — 두 관점이 수학적으로 동일. 역학의 person-time 표현 (식 5.4.4) 이 가장 직관적.

7 관련 주제

선행 지식

후속 주제

  • § 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 추정량

Subscribe

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