1 들어가며 — Ch.4·5 의 정교화
Klein 시리즈 사다리:
| 편 | 주제 |
|---|---|
| Ch.1 시리즈 | 19 데이터 catalog |
| 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 |
| Ch.5 시리즈 | Left·Double·Interval Cens · Right Trunc · Life Table |
| Ch.6 (본 편) | Kernel Hazard Smoothing · Excess Mortality · Bayesian NPMLE |
| Ch.7 (예정) | Log-rank · Wilcoxon · Tarone-Ware |
| … (Ch.8~13) | Cox PH · Aalen · AFT · 진단 |
“Ch.4·5 의 NA 추정량 \(\widetilde{H}(t)\) 는 cumulative hazard 의 step function — 그 점프 크기 \(\Delta\widetilde{H}(t_i) = d_i/Y_i\) 가 hazard rate 의 거친 추정. Ch.6 은 이 거친 추정을 (1) 평활 (kernel smoothing, § 6.2) 해 매끄러운 \(\widehat{h}(t)\) 도출, (2) 표준 인구와 비교 (excess mortality, § 6.3) 해 multiplicative \(\beta(t)\) 또는 additive \(\alpha(t)\) 분리, (3) prior 정보 결합 (Bayesian NPMLE, § 6.4) 해 finite sample 안정화. 세 정교화 모두 Ch.4 의 NA·KM 위에 새로운 layer 를 올린다.”
Ch.4 의 NA 추정량:
\[ \widetilde{H}(t) = \sum_{t_i \leq t} \frac{d_i}{Y_i} \]
- 이산 step function — 사건 시점에서만 점프, 그 사이는 상수.
- 점프 크기 \(\Delta\widetilde{H}(t_i) = d_i/Y_i\) = \(t_i\) 시점 hazard 의 거친 추정.
문제점:
- 거친 hazard 추정 — 점프만 보고 hazard 모양 파악 어려움. 평활이 필요.
- 표준 인구 무시 — 모든 사건이 동등하게 처리. “정신질환자가 일반인보다 얼마나 빨리 사망하는가” 같은 질문 답 못 함.
- Prior 정보 무시 — 이전 연구·전문가 의견·표준 인구 mortality 등을 활용 못 함.
Ch.6 의 3 정교화가 각 문제를 해결.
1.1 Ch.6 의 4 절 조망
| 절 | 주제 | 핵심 도구 |
|---|---|---|
| § 6.1 | Introduction | Ch.4·5 의 한계 + Ch.6 의 3 정교화 |
| § 6.2 | Kernel Hazard Smoothing | \(\widehat{h}(t) = (1/b) \sum K(\cdot) \Delta\widetilde{H}\) |
| § 6.3 | Excess Mortality | Multiplicative + Additive 두 모형 |
| § 6.4 | Bayesian Nonparametric | Dirichlet + Beta process prior |
| § 6.5 | Exercises | 10 문제 |
2 § 6.2 — Kernel Hazard Smoothing
2.1 NA 의 점프 vs Smooth Hazard
Ch.4 § 4.2 의 NA 추정량:
\[ \widetilde{H}(t) = \sum_{t_i \leq t} \frac{d_i}{Y_i}, \quad \Delta\widetilde{H}(t_i) = \frac{d_i}{Y_i} \]
연속 시간에서 hazard 의 정의:
\[ h(t) = \frac{dH(t)}{dt} = \lim_{\Delta t \to 0} \frac{P(t \leq X < t + \Delta t \mid X \geq t)}{\Delta t} \]
→ 이산 점프 \(\Delta\widetilde{H}(t_i)\) 는 \(h(t_i)\) 의 거친 추정. 하지만 점프만 보고 hazard 모양 (constant·monotone·U·hump) 파악 어려움.
NA plot 의 시각적 모습:
- 사건 시점에서만 jump.
- 사이에는 상수 (계단 모양).
- “기울기 = hazard” 는 점프 시점 직후 무한대, 사이는 0 — 의미 없음.
→ 점프들의 시간 평균 이 의미 있는 hazard 추정.
비유: 비 오는 날의 빗소리. 빗방울 하나하나는 점적인 (point process), 그러나 우리는 “초당 빗방울 수” 를 듣고 비의 강도를 파악. → 시간 윈도우 내 평균이 자연.
2.2 Kernel Smoothing 식 (식 6.2.4)
시점 \(t\) 에서:
\[ \widehat{h}(t) = \frac{1}{b} \sum_{i=1}^D K\left(\frac{t - t_i}{b}\right) \Delta\widetilde{H}(t_i) \]
분산 (식 6.2.5):
\[ \sigma^2[\widehat{h}(t)] = \frac{1}{b^2} \sum_{i=1}^D K\left(\frac{t - t_i}{b}\right)^2 \Delta\widehat{V}[\widetilde{H}(t_i)] \]
여기서:
- \(b\): bandwidth — “얼마나 넓은 시간 윈도우를 평균할지”.
- \(K(\cdot)\): kernel function — \([-1, +1]\) 에서 정의, \(\int K = 1\), \(K \geq 0\).
- \(\Delta\widehat{V}[\widetilde{H}(t_i)] = d_i / Y_i^2\) (Aalen 분산의 점프).
식 6.2.4 를 인자별로 해석:
- \(\Delta\widetilde{H}(t_i) = d_i/Y_i\): \(t_i\) 시점 hazard 의 거친 추정.
- \(K((t - t_i)/b)\): \(t_i\) 가 \(t\) 에 가까울수록 큰 가중, 멀수록 0.
- \(1/b\): 정규화 (bandwidth 가 클수록 더 많은 점이 포함되므로 분모 보정).
- 합 \(\sum\): 모든 사건 시점의 가중 평균.
→ “\(t\) 주변 (\(\pm b\)) 의 hazard 거친 추정들을 가중 평균하여 매끄러운 \(h(t)\) 도출”.
2.3 3 종 Kernel
Uniform (식 6.2.1):
\[ K(x) = 0.5, \quad -1 \leq x \leq 1 \]
Epanechnikov (식 6.2.2):
\[ K(x) = 0.75 (1 - x^2), \quad -1 \leq x \leq 1 \]
Biweight (식 6.2.3):
\[ K(x) = \frac{15}{16}(1 - x^2)^2, \quad -1 \leq x \leq 1 \]
각 kernel 의 모양:
| Kernel | 중심 (\(x = 0\)) 가중 | 양 끝 (\(x = \pm 1\)) 가중 | 매끄러움 |
|---|---|---|---|
| Uniform | 0.5 | 0.5 (cliff) | 거침 |
| Epanechnikov | 0.75 | 0 (smooth) | 매끄러움 |
| Biweight | 0.9375 | 0 (very smooth) | 매우 매끄러움 |
중심 가중 비교:
- Uniform: 모든 점에 같은 가중 — “naive 평균”.
- Epanechnikov: 중심에 더 큰 가중 — MSE 최적 (Hodges-Lehmann 1956).
- Biweight: 중심에 가장 큰 가중 — 결과가 가장 매끄러우나 약간 더 편향.
실무 권장: Epanechnikov 가 표준 — MSE 관점 최적. Uniform 은 단순 평균이 필요할 때, biweight 는 가장 매끄러운 plot 이 필요할 때.
2.4 Bandwidth 의 Bias-Variance Trade-off
작은 \(b\):
- 좁은 윈도우 → 적은 점들 가중 평균 → 분산 큼.
- 그러나 시간 변동에 민감 → 편향 작음.
- Plot: 거칠고 노이즈 많음.
큰 \(b\):
- 넓은 윈도우 → 많은 점들 가중 평균 → 분산 작음.
- 그러나 시간 변동을 평탄화 → 편향 큼 (예: 시간에 따라 변하는 hazard 를 일정한 평균으로 추정).
- Plot: 매끄럽지만 진짜 모양 놓침.
선택 방법:
- MSE 최소화 (cross-validation).
- 시각적 판단 (실무에서 흔함).
- Klein Example 6.2 에서 다양한 \(b\) 비교.
2.5 Boundary Effect — Asymmetric Kernel
대칭 kernel (\(K(-x) = K(x)\)) 은 \(-1 \leq x \leq 1\) 범위 모두 데이터가 있어야 작동.
문제:
- \(t < b\) 영역: \(t - b < 0\) 이라 사건 데이터 없음 (\(t_i\) 가 음수 안 됨).
- \(t > t_D - b\) 영역: 사건 데이터 부족 (마지막 사건 이후).
→ 단순히 kernel 양쪽을 잘라내면 적분 = 1 보장 못 함, 추정량 편향.
\(q = t/b\) (boundary 까지의 비율) 정의 후 modified kernel.
Uniform 의 asymmetric (식 6.2.6):
\[ K_q(x) = \frac{4(1 + q^3)}{(1 + q)^4} + \frac{6(1 - q)}{(1 + q)^3} x, \quad -1 \leq x \leq q \]
Epanechnikov asymmetric (식 6.2.7): \(K_q(x) = K(x) (\alpha_E + \beta_E x)\) where \(\alpha_E, \beta_E\) 가 \(q\) 의 함수.
Biweight asymmetric (식 6.2.8): 유사한 형태.
→ Boundary 에서 적분 = 1 유지하면서 연속적 가중 분배.
2.6 Klein Example 6.1 — BMT ALL Hazard 추정
BMT ALL 38 명 (Klein § 1.3, Klein Example 4.2 의 ALL 군). Epanechnikov kernel + bandwidth \(b = 100\) 일 사용.
\(t = 150\) (즉 \(b \leq t \leq t_D - b\) 범위 안 — symmetric kernel 사용 가능):
식 6.2.4 직접 계산:
\[ \widehat{h}(150) = \frac{1}{100} \sum_i K\left(\frac{150 - t_i}{100}\right) \cdot \frac{d_i}{Y_i} \]
Klein Table 6.1 의 weight 값 일부 (Epanechnikov):
| \(t_i\) | \(\Delta\widetilde{H}\) | \(K((150-t_i)/100)\) | 기여 |
|---|---|---|---|
| 55 | 0.0270 | 0.0731 | 0.00197 |
| 74 | 0.0278 | 0.3168 | 0.00880 |
| 86 | 0.0286 | 0.4428 | 0.01266 |
| 104 | 0.0294 | 0.5913 | 0.01738 |
| 122 | 0.0667 | 0.6912 | 0.04609 |
| 172 | 0.0370 | 0.7137 | 0.02641 |
| 192 | 0.0385 | 0.6177 | 0.02378 |
| 230 | 0.0435 | 0.2700 | 0.01175 |
(다른 시점은 \(K = 0\) — 즉 \(|150 - t_i|/100 > 1\)).
합 ≈ 0.257, 그리고 \(\widehat{h}(150) = 0.257 / 100 = 0.00257\) /day.
→ “150 일 시점에서 ALL 환자의 hazard rate ≈ 0.00257 / day = 0.94 / year” → 연 94% 사건 확률 (1 명당). 매우 높은 사망률 — BMT 후 1 년 위험 정점.
표준오차: \(\sigma(\widehat{h}(150)) = 0.00073\) → 95% CI 약 \((0.0011, 0.0040)\) /day.
3 § 6.3 — Estimation of Excess Mortality
3.1 두 모형의 동기
특정 환자 그룹 (예: 정신질환자) 의 mortality 를 알고 싶을 때:
- 단순 KM: “정신질환자의 5 년 생존률 80%” — 절대 척도, 그러나 같은 나이·성별의 일반인 대비 어떤지 모름.
- Excess mortality: “정신질환자가 같은 나이·성별 일반인보다 1.5 배 빠르게 사망” — 상대적 비교.
→ 표준 인구 mortality table 활용해 “환자 그룹의 사망이 일반인보다 얼마나 더 일어나는가” 정량화.
가정: 표준 인구 hazard \(\theta_j(t)\) 가 환자 \(j\) 의 특성 (나이·성별·인종 등) 에 따라 알려져 있음 — life table 또는 cohort 데이터에서.
3.2 두 모형 — Multiplicative vs Additive
환자 \(j\) 의 hazard rate:
\[ h_j(t) = \beta(t) \cdot \theta_j(t), \quad j = 1, \ldots, n \]
- \(\beta(t)\): relative mortality function (환자 그룹 / 표준 인구).
- \(\beta(t) > 1\): 환자 그룹이 표준보다 빠른 사망.
- \(\beta(t) = 1\): 표준과 동일.
- \(\beta(t) < 1\): 환자 그룹이 더 좋음 (예: 운동 군의 심혈관 질환).
Cumulative: \(B(t) = \int_0^t \beta(u) du\).
\[ h_j(t) = \alpha(t) + \theta_j(t) \]
- \(\alpha(t)\): excess (additional) hazard — 환자 그룹의 추가 위험.
- \(\alpha(t) > 0\): 표준 인구 외 추가 위험.
- \(\alpha(t) = 0\): 표준과 동일.
- \(\alpha(t) < 0\): 표준보다 안전 (드뭄).
Cumulative: \(A(t) = \int_0^t \alpha(u) du\).
같은 데이터에서 두 모형은 다른 질문에 답:
| 모형 | 답하는 질문 | 비유 |
|---|---|---|
| Multiplicative | “위험이 몇 배?” | 1.5 배 빠른 자동차 |
| Additive | “추가 위험이 얼마?” | 시속 50 km 더 빠른 자동차 |
- Multiplicative: \(\beta(t) = 2\) 가 \(\theta_j = 0.01\) 환자에서 \(h_j = 0.02\), \(\theta_j = 0.05\) 환자에서 \(h_j = 0.10\) — 위험이 비례 확대.
- Additive: \(\alpha(t) = 0.01\) 이 모든 환자에 동일 추가 — \(\theta_j = 0.01\) → \(h_j = 0.02\), \(\theta_j = 0.05\) → \(h_j = 0.06\) — 작은 baseline 환자에 더 큰 상대 영향.
선택 기준:
- 위험 요인이 “비례적” (예: 흡연 → 폐암 모든 연령 공통 ratio): multiplicative.
- 위험 요인이 “추가적” (예: 직업 노출 → 모든 연령 공통 추가 위험): additive.
→ 두 모형 모두 보고하고 비교 권장.
3.3 Multiplicative Model 의 추정
\[ \widehat{B}(t) = \sum_{t_i \leq t} \frac{d_i}{Q(t_i)} \]
여기서 \(Q(t) = \sum_{j=1}^n \theta_j(t) Y_j(t)\) — 모든 위험 환자의 표준 인구 hazard 합.
분산 (식 6.3.3):
\[ \widehat{V}[\widehat{B}(t)] = \sum_{t_i \leq t} \frac{d_i}{Q(t_i)^2} \]
- 분자 \(d_i\): 시점 \(t_i\) 에서 실제 사건 수 (관측).
- 분모 \(Q(t_i)\): “표준 인구 mortality 가정 시 \(t_i\) 시점에 기대되는 사건 수의 가중치”.
- 비율 \(d_i / Q(t_i)\): “실제 / 기대” — 시간별 relative mortality 의 거친 추정.
→ NA 의 일반화: 표준 KM 의 \(d_i / Y_i\) 가 분모에 위험집합만 사용한다면, B̂ 는 분모에 표준 인구 hazard 가중을 추가.
SMR (Standardized Mortality Ratio) 의 시간 변동:
전통 SMR (Breslow 1975): \(\beta(t) = \beta_0\) 일정 가정. \(\widehat{\beta}_0 = \sum d_i / E\) where \(E = \int Q(u) du\) — Klein § 6.3 Practical Note 1. → B̂ 가 SMR 의 시간-변동 일반화.
3.4 Additive Model 의 추정
\[ \widehat{A}(t) = \sum_{t_i \leq t} \frac{d_i}{Y(t_i)} - \Theta(t) \]
여기서:
- 첫 항 \(\sum d_i / Y(t_i) = \widetilde{H}(t)\) — 표준 NA (관측 cumulative hazard).
- 두 번째 항 \(\Theta(t)\) — “기대 cumulative hazard” (식 6.3.5):
\[ \Theta(t) = \sum_{j=1}^n \int_0^t \theta_j(u) \frac{Y_j(u)}{Y(u)} du \]
분산 (식 6.3.7):
\[ \widehat{V}[\widehat{A}(t)] = \sum_{t_i \leq t} \frac{d_i}{Y(t)^2} \]
- \(\widetilde{H}(t)\): 관측된 cumulative hazard.
- \(\Theta(t)\): “표준 인구 가정 시 기대되는 cumulative hazard” — 시간별 위험에 든 환자의 표준 hazard 가중 평균.
- 차이 \(\widehat{A}(t)\): “관측 - 기대” = excess (추가) cumulative hazard.
→ “\(t\) 시점까지 표준 인구 대비 추가로 발생한 사건 수의 cumulative”.
Corrected Survival Curve:
\[ S^C(t) = \widehat{S}(t) / S^*(t) \]
- \(\widehat{S}\): 관측 KM.
- \(S^*(t) = \exp(-\Theta(t))\): 표준 인구 기대 생존곡선.
- \(S^C\): “환자 그룹의 표준 인구 보정된 survival” — 표준 사망률을 제외한 환자 고유 mortality.
→ Cancer survival 분석의 “relative survival” 표준 도구.
3.5 Klein Example 6.3 — Iowa Psychiatric
Woolson (1981) 26 명 정신질환자, 1959-1961 Iowa state mortality 와 비교.
\(Q(t)\) 계산 단계:
- 각 환자 \(j\) 의 entry age \(a_j\) 와 sex 에서 \(\theta_j(t) = \lambda_S(a_j + t)\) (Klein Table 6.2 의 일반 인구 hazard).
- \(Q(t) = \sum \theta_j(t) Y_j(t)\) — 모든 위험 환자 합.
B̂(t) 계산 (식 6.3.2): 매 사건 시점에서 \(d_i / Q(t_i)\) 누적.
관찰 (Klein Figure 6.8):
- B̂(2) ≈ 25 → 첫 2 년에 정신질환자가 일반 인구보다 20-30 배 빠른 사망.
- B̂(10) ≈ 50 → 10 년 시점 누적 ratio.
- B̂(30) ≈ 250 → 30 년 누적.
Â(t) (Klein Table 6.4):
- Â(30) ≈ 0.36 → “30 년 동안 100 명당 36 명 추가 사망 (표준 인구 대비)”.
- 95% CI: \((0.04, 0.68)\).
임상 함의: 정신질환자의 mortality 는 일반 인구보다 매우 높음. 특히 첫 2 년이 위험. 사회적 지원 + 의료 모니터링 강화 근거.
4 § 6.4 — Bayesian Nonparametric Methods
4.1 Bayesian 접근의 동기
표준 KM (Ch.4) 의 한계:
- Prior 정보 무시 — 이전 연구·전문가 의견·표준 인구 데이터 등 외부 지식 활용 못 함.
- Finite sample 불안정 — 작은 표본에서 KM 이 불안정 (특히 tail).
Bayesian 접근:
- Prior \(\pi(S)\): \(S(t)\) 에 대한 사전 분포 (이전 연구 기반).
- Likelihood \(L(\text{data} \mid S)\): 표본 데이터의 가능도.
- Posterior \(\pi(S \mid \text{data}) \propto L \cdot \pi\): 데이터 + prior 의 조합.
Squared-error loss 하의 Bayes estimator:
\[ \widehat{S} = E[S \mid \text{data}] = \text{posterior mean} \]
→ 큰 표본 (\(n \to \infty\)) 에서 prior 영향 0 → KM 으로 수렴. 작은 표본에서 prior 가 dominant.
4.2 Dirichlet Process Prior — Ferguson (1973)
\(S(t)\) 가 Dirichlet process 의 sample path:
\[ S(t) \sim DP(\alpha) \]
여기서 \(\alpha\) 는 measure on \([0, \infty)\). 표준 형태:
\[ \alpha([t, \infty)) = c \cdot S_0(t) \]
- \(S_0(t)\): prior guess — investigator 의 best estimate before seeing data.
- \(c\): prior strength — “\(c + 1\) 개 가짜 표본” 에 해당.
Prior 분포:
\[ E[S(t)] = S_0(t), \quad V[S(t)] = \frac{S_0(t)[1 - S_0(t)]}{c + 1} \]
→ \(c\) 가 클수록 prior 분산 작음 (강한 prior).
right-censored 데이터 + Dirichlet prior 의 posterior mean:
\[ \widetilde{S}_D(t) = \frac{\alpha(t, \infty) + Y_{i+1}}{\alpha(0, \infty) + n} \prod_{k=1}^i \frac{\alpha(t_k, \infty) + Y_{k+1} + \lambda_k}{\alpha(t_k, \infty) + Y_{k+1}} \]
for \(t_i \leq t < t_{i+1}\).
→ Closed form! Gibbs sampler 등 Monte Carlo 불필요.
- \(n \to \infty\): prior 항 \(\alpha\) 가 표본 항에 비해 작아짐 → KM 으로 수렴.
- \(c \to 0\): prior 가 매우 약함 → KM.
- \(c \to \infty\): prior 가 매우 강함 → \(S_0\) 그대로.
Sample path 시뮬레이션 (Klein Figure 6.11): \(S_0(t) = e^{-0.1 t}\), \(c = 5\) 의 10 개 sample path. 각 path 가 nonincreasing + \(S(0) = 1\) + 연속이지만 약간 거침. \(c\) 증가 시 매끄러워짐.
4.3 Beta Process Prior — Hjort (1990)
대안: \(H(t)\) 에 prior 부여.
- \(H_0(t)\): prior guess for cumulative hazard.
- \(c(t)\): 시간별 prior weight.
각 작은 구간 \([a_{i-1}, a_i)\) 에서 \(W_i = H(a_i) - H(a_{i-1})\) 가 베타 분포:
\[ W_i \sim \text{Beta}(p_i, q_i) \]
with \(p_i = c \cdot [H_0(a_i) - H_0(a_{i-1})]\), \(q_i = c \cdot \{1 - [H_0(a_i) - H_0(a_{i-1})]\}\).
Limit 구간 length → 0 → beta process.
Bayes estimator (식 6.4.2): Closed form (긴 식).
| 측면 | Dirichlet | Beta Process |
|---|---|---|
| Prior on | \(S(t)\) | \(H(t)\) |
| 도메인 | \([0, 1]\) (확률) | \([0, \infty)\) (cumulative hazard) |
| 도입 | Ferguson 1973 | Hjort 1990 |
| Sample path 의 매끄러움 | 거침 (특히 작은 \(c\)) | 더 매끄러움 |
| Closed form | 식 6.4.1 | 식 6.4.2 |
왜 Beta Process 가 더 매끄러운가: \(H\) 의 sample path 는 cumulative function 이므로 자연히 monotone non-decreasing + 연속. \(S = e^{-H}\) 변환은 매끄러움 보존.
실무 권장:
- Prior 가 직접적으로 survival (\(S_0(t)\)) 형태로 주어지면 Dirichlet.
- Prior 가 hazard (\(h_0(t)\)) 형태로 주어지면 Beta process.
두 경우 모두 closed form Bayes estimator 활용 가능 (Gibbs sampler 등 Monte Carlo 불필요한 장점).
4.4 Klein Example 6.4 — 6-MP
Klein § 1.2 의 6-MP 군 21 명 (Freireich 1963).
Prior 설정:
- \(S_0(t) = e^{-0.1 t}\) — prior guess (constant hazard 0.1 / week, 즉 control 군 mean rate 와 비슷).
- \(c = 5\) — “5 + 1 = 6 개 가짜 표본” 가치 prior.
Bayes estimator (식 6.4.1) 계산:
\(\alpha(t, \infty) = 5 \cdot e^{-0.1t}\), 식 6.4.1 의 분자/분모에 대입.
결과: \(\widetilde{S}_D(t)\) 가 KM 과 prior 사이의 가중 평균. 작은 표본 (\(n = 21\)) 이라 prior 영향 명확 — KM 의 거친 step 이 매끄러워짐.
→ Bayesian 의 효용: finite sample 에서 prior 가 안정화. 큰 표본에서는 KM 으로 수렴.
5 § 6.5 — Exercises (10 문제, 다음 deep-dive 편)
Ch.6 의 10 exercises 미리보기:
| Ex | 주제 | 도구 |
|---|---|---|
| 6.1 | BMT high risk hazard smoothing | § 6.2 kernel |
| 6.2 | BMT 3 그룹 비교 | § 6.2 |
| 6.3 | Lung cancer hazard | § 6.2 |
| 6.4 | Marijuana hazard | § 6.2 + § 5.2 결합 |
| 6.5 | Psychiatric excess mortality (Klein § 1.15) | § 6.3 multiplicative |
| 6.6 | Excess mortality 두 모형 비교 | § 6.3 |
| 6.7 | Bayesian Dirichlet prior | § 6.4 |
| 6.8 | Bayesian Beta process prior | § 6.4 |
| 6.9 | Gibbs sampler | § 6.4 alternative |
| 6.10 | 통합 분석 | Ch.4·5·6 종합 |
→ 다음 deep-dive 편에서 풀이.
6 Ch.6 의 5 가지 교훈
Hazard 의 평활 (§ 6.2) — NA 의 점프 \(\Delta\widetilde{H}(t_i)\) 가 hazard 의 거친 추정. Kernel smoothing 으로 매끄러운 \(\widehat{h}(t)\) 도출. Epanechnikov kernel + bandwidth bias-variance trade-off + Gasser-Müller boundary correction.
Excess mortality 의 두 모형 (§ 6.3) — Multiplicative (\(\beta(t) = h_j/\theta_j\)) 는 “몇 배 빠른 사망”, additive (\(\alpha(t) = h_j - \theta_j\)) 는 “추가 사망률”. 같은 데이터에서 다른 질문에 답. SMR (Breslow 1975) 의 시간-변동 일반화.
Corrected survival (§ 6.3) — \(S^C(t) = \widehat{S}(t)/S^*(t)\) 는 “표준 인구 보정” 생존. Cancer 분야의 relative survival 표준 도구.
Bayesian NPMLE (§ 6.4) — Prior 정보 + KM 데이터 결합. Dirichlet process (Ferguson 1973) for \(S\) + Beta process (Hjort 1990) for \(H\). 두 prior 모두 closed form Bayes estimator. \(c \to 0\) 또는 \(n \to \infty\) 에서 KM 으로 수렴 — Bayes 가 KM 의 일반화.
Ch.4·5 의 정교화 layer — Ch.4·5 의 raw KM/NA 위에 (1) 평활, (2) reference 비교, (3) prior 결합 의 3 layer 추가. 비모수 추정의 정교화 toolkit.
7 응용 분야
| 분야 | 도구 | 구체적 예시 |
|---|---|---|
| 임상 시험 hazard 보고 | § 6.2 kernel | BMT post-transplant hazard plot |
| 종양학 relative survival | § 6.3 multiplicative | Cancer 5 년 생존률 (일반 인구 보정) |
| 정신건강 mortality | § 6.3 multiplicative | Iowa psychiatric SMR |
| 직업 노출 hazard | § 6.3 additive | 화학 노출 → 추가 위험 |
| 작은 표본 임상시험 | § 6.4 Bayesian | n = 20 phase II trial |
| 신약 개발 (전문가 prior) | § 6.4 Bayesian | 기존 약 effect 를 prior 로 |
| 인구통계 cohort analysis | § 6.3 + § 6.4 | 표준 mortality + Bayesian 평활 |
8 코드 예시
8.1 Step 1 — Kernel Hazard Smoothing (R muhaz)
library(muhaz)
library(KMsurv)
data(bmt)
# Klein Example 6.1 — BMT ALL hazard estimate
all_data <- subset(bmt, group == 1)
# Epanechnikov kernel + bandwidth 100 days
fit <- muhaz(all_data$t1, all_data$d1,
max.time = 730, # 2 년
bw.method = "global",
bw.smooth = 100,
kern = "epanechnikov")
plot(fit, xlab = "Days Post Transplant",
ylab = "Estimated Hazard Rate",
main = "Klein Example 6.1 — ALL Hazard")
# t = 150 days 의 hazard
h_150 <- approx(fit$est.grid, fit$haz.est, xout = 150)$y
print(paste("h(150) =", round(h_150, 5))) # ≈ 0.002578.2 Step 2 — Excess Mortality (Multiplicative)
import numpy as np
import pandas as pd
def relative_mortality(data, ref_hazard_table):
"""식 6.3.2 — B̂(t) cumulative relative mortality"""
# data: (entry_age, time, event, sex) 컬럼
# ref_hazard_table: age × sex 의 표준 hazard
n = len(data)
event_times = np.sort(data.loc[data['event'] == 1, 'time'].unique())
B = 0
var_B = 0
results = []
for t in event_times:
# Q(t) = ∑ θ_j(t) Y_j(t)
at_risk = data[data['time'] >= t]
Q_t = sum(ref_hazard_table.loc[
(row['entry_age'] + t, row['sex']), 'hazard']
for _, row in at_risk.iterrows())
d_t = sum((data['time'] == t) & (data['event'] == 1))
B += d_t / Q_t # 식 6.3.2
var_B += d_t / Q_t ** 2 # 식 6.3.3
results.append((t, B, np.sqrt(var_B)))
return results
# Example 6.3 — Iowa psychiatric (26 명)
# (실제 데이터는 Klein Appendix D 또는 KMsurv::psych)8.3 Step 3 — Bayesian Dirichlet Prior
import numpy as np
def bayes_dirichlet_km(times, events, S_0_func, c=5):
"""식 6.4.1 — Dirichlet process prior 기반 Bayes KM"""
# S_0_func: prior guess function
# c: prior strength
n = len(times)
sorted_idx = np.argsort(times)
t_sorted = times[sorted_idx]
e_sorted = events[sorted_idx]
distinct_times = np.unique(t_sorted)
Y = n # 초기 위험집합
S_D = []
prod_term = 1.0
for t in distinct_times:
d = sum((t_sorted == t) & (e_sorted == 1))
cens = sum((t_sorted == t) & (e_sorted == 0))
Y_next = Y - d - cens
# 식 6.4.1
alpha_t = c * S_0_func(t)
alpha_0 = c * S_0_func(0)
first_term = (alpha_t + Y_next) / (alpha_0 + n)
# ... (full implementation: 곱 항 계산)
S_D.append((t, first_term * prod_term))
Y = Y_next
return S_D
# Klein Example 6.4 — 6-MP 21 명
import lifelines
from lifelines.datasets import load_kidney_transplant
# (실제 6-MP 데이터 로드)
S_0 = lambda t: np.exp(-0.1 * t) # prior guess
result = bayes_dirichlet_km(times, events, S_0, c=5)8.4 Step 4 — R bayesSurv (Bayesian)
9 관련 주제
선행 지식
- Ch.4 시리즈 — KM·NA·CI·Band (§ 6.2 의 NA 토대)
- Ch.5 시리즈 — Other Sampling Schemes
- § 1.15 — Iowa Psychiatric (Example 6.3 출처)
- § 1.3 — BMT (Example 6.1 출처)
- § 1.2 — Leukemia 6-MP (Example 6.4 출처)
후속 주제
- Ch.6 § 6.5 deep-dive — 10 exercises 풀이
- Ch.7 — Hypothesis Testing (log-rank · Wilcoxon · Tarone-Ware)
- Ch.8 — Cox Proportional Hazards
- Ch.9 — Cox Refinements (time-varying covariates · stratified)
관련 개념
- Variance stabilizing 변환 (§ 4.3 의 arcsine, § 6.2 의 boundary kernel)
- SMR (Standardized Mortality Ratio, Breslow 1975) — 인구 역학 표준
- Relative survival (Cancer epidemiology) — § 6.3 의 multiplicative model
- Dirichlet process (Ferguson 1973) — Bayesian 비모수의 표준
- Beta process (Hjort 1990) — hazard 의 Bayesian 표준
- Gibbs sampler (Geman-Geman 1984) — Bayesian 의 Monte Carlo 대안