Klein Ch.7 Overview — Hypothesis Testing (Log-Rank · Wilcoxon · Tarone-Ware · Renyi · 그 외)

§ 7.1 Introduction — NA 기반 가중 차이 검정의 통일 framework / § 7.2 One-Sample — 식 7.2.1 Z(τ) = O(τ) - E(τ) + Iowa psychiatric 8.51 (p<0.001) / § 7.3 K-Sample 6 weight 가족 — log-rank W=1 (PH 최적) · Gehan W=Y_i (initial 차이) · Tarone-Ware W=√Y_i (절충) · Peto-Peto W=S̃ · Fleming-Harrington W=S^p (1-S)^q (p,q 조절로 구간 강조) · 식 7.3.3·7.3.6 Z_j 와 χ² / § 7.4 Trend Test — Jonckheere-Terpstra 의 censored 일반화 (식 7.4.2 a_j 점수) · larynx cancer 4 stage Z=3.72 / § 7.5 Stratified — 식 7.5.4 strata 합산 + matched pairs Z = (D_1-D_2)/√(D_1+D_2) (식 7.5.7, sign test 의 censored 일반화) · 6-MP Z=3.27 (p=0.001) / § 7.6 Renyi — sup |Z(t)| (식 7.3.3 의 시퀀셜 최대값) — Kolmogorov-Smirnov 의 censored 일반화 (crossing hazards) / § 7.7 — Cramer-von Mises Q1·Q2 (식 7.7.3·7.7.4) + Pepe-Fleming weighted KM W_KM (식 7.7.6) + Brookmeyer-Crowley median test (식 7.7.14) / § 7.8 Fixed-time test

Klein & Moeschberger Ch.7 의 9 개 절을 한 편으로 조망한다. Ch.4·5·6 가 비모수 추정을 다뤘다면, Ch.7 은 그 위에 hypothesis testing 의 layer 를 쌓는다 — 모든 검정이 NA framework 의 직접 연장. § 7.1 Introduction — NA 기반 검정의 통일 framework: 관측 사건 수 - 기대 사건 수의 가중 차이. Weight 함수 선택으로 다양한 검정 (log-rank · Wilcoxon · Tarone-Ware 등) 통합. § 7.2 One-Sample — 표본 hazard = 기지 h_0(t) 검정. 식 7.2.1 Z(τ) = ∑ W(t_i) d_i/Y_i - ∫ W(s) h_0(s) ds. Log-rank weight (W=Y(t)) 면 식 7.2.3·7.2.4 의 단순 형태 — Z(τ) = O(τ) - E(τ) where E = ∑ [H_0(T_j) - H_0(L_j)]. Klein Example 7.1 Iowa psychiatric 26명 — χ² = 24.76 (p≈0) — § 6.3 의 excess mortality (β≈25) 와 통계적 검정으로 일치. Harrington-Fleming family W_HF = Y(t) S_0(t)^p [1-S_0(t)]^q. § 7.3 K-Sample — 핵심 식 7.3.3 Z_j(τ) = ∑ W(t_i) [d_ij - Y_ij d_i/Y_i], 분산·공분산 식 7.3.4·7.3.5 (multinomial 보정 (Y_i - d_i)/(Y_i - 1) tie correction), χ² 식 7.3.6 with K-1 df. 6 weight 가족 비교: (1) log-rank W=1 (PH 최적·SAS LIFETEST 표준), (2) Gehan W=Y_i (Mann-Whitney-Wilcoxon, censoring 패턴 차이에 민감), (3) Tarone-Ware W=√Y_i (절충), (4) Peto-Peto W=S̃ (식 7.3.8 의 modified KM, censoring 패턴 영향 적음), (5) Andersen 수정 W=S̃ Y_i/(Y_i+1), (6) Fleming-Harrington W=Ŝ^p (1-Ŝ)^q (식 7.3.9 — p≫q 면 초기 차이, p≪q 면 후기 차이, p=q>0 면 중간 차이 강조). Klein Example 7.2 kidney dialysis log-rank Z=1.59 (p=0.111). § 7.4 Trend — ordered alternative h_1 ≤ h_2 ≤ … ≤ h_K. 식 7.4.2 Z = ∑ a_j Z_j(τ) / sqrt(∑∑ a_j a_g σ̂_jg) — 점수 a_j 가중 합. Jonckheere-Terpstra 의 censored 일반화. Klein Example 7.6 larynx 4 stage Z = 3.72 (p < 0.0001). § 7.5 Stratified Tests — covariate 보정 검정. 식 7.5.4 Z = ∑_s Z_1s / √(∑_s σ̂_11s) — strata 합산 후 표준화. Matched pairs 의 식 7.5.7 Z = (D_1 - D_2)/√(D_1 + D_2) — censored data sign test. Klein Example 7.7 BMT (HOD vs NHL stratification) Z = 0.568 (p = 0.57). Klein Example 7.8 6-MP matched pairs (D_placebo=18, D_6MP=3) Z = 3.27 (p = 0.001). § 7.6 Renyi Type Tests — sup |Z(t)| (식 7.3.3 의 sequential maximum). Kolmogorov-Smirnov 의 censored 일반화. Crossing hazards 에 강한 검정력 — 보통 log-rank 가 약한 영역. § 7.7 Other Two-Sample Tests — (1) Cramer-von Mises Q1 (식 7.7.3, Brownian motion 분포) + Q2 (식 7.7.4, Brownian bridge 분포) — 적분 squared difference, (2) Pepe-Fleming weighted KM W_KM (식 7.7.6) — KM 기반 t-test 일반화, weight w(t) (식 7.7.5) 가 censoring 패턴 보정, (3) Brookmeyer-Crowley median test (식 7.7.14) — pooled median 후 group-wise S(M̂) 비교, crossing hazards. § 7.8 Fixed-time Tests — 단일 시점 t_0 의 S_1(t_0) vs S_2(t_0) 비교. Multiplicity 없이 단순 z-test. § 7.9 Exercises — 다음 deep-dive 편에서 풀이. Ch.7 의 핵심: Ch.4·5·6 의 NA estimation 위에 동일 framework 의 자연스러운 확장. 모든 검정이 (1) NA 기반 가중 차이, (2) weight 선택의 차이, (3) 분포 가정에 따른 critical value. Cox PH (Ch.8) 의 partial likelihood score test 가 log-rank 와 동일.

Statistics
Survival Analysis
Klein-Moeschberger
Log-Rank
Wilcoxon
Hypothesis-Testing
Renyi-Test
저자

Kwangmin Kim

공개

2026년 04월 28일

1 들어가며 — Ch.4·5·6 의 추정에서 Ch.7 의 검정으로

주제
Ch.4 시리즈 KM·NA·CI·Band·Mean/Median·LT·CIF
Ch.5 시리즈 Other Sampling Schemes
Ch.6 시리즈 Kernel · Excess Mortality · Bayesian
Ch.7 (본 편) Hypothesis Testing — Log-Rank · Wilcoxon · Renyi · 그 외
Ch.8 (예정) Cox Proportional Hazards (Partial likelihood)
… (Ch.9~13) Cox refinements · Aalen · AFT · 진단
Ch.7 의 한 줄 요약

“Ch.4·5·6 의 비모수 추정 위에 Ch.7 의 검정 layer. 모든 검정이 ‘NA 기반 가중 차이’ 의 동일 framework — 관측 사건 수 \(O\) - 기대 사건 수 \(E\) 의 가중 합 \(Z = \sum W(t_i) [d_{ij} - Y_{ij} d_i/Y_i]\). Weight \(W\) 의 선택으로 log-rank (\(W = 1\), PH 최적) · Gehan (\(W = Y_i\), initial 차이) · Tarone-Ware (\(W = \sqrt{Y_i}\)) · Peto-Peto (\(W = \widetilde{S}\)) · Fleming-Harrington (\(W = S^p (1-S)^q\), 구간 강조) 의 6 가족 통일. Ch.6 의 추정 결과 (예: Iowa psychiatric β ≈ 25) 가 Ch.7 의 검정 (one-sample log-rank χ² = 24.76, p ≈ 0) 으로 통계적 확정.”

직관 — 추정 vs 검정의 자연스러운 연결

§ 6.3 의 Iowa psychiatric (excess mortality):

“정신질환자가 일반인보다 25 배 빠른 사망” — 추정 결과 + 95% CI.

§ 7.2 의 one-sample log-rank:

\(H_0\): 환자 그룹 hazard = 표준 인구 hazard. \(\chi^2 = 24.76\), \(p \approx 0\)통계적 검정 결과.

→ 같은 데이터의 같은 framework, 다른 도구 — 추정이 “얼마나 다른가” 에 답한다면, 검정은 “차이가 0 과 다른가” 에 답한다.

모든 검정의 공통 구조:

\[ Z = \frac{\text{관측 사건 수} - \text{기대 사건 수}}{\sqrt{\text{분산}}} \]

  • 분자: NA 의 가중 차이.
  • 분모: counting process 이론의 분산.

NA framework 의 자연스러운 확장. Cox PH (Ch.8) 의 partial likelihood score test 도 동일.

1.1 Ch.7 의 9 절 조망

주제 핵심
§ 7.1 Introduction NA 기반 가중 차이 framework
§ 7.2 One-sample \(H_0\): \(h(t) = h_0(t)\)
§ 7.3 K-sample (global) 6 weight 가족
§ 7.4 Trend test Ordered alternative
§ 7.5 Stratified + matched Covariate 보정
§ 7.6 Renyi tests Crossing hazards
§ 7.7 Other tests Cramer-von Mises · KM-based · median
§ 7.8 Fixed-time test 단일 시점 \(t_0\) 비교
§ 7.9 Exercises 다음 deep-dive

2 § 7.2 — One-Sample Test

정의: One-Sample Weighted Test (식 7.2.1)

\(H_0\): 표본의 hazard 가 사전 지정된 \(h_0(t)\) (\(t \leq \tau\)) 와 같음.

검정 통계량:

\[ Z(\tau) = O(\tau) - E(\tau) = \sum_{i=1}^D W(t_i) \frac{d_i}{Y(t_i)} - \int_0^\tau W(s) h_0(s) ds \]

분산 (식 7.2.2):

\[ V[Z(\tau)] = \int_0^\tau W^2(s) \frac{h_0(s)}{Y(s)} ds \]

큰 표본에서 \(Z^2/V \sim \chi^2_1\) (양측), \(Z/\sqrt{V} \sim N(0, 1)\) (단측).

직관 — One-sample log-rank (\(W = Y(t)\))

\(W(t) = Y(t)\) (위험집합 가중) 일 때 \(\tau\) = 마지막 관측 시점이면:

\[ O(\tau) = \text{전체 사건 수} \]

\[ E(\tau) = V[Z(\tau)] = \sum_{j=1}^n [H_0(T_j) - H_0(L_j)] \]

(좌절단 \(L_j\) + 우측 censoring \(T_j\)).

간단한 형태: 분자 = “관측 사건 수 - 표준 인구 가정 시 기대 사건 수”, 분모 = “기대 사건 수의 sqrt”.

Klein Example 7.1 Iowa psychiatric:

  • 26 명 정신질환자.
  • \(H_0\): 1960 Iowa state mortality table (sex-specific).
  • Klein Table 7.1 의 \(H_0(T_j) - H_0(L_j)\) 합산: \(E(71) = 4.474\).
  • 관측 사건 수: \(O(71) = 15\).
  • \(\chi^2 = (15 - 4.474)^2 / 4.474 = 24.76\), \(p \approx 0\).

§ 6.3 의 excess mortality 결과 (B̂(2) ≈ 25) 와 일치. 추정 + 검정 이중 확인.

3 § 7.3 — Two/K-Sample Tests

정의: K-Sample 검정 (식 7.3.3·7.3.6)

\(H_0\): \(h_1(t) = h_2(t) = \cdots = h_K(t)\) for \(t \leq \tau\).

\(j\) 군의 통계량:

\[ Z_j(\tau) = \sum_{i=1}^D W(t_i) \left[d_{ij} - Y_{ij} \frac{d_i}{Y_i}\right] \]

분산·공분산 (식 7.3.4·7.3.5):

\[ \widehat{\sigma}_{jj} = \sum W^2(t_i) \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) \frac{Y_{ij}}{Y_i} \frac{Y_{ig}}{Y_i} \cdot \frac{Y_i - d_i}{Y_i - 1} \cdot d_i \]

\(\chi^2\) 통계량 (식 7.3.6, \(K-1\) df):

\[ \chi^2 = (Z_1, \ldots, Z_{K-1}) \widehat{\Sigma}^{-1} (Z_1, \ldots, Z_{K-1})^t \]

직관 — 식 7.3.3 의 의미

각 시점 \(t_i\) 에서 \(j\) 군:

  • \(d_{ij}\): 실제 관측된 \(j\) 군의 사건 수.
  • \(Y_{ij} \cdot d_i/Y_i\): \(H_0\) 가정 (모든 군 hazard 동일) 하에서 기대되는 \(j\) 군 사건 수.
  • 차이 \(d_{ij} - Y_{ij} d_i/Y_i\): “관측 - 기대”.

가중 합 \(Z_j = \sum W \cdot (\text{관측} - \text{기대})\).

Multinomial 분산:

\(d_{ij} \sim \text{Hypergeometric}(Y_i, d_i, Y_{ij})\) (조건부 — \(H_0\) 가정).

\(Y_{ij}/Y_i (1 - Y_{ij}/Y_i) (Y_i - d_i)/(Y_i - 1) \cdot d_i\) 가 분산. Tie correction \((Y_i - d_i)/(Y_i - 1)\) 는 같은 시점에 여러 사건 시 보정.

3.1 6 Weight 가족 통합

정의: 6 가지 표준 Weight
검정 \(W(t_i)\) 도출 강조 영역
Log-rank \(1\) 표준 모든 시점 균등 (PH 최적)
Gehan-Breslow \(Y_i\) Mann-Whitney-Wilcoxon 일반화 초기 (큰 위험집합)
Tarone-Ware \(\sqrt{Y_i}\) 절충 적당
Peto-Peto \(\widetilde{S}(t_i)\) (식 7.3.8) Mann-Whitney 개량 초기 (생존확률 가중)
Andersen 수정 \(\widetilde{S}(t_i) Y_i/(Y_i+1)\) Peto-Peto 보정 초기
Fleming-Harrington \(\widehat{S}^p (1-\widehat{S})^q\) (식 7.3.9) 일반화 \(p, q\) 선택으로 조절

Fleming-Harrington 의 일반화:

  • \(p = q = 0\): log-rank.
  • \(p = 1, q = 0\): Mann-Whitney-Wilcoxon.
  • \(p = 0, q = 1\): 후기 차이 강조 (Wilcoxon-rare-late).
  • \(p = q > 0\): 중간 차이 강조.

사용자가 검정 권력을 어디에 집중할지 자유롭게 선택.

직관 — Weight 선택의 의미

검정의 검정력 (power) 은 weight 의 시간 분포에 의존:

  • Log-rank (\(W = 1\)): 모든 시점 균등 가중 → PH 가정 (\(\beta(t)\) 일정) 하 최적.
  • Gehan (\(W = Y_i\)): 큰 위험집합 시점 (초기) 가중 → 초기 차이에 민감. 그러나 censoring 패턴 차이에 영향.
  • Tarone-Ware (\(W = \sqrt{Y_i}\)): log-rank 와 Gehan 의 절충.
  • Peto-Peto (\(W = \widetilde{S}\)): 생존확률로 가중 → censoring 패턴 영향 적음.
  • Fleming-Harrington: \(p, q\) 로 자유 조절.

Klein Example 7.2 (kidney dialysis 119 명):

  • Log-rank: \(Z = 1.59\), \(p = 0.111\) → 차이 모호.
  • 그러나 생존곡선 plot (Klein Figure 7.1) 은 두 군의 hazard 가 0.5 month 에 cross — PH 위반의 정전 사례.
  • Renyi 또는 Cramer-von Mises (§ 7.6·7.7) 가 더 적합한 검정.

Weight 선택이 검정의 결론에 결정적. 데이터 시각적 점검 후 적절한 검정 선택.

3.2 두 군 검정의 단순 형태 (식 7.3.7)

\(K = 2\) 의 단순 형태

\[ Z = \frac{\sum W(t_i) [d_{i1} - Y_{i1} d_i/Y_i]}{\sqrt{\sum W^2(t_i) (Y_{i1}/Y_i)(1 - Y_{i1}/Y_i)((Y_i - d_i)/(Y_i - 1)) d_i}} \]

→ 표준정규 (양측 z-test).

4 § 7.4 — Trend Tests (Ordered Alternatives)

정의: Trend Test (식 7.4.2)

\(H_0\): \(h_1 = h_2 = \cdots = h_K\) vs \(H_A\): \(h_1 \leq h_2 \leq \cdots \leq h_K\) (적어도 하나 strict).

점수 \(a_1 < a_2 < \cdots < a_K\) 선택 (보통 \(a_j = j\)).

\[ Z = \frac{\sum_{j=1}^K a_j Z_j(\tau)}{\sqrt{\sum_{j,g} a_j a_g \widehat{\sigma}_{jg}}} \]

큰 표본에서 표준정규.

직관 — Trend test 의 의미

K-sample 의 χ² 검정 (식 7.3.6) 은 “어느 군이라도 다른가” — 비방향성 (omnibus).

Trend test (식 7.4.2) 는 “순서대로 차이 있는가” — 방향성.

(Klein Example 7.6 larynx cancer):

  • 4 stage (Stage I < II < III < IV).
  • 점수 \(a_j = 1, 2, 3, 4\).
  • Log-rank weights: \(Z = 3.72\), \(p < 0.0001\).
  • 다른 weight 도 모두 유의.

stage 가 높을수록 사망률 높음 — 의학 기대와 일치.

Jonckheere-Terpstra 와의 관계: Censoring 없을 때 Gehan/Peto weight 의 trend test = Jonckheere-Terpstra 비모수 검정.

5 § 7.5 — Stratified Tests + Matched Pairs

정의: Stratified Test (식 7.5.4)

\(M\) strata + \(K\) 군. \(H_0\): \(h_{1s}(t) = \cdots = h_{Ks}(t)\) for all \(s = 1, \ldots, M\).

각 strata \(s\) 에서 식 7.3.3 의 \(Z_{js}(\tau)\) 와 분산 \(\widehat{\sigma}_{jgs}\). 합산:

\[ Z_{j \cdot}(\tau) = \sum_{s=1}^M Z_{js}(\tau), \quad \widehat{\sigma}_{jg \cdot} = \sum_{s=1}^M \widehat{\sigma}_{jgs} \]

두 군 stratified test:

\[ Z = \frac{\sum_s Z_{1s}(\tau)}{\sqrt{\sum_s \widehat{\sigma}_{11s}}} \]

직관 — Stratified test 의 의미

Stratified test 는 covariate 보정:

  • 각 strata 안에서 K 군 비교 → strata 간 효과 제거.
  • 합산해 글로벌 검정.

비유: 다중 회귀 (Cox PH, Ch.8) 의 censored 비모수 버전.

Klein Example 7.7 BMT (Allo vs Auto, HOD vs NHL strata):

  • HOD 만: \(Z = 2.89\) (\(p = 0.004\)) — Allo 가 좋음.
  • NHL 만: \(Z = -1.26\) (\(p = 0.21\)) — Auto 가 약간 좋음 (반대 방향).
  • Stratified: \(Z = 0.568\) (\(p = 0.57\)) — 반대 방향이 cancel out.

→ Stratified test 가 strata 간 reversed effect 시 power 잃음 (Practical Note 3). 이때 strata 별 결과 보고가 중요.

5.1 Matched Pairs — Censored Sign Test

정의: Matched Pairs Test (식 7.5.7)

\(D_1\): 첫 사건이 sample 1 에서 발생한 pair 수. \(D_2\): 첫 사건이 sample 2 에서 발생한 pair 수.

\[ Z = \frac{D_1 - D_2}{\sqrt{D_1 + D_2}} \]

→ Censored data sign test. 표준정규.

직관 — 식 7.5.7 의 의미

각 matched pair 에서:

  • 둘 중 누가 먼저 사건? — \(D_1\) (sample 1 먼저) 또는 \(D_2\) (sample 2 먼저).
  • 둘 다 censored 또는 censored 가 먼저: 정보 없음 (제외).

Sign test 의 해석: \(H_0\)\(D_1, D_2\) 가 binomial\((n, 0.5)\)\(E[D_1] = E[D_2] = (D_1 + D_2)/2\), \(V[D_1 - D_2] = D_1 + D_2\).

Klein Example 7.8 6-MP matched pairs (21 pairs):

  • \(D_{\text{placebo}} = 18\) (placebo 가 먼저 재발).
  • \(D_{6\text{-MP}} = 3\) (6-MP 가 먼저 재발).
  • \(Z = (18 - 3)/\sqrt{21} = 3.27\), \(p = 0.001\).

→ 6-MP 가 placebo 보다 명확히 우월 (matched-pair 설계의 검정력 높음).

6 § 7.6 — Renyi Type Tests (Crossing Hazards)

함정 — Crossing Hazards 에서 log-rank 의 검정력 부족

§ 7.3 의 log-rank 는 hazard 차이를 시간 적분 — 부호가 다른 영역 cancel out.

: 두 군 hazard 가 시점 \(t^*\) 에서 cross.

  • \(t < t^*\): 군 1 > 군 2 (양수 차이).
  • \(t > t^*\): 군 1 < 군 2 (음수 차이).
  • 적분: 두 영역 cancel → log-rank ≈ 0 → “차이 없음” 잘못된 결론.

→ Log-rank 가 PH 에 최적인 이유의 반대편: PH 위반 (특히 crossing) 시 log-rank power 약함.

정의: Renyi Statistic

식 7.3.3 의 \(Z_j(\tau)\) 를 매 시점 평가:

\[ Q = \sup_{t \leq \tau} |Z_1(t)| \]

(식 7.3.3 의 부분 합의 절대값 최대).

표준화 후 critical value 는 Brownian motion 의 sup 분포에서.

직관 — Kolmogorov-Smirnov 의 censored 일반화

Censoring 없는 K-S 검정: 두 empirical CDF 의 sup |F_1 - F_2|.

Renyi 검정: 두 hazard 의 sup |누적 차이|.

→ 시점별 차이의 최대값 을 보므로 cancel out 회피. Crossing hazards 에 강한 검정력.

적용: PH 위반 의심 시 log-rank 외에 Renyi 추가 보고 — 결론 robust 검증.

7 § 7.7 — Other Two-Sample Tests

7.1 Cramer-von Mises Tests

정의: Cramer-von Mises Q1 (식 7.7.3)

\[ Q_1 = \left(\frac{1}{\sigma^2(\tau)}\right)^2 \sum_{t_i \leq \tau} [\widetilde{H}_1(t_i) - \widetilde{H}_2(t_i)]^2 [\sigma^2(t_i) - \sigma^2(t_{i-1})] \]

→ 두 NA 의 적분된 squared difference.

Q1 의 분포: \(\int_0^1 [B(x)]^2 dx\), \(B\) = Brownian motion. Critical value 표 Klein Appendix C.6.

정의: Cramer-von Mises Q2 (식 7.7.4)

\[ Q_2 = n \sum_{t_i \leq \tau} \left[\frac{\widetilde{H}_1(t_i) - \widetilde{H}_2(t_i)}{1 + n \sigma^2(t_i)}\right]^2 [A(t_i) - A(t_{i-1})] \]

where \(A(t) = n\sigma^2(t)/[1 + n\sigma^2(t)]\).

Q2 의 분포: \(\int_0^{A(\tau)} [B^0(x)]^2 dx\), \(B^0\) = Brownian bridge. Critical value 표 Klein Appendix C.7.

직관 — Q1 vs Q2
통계량 적분 영역 분포 권장
Q1 표준화 NA 차이² Brownian motion sup PH 가까움 시 효율적
Q2 보정 NA 차이² Brownian bridge Crossing + 초기 차이

Klein Example 7.2 kidney dialysis:

  • \(Q_1 = 1.81\), \(p = 0.04\) → 유의.
  • \(Q_2 = 0.27\), \(p = 0.20\) → 비유의.
  • Log-rank \(Z = 1.59\), \(p = 0.11\) → 비유의.

→ 검정 선택에 따라 결론 다름. 시각적 점검 + 다중 검정 보고 권장.

7.2 Pepe-Fleming Weighted KM (식 7.7.6)

정의: W_KM Test

\[ W_{\text{KM}} = \sqrt{\frac{n_1 n_2}{n}} \sum_{i=1}^{D-1} (t_{i+1} - t_i) w(t_i) [\widehat{S}_1(t_i) - \widehat{S}_2(t_i)] \]

with weight (식 7.7.5):

\[ w(t) = \frac{n \widehat{G}_1(t) \widehat{G}_2(t)}{n_1 \widehat{G}_1(t) + n_2 \widehat{G}_2(t)} \]

(\(\widehat{G}_j\): \(j\) 군 censoring KM).

직관 — censoring 패턴 보정의 가중

\(w(t)\) 의 의미:

  • 두 군 censoring 패턴이 비슷 → \(w(t) \approx n_1 n_2/n\).
  • 한 군에 heavy censoring → \(w(t) \to 0\) — 이 시점의 차이 무시.
  • 두 군 모두 heavy censoring → \(w(t)\) 작음.

→ “data 가 적은 시점의 차이를 downweight” — KM-based t-test 의 일반화.

적용: 두 군의 censoring 패턴이 다를 때 Gehan-Breslow 보다 robust.

7.3 Brookmeyer-Crowley Median Test (식 7.7.14)

정의: Median Test

\(\widehat{M}\): 두 군 pooled 의 weighted KM (식 7.7.9) 에서의 median.

\(\widehat{S}_1(\widehat{M}), \widehat{S}_2(\widehat{M})\): 각 군의 \(\widehat{M}\) 시점 생존률.

\[ \chi^2 = n \frac{[\widehat{S}_1(\widehat{M}) - 0.5]^2}{\sigma^2} \]

with 분산 식 7.7.13.

직관 — Median 차이의 검정

핵심 idea: \(H_0\) 하 두 군 pooled median 에서 각 군의 생존률 = 0.5.

\(\widehat{S}_1(\widehat{M}) > 0.5\) 이면 군 1 이 median 보다 더 많이 살아있음 → 군 1 의 median 이 더 큼 → 군 1 이 더 좋음.

적용: Median 차이가 임상적으로 의미 있을 때. Crossing hazards 에 robust.

8 § 7.8 — Fixed-Time Tests

직관 — 단일 시점 비교

\(H_0\): \(S_1(t_0) = S_2(t_0)\) for fixed \(t_0\).

검정 통계량:

\[ Z = \frac{\widehat{S}_1(t_0) - \widehat{S}_2(t_0)}{\sqrt{\widehat{V}[\widehat{S}_1(t_0)] + \widehat{V}[\widehat{S}_2(t_0)]}} \]

각 군의 KM + Greenwood 분산.

적용:

  • 임상시험의 1 년 / 5 년 생존률 비교 (regulatory 표준).
  • 곡선 전체가 아닌 특정 시점의 차이만 관심.

한계: 다른 시점은 답 못 함. § 7.3·7.6 의 곡선 전체 검정과 보완적.

9 § 7.9 — Exercises (다음 deep-dive)

Ch.7 의 exercises:

  • Log-rank · Gehan · Tarone-Ware · Peto-Peto · Fleming-Harrington 6 weight 비교.
  • Stratified · matched pairs.
  • Trend test (ordered alternative).
  • Renyi · Cramer-von Mises (crossing hazards).
  • Fixed-time test.

→ 다음 deep-dive 편에서 풀이.

10 Ch.7 의 6 가지 교훈

Ch.7 핵심 교훈
  1. NA 기반 가중 차이 framework — 모든 검정이 “관측 사건 수 - 기대 사건 수” 의 가중 합. Ch.4·5·6 의 NA 추정의 자연스러운 확장. Cox PH (Ch.8) 의 partial likelihood score test 도 동일.

  2. 6 weight 가족 (§ 7.3) — Log-rank (\(W = 1\), PH 최적) · Gehan (\(W = Y_i\), 초기) · Tarone-Ware (\(W = \sqrt{Y_i}\)) · Peto-Peto (\(W = \widetilde{S}\)) · Andersen 수정 · Fleming-Harrington (\(W = S^p (1-S)^q\), 자유 조절). Weight 선택이 검정의 검정력에 결정적.

  3. Trend test (§ 7.4) — Ordered alternative 시 단일 z-test. Klein larynx cancer Z = 3.72 — stage 가 높을수록 사망률 높음.

  4. Stratified + matched (§ 7.5) — Covariate 보정 검정 + matched pairs 의 censored sign test (식 7.5.7). 6-MP matched pair Z = 3.27 — 강한 6-MP 효과.

  5. Crossing hazards 의 Renyi · Cramer-von Mises (§ 7.6·7.7) — Log-rank 의 cancel-out 함정. sup |Z(t)| (Renyi) 또는 적분 squared difference (CvM) 으로 해결. Pepe-Fleming weighted KM + Brookmeyer-Crowley median test 도 alternative.

  6. 추정과 검정의 연결 — Iowa psychiatric: § 6.3 의 β ≈ 25 추정 → § 7.2 의 χ² = 24.76 검정. Ch.4·5·6 의 추정 도구와 Ch.7 의 검정 도구가 동일 framework 의 다른 face.

11 응용 분야

분야 검정 예시
임상시험 표준 Log-rank 신약 vs 위약의 OS 비교
면역치료 (delayed effect) Fleming-Harrington p<q 후기 차이 강조
Crossing hazards (PH 위반) Renyi · Q2 · Median 두 군 곡선 cross
Phase II 다중 stage Trend test Stage I~IV 순서
Matched cohort 식 7.5.7 sign test Twin 또는 sibling 비교
인구통계 standardized One-sample log-rank SMR vs 표준 인구
보험 actuarial Stratified Sex·age 보정

12 코드 예시

12.1 Step 1 — R survival Log-Rank

library(survival)
library(KMsurv)

# Klein Example 7.2 — kidney dialysis
data(kidney)
fit <- survdiff(Surv(time, delta) ~ type,
                data = kidney, rho = 0)  # log-rank

print(fit)
# Z² = chi-squared statistic, p-value

12.2 Step 2 — 다양한 Weight (R)

# Fleming-Harrington (rho, gamma) 가족
# rho = 0, gamma = 0: log-rank
# rho = 1, gamma = 0: Wilcoxon
# rho = 0, gamma = 1: 후기 차이
# rho = 1, gamma = 1: 중간 차이

for (rho in c(0, 1, 0)) {
  for (gamma in c(0, 0, 1)) {
    fit <- survdiff(Surv(time, delta) ~ type,
                    data = kidney, rho = rho)  # Note: gamma not in survdiff
    cat(sprintf("rho=%d: Z² = %.2f, p = %.3f\n",
                rho, fit$chisq, 1 - pchisq(fit$chisq, df = 1)))
  }
}

12.3 Step 3 — Trend Test (R coin)

library(coin)
library(survival)

# Klein Example 7.6 — larynx 4 stage
data(larynx)
larynx$stage <- as.ordered(larynx$stage)

# Censored Jonckheere-Terpstra
result <- logrank_trend_test(Surv(time, delta) ~ stage,
                              data = larynx,
                              scores = list(stage = c(1, 2, 3, 4)))
print(result)

12.4 Step 4 — Matched Pairs (Python lifelines)

import numpy as np
from lifelines import KaplanMeierFitter
from scipy.stats import norm

def matched_pairs_test(times1, events1, times2, events2):
    """식 7.5.7 — Censored sign test for matched pairs"""
    D1 = D2 = 0
    for t1, e1, t2, e2 in zip(times1, events1, times2, events2):
        if t1 < t2 and e1 == 1:
            D1 += 1
        elif t2 < t1 and e2 == 1:
            D2 += 1

    if D1 + D2 == 0:
        return None, None
    Z = (D1 - D2) / np.sqrt(D1 + D2)
    p = 2 * (1 - norm.cdf(abs(Z)))
    return Z, p

# Klein Example 7.8 — 6-MP placebo vs 6-MP
times_p = np.array([1, 22, 3, 12, 8, 17, 2, 11, 8, 12, 2, 5, 4, 15,
                    8, 23, 5, 11, 4, 1, 8])
events_p = np.array([1] * 21)  # 모두 사건
times_6mp = np.array([10, 7, 32, 23, 22, 6, 16, 34, 32, 25, 11, 20,
                       19, 6, 17, 35, 6, 13, 9, 6, 10])
events_6mp = np.array([1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0,
                        0, 1, 1, 0, 1, 0])

Z, p = matched_pairs_test(times_p, events_p, times_6mp, events_6mp)
print(f"Z = {Z:.2f}, p = {p:.3f}")  # ≈ 3.27, 0.001

13 관련 주제

선행 지식

후속 주제

  • Ch.7 deep-dive (§ 7.2~7.3, § 7.4~7.5, § 7.6~7.8 등으로 분기)
  • § 7.9 Exercises 풀이
  • Ch.8 — Cox Proportional Hazards (Score test = log-rank)
  • Ch.9 — Cox Refinements (time-varying coef · stratified)

관련 개념

  • Mann-Whitney-Wilcoxon (uncensored) → Gehan/Peto censored 일반화
  • Kruskal-Wallis (uncensored) → Breslow censored 일반화
  • Jonckheere-Terpstra (uncensored) → Klein § 7.4 censored 일반화
  • Sign test (paired) → 식 7.5.7 censored 일반화
  • Kolmogorov-Smirnov (uncensored) → Renyi § 7.6 censored 일반화
  • Cramer-von Mises (uncensored) → Q1, Q2 § 7.7 censored 일반화

→ Ch.7 전체가 uncensored 비모수 검정의 censored 일반화 의 통일 framework.

Subscribe

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