1 들어가며 — Ch.7 의 두 번째 deep-dive
| 편 | 주제 |
|---|---|
| Ch.7 Overview | 9 절 조망 |
| § 7.1~7.2 | One-Sample Log-Rank |
| § 7.3~7.4 (본 편) | K-Sample Tests + Trend Tests |
| § 7.5 (예정) | Stratified + Matched Pairs |
| § 7.6~7.8 (예정) | Renyi · CvM · 그 외 |
| § 7.9 (예정) | Exercises |
“§ 7.3 의 K-sample 검정은 § 7.2 의 one-sample 의 자연스러운 일반화 — 비교 대상이 사전 지정 \(h_0\) 에서 다른 군의 hazard 평균으로 바뀜. 핵심 식 7.3.3 \(Z_j = \sum W [d_{ij} - Y_{ij} d_i/Y_i]\) (‘관측 - 기대’) 위에 6 weight 가족 (log-rank · Gehan · Tarone-Ware · Peto-Peto · Andersen · Fleming-Harrington) 이 다른 시점 가중. Klein Example 7.2 의 dialysis 가 정전 — log-rank Z=1.59 (p=0.11, 비유의) 가 PH 위반의 cancel-out 으로 차이 못 잡지만, FH p=0,q=1 (후기 강조) 가 χ²=9.67 (p=0.002) 로 크게 검출. § 7.4 의 trend test 는 ordered alternative 시 단일 z-test 로 검정력 강화 — Klein larynx 4 stage Z=3.72.”
2 § 7.3 — K-Sample Tests
2.1 일반 framework — 식 7.3.2
\(K\) 개 군의 right-censored 데이터. Pooled 사건 시점 \(t_1 < \cdots < t_D\).
- \(d_{ij}\): \(j\) 군의 \(t_i\) 시점 사건 수.
- \(Y_{ij}\): \(j\) 군의 \(t_i\) 직전 위험집합.
- \(d_i = \sum_j d_{ij}\), \(Y_i = \sum_j Y_{ij}\).
검정 통계량:
\[ Z_j(\tau) = \sum_{i=1}^D W_j(t_i) \left[\frac{d_{ij}}{Y_{ij}} - \frac{d_i}{Y_i}\right], \quad j = 1, \ldots, K \]
\(Z_j\) 의 각 항:
- \(d_{ij}/Y_{ij}\): \(j\) 군만의 데이터로 본 \(t_i\) 시점 hazard 의 거친 추정.
- \(d_i/Y_i\): pooled (전체 군 합) 데이터로 본 \(t_i\) 시점 hazard 의 거친 추정.
\(H_0\) (\(h_1 = ... = h_K\)) 가 참이면 두 추정이 같아야 함 → \(Z_j \approx 0\).
\(Z_j\) 가 0 에서 멀면 \(j\) 군의 hazard 가 평균과 다름 → \(H_0\) 기각.
→ “각 군의 hazard 추정 - pooled hazard 추정” 의 가중 합.
2.2 표준 형태 — 식 7.3.3 (W_j = Y_ij W)
실무에서 거의 항상 \(W_j(t_i) = Y_{ij} \cdot W(t_i)\) (각 군 위험집합 × 공통 weight):
\[ Z_j(\tau) = \sum_{i=1}^D W(t_i) \left[d_{ij} - Y_{ij} \cdot \frac{d_i}{Y_i}\right] \]
→ “관측 사건수 - 기대 사건수” 의 가중 합.
기대 사건수 \(Y_{ij} \cdot d_i/Y_i\): \(H_0\) 가정 시 \(t_i\) 에 \(Y_{ij}\) 명 위험인 \(j\) 군에서 평균적 사건 발생 수 = “\(j\) 군의 위험비중 × \(t_i\) 의 총 사건 수”.
식 7.3.2 에 \(W_j = Y_{ij} W\) 대입:
\[ Z_j = \sum W \cdot Y_{ij} \cdot \left[\frac{d_{ij}}{Y_{ij}} - \frac{d_i}{Y_i}\right] = \sum W \cdot \left[d_{ij} - Y_{ij} \cdot \frac{d_i}{Y_i}\right] \]
→ 분모 \(Y_{ij}\) cancel. 가중 합의 깔끔한 형태.
제약: \(\sum_{j=1}^K Z_j(\tau) = 0\) (선형 종속) — 한 군 결정되면 나머지도 결정.
→ K 개 군이지만 자유도는 K-1.
2.3 분산·공분산 — 식 7.3.4·7.3.5
\[ \widehat{\sigma}_{jj} = \sum_{i=1}^D W^2(t_i) \cdot \frac{Y_{ij}}{Y_i} \left(1 - \frac{Y_{ij}}{Y_i}\right) \cdot \frac{Y_i - d_i}{Y_i - 1} \cdot d_i \]
\[ \widehat{\sigma}_{jg} = -\sum W^2(t_i) \cdot \frac{Y_{ij}}{Y_i} \cdot \frac{Y_{ig}}{Y_i} \cdot \frac{Y_i - d_i}{Y_i - 1} \cdot d_i, \quad j \neq g \]
Tie correction \((Y_i - d_i)/(Y_i - 1)\): \(d_i = 1\) (단일 사건) 이면 1. tie 가 있으면 약간 작아짐 (분산 보정).
\(H_0\) 가정 하 \(t_i\) 시점:
- \(d_i\) 명의 사건이 \(K\) 군에 어떻게 분포되는가?
- 위험비중 \(p_j = Y_{ij}/Y_i\) 의 multinomial.
- \(E[d_{ij}] = d_i \cdot p_j = Y_{ij} d_i/Y_i\) — 기대 사건수.
- \(\text{Var}[d_{ij}] = d_i p_j (1 - p_j) = d_i \cdot Y_{ij}/Y_i \cdot (1 - Y_{ij}/Y_i)\) — multinomial 분산.
- \(\text{Cov}[d_{ij}, d_{ig}] = -d_i p_j p_g\) — 음의 공분산 (한 군 늘면 다른 군 줄어듦).
Tie correction: 정확히는 hypergeometric 분포 (pooling 의 효과). \((Y_i - d_i)/(Y_i - 1)\) 가 hypergeometric → multinomial 보정. \(d_i = 1\) 면 1, tie 시 1보다 약간 작음 (분산 약간 감소).
2.4 χ² 통계량 — 식 7.3.6
\(K-1\) 개 \(Z_j\) 와 그에 해당하는 \((K-1) \times (K-1)\) 공분산 행렬 \(\widehat{\Sigma}\) 로:
\[ \chi^2 = (Z_1, \ldots, Z_{K-1}) \widehat{\Sigma}^{-1} (Z_1, \ldots, Z_{K-1})^T \sim \chi^2_{K-1} \]
(어느 \(K-1\) 개 선택해도 같은 결과 — 종속성 때문).
두 군 (\(K = 2\)) 의 단순 형태 (식 7.3.7):
\[ Z = \frac{\sum W [d_{i1} - Y_{i1} d_i/Y_i]}{\sqrt{\sum W^2 (Y_{i1}/Y_i)(1 - Y_{i1}/Y_i)((Y_i - d_i)/(Y_i - 1)) d_i}} \sim N(0, 1) \]
3 6 Weight 가족 정밀 비교
| 검정 | \(W(t_i)\) | 출처 | 특성 |
|---|---|---|---|
| Log-rank | \(1\) | Mantel 1966 | 모든 시점 균등 |
| Gehan-Breslow | \(Y_i\) | Gehan 1965 + Breslow 1970 | 초기 (큰 \(Y\)) |
| Tarone-Ware | \(\sqrt{Y_i}\) | Tarone-Ware 1977 | 절충 |
| Peto-Peto | \(\widetilde{S}(t_i)\) | Peto-Peto 1972 | 초기 (생존확률) |
| Andersen 수정 | \(\widetilde{S}(t_i) \cdot \frac{Y_i}{Y_i + 1}\) | Andersen et al. 1982 | predictable 보정 |
| Fleming-Harrington | \(\widehat{S}(t_{i-1})^p [1 - \widehat{S}(t_{i-1})]^q\) | Fleming-Harrington 1981 | \(p, q\) 자유 |
여기서 \(\widetilde{S}\) (Peto-Peto) 는 modified KM (식 7.3.8):
\[ \widetilde{S}(t) = \prod_{t_i \leq t}\left(1 - \frac{d_i}{Y_i + 1}\right) \]
\(\widehat{S}\) (Fleming-Harrington) 는 표준 KM (식 4.2.1).
각 weight 의 상대 가중 \(W(t_i)/\sum W\) 를 시간으로 plot:
| Weight | 시점 분포 |
|---|---|
| Log-rank \(W=1\) | 모든 사건 시점 균등 (각각 \(1/D\)) |
| Gehan \(W=Y_i\) | 초기 위험집합 큰 시점 강한 가중 → 초기 차이에 매우 민감 |
| Tarone-Ware \(W=\sqrt{Y_i}\) | Gehan 의 완화 |
| Peto-Peto \(W=\widetilde{S}\) | 초기 (높은 \(S\)) 강조, log-rank 와 비슷한 분포 |
| FH p=0, q=1 \(W=1-\widehat{S}\) | 후기 (낮은 \(S\)) 강조 — log-rank 의 정반대 |
| FH p=1, q=0 \(W=\widehat{S}\) | 초기 강조 (Wilcoxon-like) |
| FH p=q=1 \(W=\widehat{S}(1-\widehat{S})\) | 중간 (\(S=0.5\) 부근) 강조 |
→ 데이터의 hazard 차이가 어디 집중되는지에 따라 적합한 weight 선택.
3.1 Fleming-Harrington Family — 식 7.3.9
\[ W_{p,q}(t_i) = \widehat{S}(t_{i-1})^p [1 - \widehat{S}(t_{i-1})]^q, \quad p \geq 0, q \geq 0 \]
(이전 시점 \(t_{i-1}\) 의 KM 값 사용 — predictable 만들기 위해. \(S(t_0) = 1\), \(0^0 = 1\)).
특수 경우:
- \(p = q = 0\): log-rank.
- \(p = 1, q = 0\): Wilcoxon-like (Mann-Whitney 일반화).
- \(p = 0, q = 1\): late-departure (후기 강조).
- \(p = q > 0\): mid-departure (중간 강조).
- \(p = 0.5, q = 0.5\): middle-region tests.
- PH 가정 가까움 + 분포 평균 차이: log-rank (\(p=q=0\)).
- 초기 부작용 (early failure) 비교: \(p > 0, q = 0\) (Wilcoxon-like).
- 장기 효과 (long-term cure) 비교: \(p = 0, q > 0\) (late).
- 중반기 차이 (treatment effect 소멸): \(p = q > 0\) (middle).
임상 활용:
- 면역치료 (delayed effect): 초기 효과 적고 후기 효과 큼 → FH \(p=0, q>0\).
- 수술 + 화학요법 vs 화학요법만: 수술의 초기 위험 + 후기 효과 → FH \(p=0, q=1\) 또는 \(p=q=1\).
- 만성 질환 약물: 안정된 효과 → log-rank.
→ Cox PH 의 가정 위반이 의심되면 FH 의 적절한 \(p, q\) 선택이 검정력 회복.
4 Klein Example 7.2 — Dialysis 두 군 (8 Weight 비교)
119 명 dialysis 환자: surgical 43 + percutaneous 76. 첫 cutaneous exit-site infection 까지 시간.
핵심 관찰 (Klein Figure 7.1):
- Percutaneous 군의 hazard 가 0.5 month 에 집중.
- Surgical 군은 후기 사건 더 많음.
- 두 군의 KM 곡선이 0.5 month 에 cross.
→ PH 위반의 정전 사례.
각 \(t_i\) 에서 \(d_{i1} - Y_{i1} d_i/Y_i\) 와 분산 항 계산:
| \(t_i\) | \(Y_{i1}\) | \(d_{i1}\) | \(Y_{i2}\) | \(d_{i2}\) | \(Y_i\) | \(d_i\) | 기대 \(Y_{i1}d_i/Y_i\) | 차이 | 분산 항 |
|---|---|---|---|---|---|---|---|---|---|
| 0.5 | 43 | 0 | 76 | 6 | 119 | 6 | 2.168 | -2.168 | 1.326 |
| 1.5 | 43 | 1 | 60 | 0 | 103 | 1 | 0.417 | 0.583 | 0.243 |
| 2.5 | 42 | 0 | 56 | 2 | 98 | 2 | 0.857 | -0.857 | 0.485 |
| 3.5 | 40 | 1 | 49 | 1 | 89 | 2 | 0.899 | 0.101 | 0.489 |
| 4.5 | 36 | 2 | 43 | 0 | 79 | 2 | 0.911 | 1.089 | 0.490 |
| … | |||||||||
| 26.5 | 2 | 1 | 3 | 0 | 5 | 1 | 0.400 | 0.600 | 0.240 |
| 합 | 15 | 11 | 26 | 11.036 | 3.964 | 6.211 |
- \(Z_1 = 3.964\), \(\widehat{\sigma}_{11} = 6.211\).
- \(Z = 3.964/\sqrt{6.211} = 1.59\).
- 양측 \(p = 2 \cdot P(Z > 1.59) = 0.112\).
→ Log-rank 비유의 (p > 0.05). 그러나 …
| 검정 | \(Z_1\) | \(\sigma_{11}^2\) | \(\chi^2\) | \(p\) |
|---|---|---|---|---|
| Log-rank | 3.96 | 6.21 | 2.53 | 0.112 |
| Gehan | -9 | 38862 | 0.002 | 0.964 |
| Tarone-Ware | 13.20 | 432.83 | 0.40 | 0.526 |
| Peto-Peto | 2.47 | 4.36 | 1.40 | 0.237 |
| Modified Peto-Peto | 2.31 | 4.20 | 1.28 | 0.259 |
| FH p=0, q=1 | 1.41 | 0.21 | 9.67 | 0.002 |
| FH p=1, q=0 | 2.55 | 4.69 | 1.39 | 0.239 |
| FH p=1, q=1 | 1.02 | 0.11 | 9.83 | 0.002 |
| FH p=0.5, q=0.5 | 2.47 | 0.66 | 9.28 | 0.002 |
관찰:
- Log-rank, Gehan, Tarone-Ware, Peto-Peto: 비유의 (p > 0.1).
- FH q ≥ 0.5 (후기 또는 중간 강조): 매우 유의 (p ≈ 0.002).
- FH p = q (중간 강조): 가장 유의.
진단:
- Hazard 가 0.5 month 에 cross → 초기 차이 (percutaneous 빨리 사건) 와 후기 차이 (surgical 안전) 가 부호 반대.
- Log-rank 의 균등 가중 → cancel-out → “차이 없음” 잘못된 결론.
- FH q > 0 의 후기 강조 → cancel-out 회피 → 검출.
→ Weight 선택이 결론에 결정적. PH 위반 의심 시 다양 weight 보고 권장.
5 Klein Example 7.3 — Channing House 좌절단
좌절단 데이터의 K-sample 검정.
- \(H_0\): \(h_F(t) = h_M(t)\) for \(t \in [777, 1152]\) months.
- \(H_A\): \(h_F \leq h_M\) (일방).
식 7.3.3 의 적용 — 좌절단 처리:
- \(Y_{ij}\) 정의: 시점 \(t_i\) 직전에 entry 한 + 사건/censored 안 한 개체.
- 즉 § 4.6 의 좌절단 KM 의 \(Y_i\) 정의.
결과: \(Z_M(1152) = 9.682\), \(\widehat{V}[Z_M] = 28.19\), \(Z_{\text{obs}} = 1.82\).
- 일방 \(p\) = 0.034.
- 남성이 여성보다 빠른 사망 (정상 인구 패턴 일치).
→ 좌절단 데이터에 식 7.3.3 그대로 적용 가능 — § 4.6 의 \(Y_i\) 재정의 만으로 일반화.
6 Klein Example 7.4 — BMT 3 그룹 (K=3)
- Group 1: ALL 38 명.
- Group 2: AML low-risk 54 명.
- Group 3: AML high-risk 45 명.
\(H_0\): 3 군의 disease-free survival 동일.
식 7.3.3 으로 각 군의 \(Z_j(2204)\) 계산:
- \(Z_1 = 2.148\) (ALL).
- \(Z_2 = -14.966\) (AML low risk).
- \(Z_3 = 12.818\) (AML high risk).
검증: \(Z_1 + Z_2 + Z_3 = 0\) ✓ (선형 종속).
공분산 행렬:
\[ \widehat{\Sigma} = \begin{pmatrix} 15.96 & -10.35 & -5.61 \\ -10.35 & 20.34 & -9.99 \\ -5.61 & -9.99 & 15.60 \end{pmatrix} \]
(singular — 합이 0 이라 행렬식 = 0).
\(Z_1, Z_2\) 와 그에 해당하는 \(2 \times 2\) 부분 행렬로 χ²:
\[ \chi^2 = (2.148, -14.966) \begin{pmatrix} 15.96 & -10.35 \\ -10.35 & 20.34 \end{pmatrix}^{-1} \begin{pmatrix} 2.148 \\ -14.966 \end{pmatrix} = 13.80 \]
→ \(\chi^2_2\) 분포에서 \(p = 0.001\) → 3 군 차이 유의.
| Weight | \(\chi^2\) | \(p\) |
|---|---|---|
| Log-rank | 13.80 | 0.001 |
| Gehan (\(W=Y_i\)) | 16.24 | 0.0003 |
| Tarone-Ware (\(W=\sqrt{Y_i}\)) | 15.65 | 0.004 |
| FH \(p=1, q=0\) | 15.67 | 0.004 |
| FH \(p=0, q=1\) | 6.11 | 0.047 |
| FH \(p=q=1\) | 9.93 | 0.007 |
모든 weight 유의 → BMT 3 그룹의 차이는 robust:
- AML low risk: \(Z_2\) 매우 음수 → 사건 수 매우 적음 (좋음).
- AML high risk: \(Z_3\) 매우 양수 → 사건 수 많음 (나쁨).
- ALL: 중간.
→ 임상 결론: AML low > ALL > AML high (생존).
7 Klein Example 7.5 — BMT Auto vs Allo (Crossing Hazards)
Auto vs Allo BMT 의 disease-free survival.
임상 배경:
- Allo: graft-versus-host disease (GVHD) → 첫 100 일 매우 높은 사망률.
- Allo 후기: GVH effect → leukemia cure 우월 (low relapse).
- Auto: 초기 안전 (no GVHD) but 후기 relapse 높음.
- → 두 군 hazard 가 약 12 month 에 cross.
| Weight | \(\chi^2\) | \(p\) | 결론 |
|---|---|---|---|
| Log-rank | ~ | 0.5368 | 비유의 (cancel-out) |
| Gehan | ~ | 0.7556 | 비유의 |
| FH p=0, q=1 (후기 강조) | 4.20 | 0.0404 | 유의 — 후기 차이 검출 |
\(Z_1 = -2.093\) (allo), \(\widehat{\sigma}_{11} = 1.02\), \(\chi^2 = 4.20\) for FH p=0,q=1.
해석:
- Log-rank·Gehan: 초기 (allo 높음) + 후기 (allo 낮음) cancel out → 차이 없음 잘못된 결론.
- FH q=1: 초기 가중 0 (allo 의 GVH 사망 무시) + 후기 가중 큼 → allo 의 long-term 우월성 검출.
임상 함의: long-term survivor 의 비교가 주요 관심이면 FH p=0, q=1 사용. 장기 추적이 충분히 길면 allo 가 우월.
→ 사전 임상 지식이 weight 선택의 가이드. 가설 (어디서 차이?) 이 명확하면 적절한 weight 로 검정력 강화.
8 § 7.4 — Trend Tests (Ordered Alternative)
8.1 동기 — 비방향성 vs 방향성
§ 7.3 의 K-sample \(\chi^2\):
- \(H_A\): 적어도 한 군이 다름 — 비방향성 (omnibus).
- “어느 군이 다른지” 정보 없이 무차별 검정.
§ 7.4 의 trend test:
- \(H_A\): \(h_1 \leq h_2 \leq \cdots \leq h_K\) (적어도 하나 strict) — 방향성.
- 사전 가설: 군 순서대로 hazard 증가 (또는 감소).
검정력 비교:
- 진짜 차이가 ordered 면 → trend test 가 더 강력.
- 진짜 차이가 random 이면 → omnibus χ² 가 더 적합.
→ Ordered 가설 확신할 때 trend, 그렇지 않으면 omnibus.
8.2 식 7.4.2
점수 \(a_1 < a_2 < \cdots < a_K\) 선택 (보통 \(a_j = j\)).
\[ Z = \frac{\sum_{j=1}^K a_j Z_j(\tau)}{\sqrt{\sum_{j=1}^K \sum_{g=1}^K a_j a_g \widehat{\sigma}_{jg}}} \]
큰 표본에서 표준정규.
기각 영역: \(H_A\) (오름 차순) 시 \(Z > z_\alpha\) (단측, 큰 \(Z\) 기각).
분자 \(\sum a_j Z_j\):
- \(j\) 가 클수록 큰 \(a_j\) 가중.
- \(Z_j\) 가 큰 \(j\) 에서 양수 (사건 더 많음) 면 합 양수 → ordered alternative 증거.
점수 선택:
- \(a_j = j\): 균등 차이 가정.
- $a_j = $ 군의 평균 covariate (예: 약물 용량): 연속적 trend.
- 임의 \(a_j\) (단조 증가): 검정 invariant under linear transform.
Theoretical Note 1: censoring 없으면 Gehan/Peto weight 의 trend test = Jonckheere-Terpstra 검정 (uncensored 비모수 trend).
8.3 Klein Example 7.6 — Larynx Cancer 4 Stage
90 명 larynx cancer (Dutch hospital, 1970s).
- Stage I, II, III, IV (American Joint Committee) — ordered.
- \(a_j = j\).
- \(H_0\): 4 stage 사망률 동일.
- \(H_A\): stage 높을수록 사망률 높음.
Log-rank weights:
\[ Z(10.7) = (-7.5660, -3.0117, 2.9155, 7.6623) \]
(stage I 음수 — 사건 수 적음, stage IV 양수 — 사건 수 많음).
공분산 행렬:
\[ \widehat{\Sigma} = \begin{pmatrix} 12.07 & -4.45 & -6.25 & -1.38 \\ -4.45 & 7.87 & -2.76 & -0.66 \\ -6.25 & -2.76 & 9.93 & -0.92 \\ -1.38 & -0.66 & -0.92 & 2.96 \end{pmatrix} \]
식 7.4.2 적용:
- 분자 \(\sum a_j Z_j = 1 \cdot (-7.57) + 2 \cdot (-3.01) + 3 \cdot 2.92 + 4 \cdot 7.66 = 25.85\).
- 분모 \(\sqrt{\sum\sum a_j a_g \sigma_{jg}}\) = … = 6.95.
- \(Z = 25.85/6.95 = 3.72\).
- \(p = P(Z > 3.72) < 10^{-4}\) → 매우 강력한 유의.
다양 weight:
| Weight | \(Z\) |
|---|---|
| Log-rank | 3.72 |
| Tarone-Ware | 4.06 |
| Gehan | 4.22 |
| Peto-Peto | 4.13 |
모든 weight \(p < 10^{-4}\) → stage 가 높을수록 사망률 높음의 통계적 확정.
Trend test 는 사전에 ordered alternative 가 명확할 때만 사용:
- OK: 약물 용량 순서, 질병 stage 순서, 연령대 순서.
- NOT OK: 무관 군 (예: 다른 치료법 A, B, C — 서열 없음).
이유:
- Ordered alternative 가 틀리면 검정력 약함 (실제 차이를 놓칠 수 있음).
- Random 차이는 § 7.3 의 omnibus 가 더 적합.
→ 사전 임상 지식 + 가설 명확성 이 trend test 적용의 전제.
9 Practical Notes (5 개)
STRATAstatement: 본 절의 표준 검정 (식 7.3.3).TESTstatement: tie 처리 다름. STRATA 권장.
R survival::survdiff 의 rho 옵션 = FH \(p\) (\(q = 0\) 가정):
rho = 0: log-rank.rho = 1: Wilcoxon-like (Peto-Peto).
Kellerer-Chmelevsky (1983) Monte Carlo 결과:
- 표본 크기 작을 때 일방 검정 주의.
- 두 군 표본 크기 매우 다를 때 + 작은 군의 hazard 큼 가정 → 잘못 기각 빈번.
- 두 군 표본 크기 매우 다를 때 + 큰 군의 hazard 큼 가정 → 너무 보수적.
권장: 양방 검정만 사용 (Prentice-Marek 1979).
Log-rank (\(W = 1\)) 가 PH 가정 (\(S_j(t) = S(t)^{\theta_j}\), Lehmann alternative) 하에서 LMP (locally most powerful).
→ Cox PH (Ch.8) 의 Cox proportional hazards model 의 score test 와 동일.
→ PH 성립하면 log-rank 가 가장 효율적. PH 위반 시 다른 weight.
10 Theoretical Notes (5 개 핵심)
Aalen 1975 (two-sample), Andersen et al. 1982 (K-sample):
- \(\widetilde{H}_j(t) - \widetilde{H}_{\text{pooled}}(t)\) 가 martingale.
- \(Z_j(\tau) = \int_0^\tau W \cdot d(\widetilde{H}_j - \widetilde{H}_{\text{pooled}})\) — stochastic integral.
- Predictable variation 으로 분산.
- Martingale CLT 로 점근 정규성.
→ § 3.6 framework 의 직접 적용.
Uncensored 데이터의 linear rank statistic:
\[ Z_j = \sum_{i=1}^{n_j} a_n(R_{ij}) \]
where \(R_{ij}\) = \(i\)-th 관측의 pooled rank, \(a_n\) = score function.
식 7.3.3 이 censored 데이터의 일반화. Score function \(\Psi(u) = 2u - 1\) → Peto-Peto Gehan 등.
→ Wilcoxon, Mann-Whitney, Kruskal-Wallis 모두 식 7.3.3 의 특수 경우.
11 응용 분야
| 분야 | Weight 선택 | 예시 |
|---|---|---|
| 표준 임상시험 | Log-rank | 신약 vs 위약 OS |
| 면역치료 (delayed) | FH p=0, q≥1 | Pembrolizumab |
| 수술 + 화학요법 | FH p=q | BMT (auto vs allo) |
| Phase I 용량 trend | Trend test (\(a_j\) = dose) | DLT 비교 |
| 종양 stage | Trend test (\(a_j = j\)) | Cancer staging |
| Censoring 다른 두 군 | Peto-Peto | Multi-center trial |
12 코드 예시
12.1 Step 1 — R survival Log-Rank + FH
library(survival)
# Klein Example 7.2 — kidney dialysis
fit_lr <- survdiff(Surv(time, delta) ~ type, data = kidney, rho = 0)
fit_w <- survdiff(Surv(time, delta) ~ type, data = kidney, rho = 1)
print(fit_lr) # log-rank
print(fit_w) # Wilcoxon-like (Peto-Peto)
# rho = 1 (FH p=1, q=0), q ≠ 0 은 직접 구현 필요12.2 Step 2 — R FHtest 패키지 (Fleming-Harrington 일반)
12.3 Step 3 — Python 직접 구현 (Log-Rank K-sample)
import numpy as np
from scipy.stats import chi2
def k_sample_logrank(times, events, groups):
"""식 7.3.3 + 7.3.6 — K-sample log-rank with W=1"""
K = len(np.unique(groups))
sorted_idx = np.argsort(times)
t_sorted = times[sorted_idx]
e_sorted = events[sorted_idx]
g_sorted = groups[sorted_idx]
event_times = np.unique(t_sorted[e_sorted == 1])
Z = np.zeros(K)
Sigma = np.zeros((K, K))
for t in event_times:
Y_total = np.sum(t_sorted >= t)
d_total = np.sum((t_sorted == t) & (e_sorted == 1))
Y_j = np.zeros(K)
d_j = np.zeros(K)
for j in range(K):
mask_j = (g_sorted == j)
Y_j[j] = np.sum((t_sorted >= t) & mask_j)
d_j[j] = np.sum((t_sorted == t) & (e_sorted == 1) & mask_j)
# 식 7.3.3 — Z_j 누적
for j in range(K):
expected = Y_j[j] * d_total / Y_total
Z[j] += d_j[j] - expected
# 식 7.3.4·5 — 분산·공분산 누적 (tie correction)
if Y_total > 1:
tc = (Y_total - d_total) / (Y_total - 1)
for j in range(K):
p_j = Y_j[j] / Y_total
Sigma[j, j] += p_j * (1 - p_j) * tc * d_total
for g in range(j + 1, K):
p_g = Y_j[g] / Y_total
cov_jg = -p_j * p_g * tc * d_total
Sigma[j, g] += cov_jg
Sigma[g, j] += cov_jg
# 식 7.3.6 — χ² (K-1 df)
Z_red = Z[:-1]
Sigma_red = Sigma[:-1, :-1]
chi2_stat = Z_red @ np.linalg.inv(Sigma_red) @ Z_red
p_value = 1 - chi2.cdf(chi2_stat, df=K-1)
return Z, Sigma, chi2_stat, p_value
# Klein Example 7.4 — BMT 3 그룹
# (실제 데이터 로드 후 호출)
# Z, Sigma, chi2_stat, p_value = k_sample_logrank(times, events, groups)
# print(f"Z = {Z}")
# print(f"χ² = {chi2_stat:.2f}, p = {p_value:.4f}")
# 예상: χ² ≈ 13.80, p ≈ 0.00112.4 Step 4 — Python lifelines Multivariate Log-Rank
13 핵심 takeaway
K-sample 의 핵심 식 7.3.3 — \(Z_j = \sum W [d_{ij} - Y_{ij} d_i/Y_i]\) (“관측 - 기대” 가중 합). 식 7.3.6 의 χ² with K-1 df. § 7.2 one-sample 의 자연 일반화.
6 weight 가족 — log-rank (\(W=1\), PH 최적), Gehan (\(W=Y_i\), 초기), Tarone-Ware (\(W=\sqrt{Y_i}\), 절충), Peto-Peto (\(W=\widetilde{S}\), censoring 패턴 robust), Andersen 수정 (predictable), Fleming-Harrington (\(W = \widehat{S}^p (1-\widehat{S})^q\), \(p, q\) 자유).
Crossing hazards 의 cancel-out 함정 — Klein Example 7.2 dialysis: log-rank Z=1.59 (p=0.11) 비유의지만 FH p=0,q=1 χ²=9.67 (p=0.002) 매우 유의. PH 위반 의심 시 다양 weight 보고 필수.
임상 사전 지식이 weight 선택의 가이드 — 면역치료 delayed effect (FH p=0,q>0), 수술 GVH (Klein Example 7.5 BMT auto vs allo), 만성 질환 (log-rank). 가설 명확하면 검정력 강화.
Trend test (식 7.4.2) — Ordered alternative 시 단일 z-test. Klein Example 7.6 larynx 4 stage Z=3.72 (p<10⁻⁴) — stage 가 높을수록 사망률. Jonckheere-Terpstra 의 censored 일반화.
모든 검정이 NA framework + counting process martingale — Aalen 1975, Andersen et al. 1982. § 3.6 의 직접 적용. Cox PH (Ch.8) score test 와 동등.
14 관련 주제
선행 지식
- Ch.7 Overview
- § 7.1~7.2 — One-Sample Log-Rank
- § 4.1~4.2 — KM·NA + Greenwood
- § 1.4 — Kidney Dialysis (Example 7.2 출처) (PH 위반 정전)
- § 1.16 — Channing House (Example 7.3 출처)
- § 1.3 — BMT (Example 7.4 출처)
- § 1.9 — Auto/Allo BMT (Example 7.5 출처) (crossing hazards 정전)
- § 1.8 — Larynx Cancer (Example 7.6 출처)
후속 주제
- § 7.5 — Stratified + matched pairs
- § 7.6 — Renyi tests (crossing hazards 의 다른 접근)
- § 7.7 — Cramer-von Mises, KM-based, median test
- Ch.8 — Cox PH (score test = log-rank, PH 가정 직접 모델링)
관련 개념
- Mann-Whitney-Wilcoxon (uncensored) → Gehan censored 일반화
- Kruskal-Wallis (uncensored) → Breslow censored 일반화
- Jonckheere-Terpstra (uncensored) → 식 7.4.2 의 censored 일반화
- Lehmann alternative \(S_j = S^{\theta_j}\) (PH 의 일반화) — log-rank 의 LMP 도출 근거
- Counting process martingale (Aalen 1975) — 모든 검정의 토대