1 개요 — 두 성격의 문제
§13.7 은 단 두 연습문제 만 담는다. 분량은 짧지만 성격이 대조적:
| 문제 | 성격 | 주제 |
|---|---|---|
| 13.1 | 실무 설계 | 임상시험 설계의 4 가지 선택 축 |
| 13.2 | 수학 정리 | 지수 순서 통계의 정규화 차이 분해 |
이 대조가 McCullagh-Nelder 의 실용-이론 균형 철학을 드러낸다 — 통계적 사고는 도메인 지식 (실험 설계) 과 수학적 도구 (확률론적 증명) 양쪽에 발을 디뎌야 함.
각 문제를 깊이 분석하고, 두 문제가 공유하는 교훈을 마지막에 정리한다.
2 연습 13.1 — 협심증 약물 임상시험 설계
2.1 시험 배경
질문: 협심증 (angina pectoris) 환자에게 새 약물이 관상동맥 질환 (coronary disease) 발생률을 낮추는가?
프로토콜: - 대상: 55-75 세, 협심증 증상 있음, 심장발작 병력 없음, 다른 약 복용하지 않음. - 적격 판정 · 동의 획득 후 무작위 배정 — 신약 vs 표준 치료. - 관찰 기간: 2 년. - 등록 기간: 연장 — 시험 전체 기간에 걸쳐 환자 등록.
2.2 설계 선택 축 1 — 실패 정의
세 가지 후보:
옵션 A — 전체 사망 (All-cause mortality): - 정의: 원인 무관 모든 사망을 “실패” 로. - 장점: 의사 판단 개입 없음 (사망 여부는 객관). 약물의 순 효과 측정. - 단점: 관상 질환과 무관한 사망 (사고, 암 등) 이 포함되어 검정력 감소.
옵션 B — 관상 동맥 사망만 (Coronary deaths only): - 정의: 심장마비 등 관상 원인 사망만. - 장점: 관심 결과에 집중 → 검정력 상승. - 단점: 사망 원인 분류 주관성 도입. 검시의사의 판단 편향 가능.
옵션 C — 모든 심장발작 (All heart attacks, fatal + non-fatal): - 정의: 비치명적 심장발작도 포함. - 장점: 이벤트 수 증가 → 검정력 대폭 상승. 약의 일차 작용기전에 가장 근접. - 단점: 비치명 사건 탐지 가 관찰 강도에 의존. 신약군이 더 자주 진료받으면 편향.
세 옵션은 객관성 (objectivity), 검정력 (power), 관련성 (relevance) 의 삼각 trade-off 를 만든다.
| 옵션 | 객관성 | 검정력 | 관련성 |
|---|---|---|---|
| 전체 사망 | 최고 | 낮음 | 낮음 |
| 관상 사망 | 중간 | 중간 | 높음 |
| 심장발작 전체 | 낮음 | 최고 | 최고 |
규제기관 (FDA) 은 전통적으로 객관성 우선 — 전체 사망 선호. 임상의는 관련성 우선 — 심장발작 선호. 최근 추세는 복합 결과 (composite endpoint) — “관상 사망 + 비치명 심장발작 + 뇌졸중” 을 합쳐 보고. 이것이 세 축의 절충 이다.
통계적 관점: 여러 정의로 분석 하여 민감도 분석 제공이 최선. 한 정의가 유의하고 다른 정의가 그렇지 않으면 결과의 견고성을 의심.
2.3 설계 선택 축 2 — 시간 원점
“\(t = 0\)” 을 무엇으로 잡을 것인가.
옵션 A — 달력 시간 (Calendar time from study start): - 모든 환자가 동일 달력 시점에서 측정. - 장점: 외부 환경 (계절, 경제 상황, 다른 의료 사건) 을 표준화. - 단점: Lead-time bias 심각. 시험 초기 등록 환자는 2 년 추적, 말기 등록 환자는 몇 달만 추적 — 비대칭 중도절단.
옵션 B — 무작위화 시점 (Time from individual randomization) ⭐ 표준: - 각 환자마다 자신의 \(t = 0\). - 장점: 치료 효과와 직접 연결. 등록 시점 무관. - 단점: 달력 시점 다양해 외부 요인 조정 필요 (계층화 등).
옵션 C — 증상 시작 시점 (Time from first angina symptoms): - 개인의 질병 경과 전체를 관찰. - 장점: 생물학적 시간 축. 자연 병력을 반영. - 단점: 증상 시작 시점의 후향적 보고 편향. 환자의 기억 오류·증상 정의 모호성.
Immortal time (불멸 시간): 환자가 연구에 등록되기 전까지의 기간.
옵션 C 를 잘못 적용하면 이 편향이 나타난다. 예: 증상 시작 후 6 개월 이내에 이미 사망한 환자는 연구에 등록되지 않는다 — 선택적으로 장기 생존자만 포함. 결과는 실제 위험을 과소평가.
이 편향을 피하려면 생존 분석에서 left truncation (왼쪽 절단) 을 명시적으로 처리. 위험 집합에서 “\(t < T_{\text{entry}}\)” 인 개체는 제외.
R survival::Surv(T_entry, T_exit, status) 가 left-truncation 을 지원. 실무에서 자주 간과되는 중요 디테일.
2.4 설계 선택 축 3 — 비준수 (Non-compliance)
신약의 부작용 때문에 환자가 약을 중단할 수 있다. 어떻게 다룰 것인가.
Intention-to-treat (ITT) — 무작위화된 대로 분석: - 약을 끊었어도 원래 배정군으로 분석. - 장점: 무작위 효과 유지. 인과 추론의 gold standard. - 단점: 치료 효과 과소추정 — 약을 안 먹은 환자가 신약군에 포함돼 “효과 희석”.
Per-protocol (PP) — 실제 복용자만: - 처방대로 복용한 환자만 분석. - 장점: 약물의 생물학적 효과 순수 측정. - 단점: 무작위화 깨짐. 순응자와 비순응자가 체계적으로 다를 수 있음 (건강한 순응자 편향).
As-treated — 실제 받은 처치로: - 신약군 → 표준으로 바꾼 환자는 “표준군” 으로. - 단점: PP 와 같은 편향 + 시간 의존 공변량 복잡성.
실무 관행: ITT 를 주요 분석, PP 를 민감도 로. FDA 규제도 이 관행 선호.
2.5 설계 선택 축 4 — 위험 집합 (Risk set) 구성
Cox 모형의 부분 우도 계산 시 \(R(t_j)\) 에 누구를 포함?
옵션 A — 모든 생존 무작위화 환자: - 중도절단 / 비준수 여부 무관, 살아 있으면 포함. - ITT 와 정합적.
옵션 B — 순응 생존자만: - 현재 치료 중인 환자만. - PP 와 정합적.
주의: 옵션 B 는 Cox 모형의 비례 가정 검증 어려움. 순응 여부가 시간 의존이라 위험 집합이 계속 줄어든다. 복잡한 counting process 데이터 구조 필요.
2.6 네 축의 조합 — 결과 보고의 견고성
16 가지 조합 (3 × 3 × 2 × 2) 이 가능. 실무 권고:
- 주요 분석 (primary analysis) 하나 사전 명시: 예) 전체 사망 + 무작위화 시점 + ITT + 모든 생존자.
- 민감도 분석 (sensitivity analysis) 여러 개: 관상 사망 · PP 등.
- 결과의 일관성 이 결론 견고성의 증거.
한 조합만 유의하고 다른 조합에서 사라지면 우연 또는 편향의 가능성 을 의심.
2.7 13.1 의 교훈
생존 분석은 통계만이 아니라 설계 다. 네 선택 축 각각이 결과를 크게 좌우하며, 이 선택들은 도메인 전문가와의 협업 없이 올바르게 할 수 없다.
“좋은 분석가” 는 Cox 모형을 능숙하게 돌리는 것이 아니라, 이 선택들의 trade-off 를 설명하고 사전에 명시된 분석 계획을 수립 할 수 있는 사람이다.
3 연습 13.2 — Sukhatme (1937) 정리
3.1 정리 진술
\(X_1, \ldots, X_n\) 이 i.i.d. 단위 지수 (\(\lambda = 1\)). \(X_{(1)} < X_{(2)} < \cdots < X_{(n)}\) 순서 통계. 정규화 차이:
\[ Y_1 = n X_{(1)}, \qquad Y_i = (n - i + 1)(X_{(i)} - X_{(i-1)}), \quad i = 2, \ldots, n. \]
주장: \(Y_1, Y_2, \ldots, Y_n\) 은 i.i.d. 단위 지수.
3.2 의의 — 왜 이 정리가 중요한가
이론적 의의: 지수 분포의 순서 통계는 완전히 분해 된다. 순서 통계 자체는 dependent 하지만, 정규화 차이는 독립. 이것은 다른 분포에서는 없는 지수 분포만의 독특한 성질.
응용 의의: 1. Kolmogorov-Smirnov 통계량 분포 연구. 2. 우주선 신뢰성 예측 — 순차 고장 간격의 독립성. 3. 생존 분석에서 Nelson-Aalen 추정량 의 분산 계산. 4. 포아송 과정 도착 시간의 등분산 성질.
3.3 증명 1 — Jacobian 방법
변수 변환: \((X_{(1)}, \ldots, X_{(n)}) \to (Y_1, \ldots, Y_n)\).
역변환은
\[ X_{(1)} = \frac{Y_1}{n}, \qquad X_{(i)} = \frac{Y_1}{n} + \frac{Y_2}{n-1} + \cdots + \frac{Y_i}{n-i+1} = \sum_{k=1}^{i} \frac{Y_k}{n - k + 1}. \]
Jacobian:
\[ \frac{\partial X_{(i)}}{\partial Y_j} = \begin{cases} 1/(n-j+1) & j \leq i \\ 0 & j > i \end{cases}. \]
즉 상삼각 행렬. 대각 원소가 \(1/(n-j+1)\) for \(j = 1, \ldots, n\). 행렬식:
\[ \det(J) = \prod_{j=1}^{n} \frac{1}{n-j+1} = \frac{1}{n!}. \]
3.4 순서 통계의 밀도
\(n\) 개 i.i.d. 지수 순서 통계의 결합 밀도 (표준 결과):
\[ f(x_{(1)}, \ldots, x_{(n)}) = n! \prod_{i=1}^{n} e^{-x_{(i)}} \cdot \mathbb{1}\{x_{(1)} < \cdots < x_{(n)}\}. \]
이 식에서 \(n!\) 는 순서 배열 수. 지수 분포의 \(\prod e^{-x_{(i)}} = e^{-\sum x_{(i)}}\).
3.5 \(Y\) 의 결합 밀도 유도
변수 변환:
\[ f_Y(y_1, \ldots, y_n) = f_X(x_{(1)}, \ldots, x_{(n)}) \cdot |\det(J)|. \]
\(n!\) 와 \(1/n!\) 가 상쇄:
\[ f_Y = n! \cdot e^{-\sum_{i} x_{(i)}} \cdot \frac{1}{n!} = e^{-\sum_{i} x_{(i)}}. \]
3.6 \(\sum x_{(i)}\) 를 \(\sum y_i\) 로 재표현
\(X_{(i)} = \sum_{k=1}^{i} Y_k / (n-k+1)\) 이므로
\[ \sum_{i=1}^{n} X_{(i)} = \sum_{i=1}^{n} \sum_{k=1}^{i} \frac{Y_k}{n-k+1} = \sum_{k=1}^{n} \frac{Y_k}{n-k+1} \cdot (n - k + 1) = \sum_{k=1}^{n} Y_k. \]
중간 단계: \(k\) 에 대한 이중 합산에서 \(Y_k\) 가 몇 번 등장하는지 세면 \((n - k + 1)\) 번 (즉 \(i = k, k+1, \ldots, n\)). 따라서 \(Y_k \cdot (n-k+1) / (n-k+1) = Y_k\) 로 단순화.
3.7 최종 결합 밀도
\[ f_Y(y_1, \ldots, y_n) = e^{-\sum y_i} = \prod_{i=1}^{n} e^{-y_i}, \quad y_i \geq 0. \]
\(Y_i \geq 0\) 조건 (순서 통계의 단조성에서 자동) 을 결합하면:
\[ \boxed{\;f_Y = \prod_{i=1}^{n} e^{-y_i} \mathbb{1}\{y_i \geq 0\}.\;} \]
이것은 \(n\) 개 i.i.d. 단위 지수 의 결합 밀도. \(\square\)
3.8 증명 2 — 메모리리스 성질 직관
지수 분포의 메모리리스 성질: \(X \sim \text{Exp}(\lambda)\) 에 대해
\[P(X > s + t \mid X > s) = P(X > t).\]
즉 “지금까지 기다린 시간을 잊어라”. 매 순간 새로 시작.
3.9 순서 통계의 단계별 해석
\(n\) 명이 동시에 출발해 각자 독립 지수 시간 으로 “사건” 을 기다린다고 하자.
\(X_{(1)}\) = 첫 번째 사건 시간: - 최솟값 이론: \(n\) 개 독립 지수 의 최솟값 \(\sim \text{Exp}(n\lambda) = \text{Exp}(n)\) (단위 \(\lambda = 1\)). - \(Y_1 = n X_{(1)} \sim \text{Exp}(1)\). ✓
첫 사건 후 남은 \(n-1\) 개: 메모리리스 성질에 의해 남은 대기 시간 은 원래와 같은 분포.
\(X_{(2)} - X_{(1)}\) = 두 번째 사건까지 추가 대기 시간 \(=\) \(n-1\) 개 독립 지수의 최솟값 \(\sim \text{Exp}(n-1)\).
\(Y_2 = (n-1)(X_{(2)} - X_{(1)}) \sim \text{Exp}(1)\). ✓
일반적으로 \(i\) 번째 사건 후 \((n - i)\) 개 남음:
\(X_{(i+1)} - X_{(i)} \sim \text{Exp}(n - i)\), \(Y_{i+1} = (n-i)(X_{(i+1)} - X_{(i)}) \sim \text{Exp}(1)\). ✓
독립성: 메모리리스 성질이 보장. 매 사건 후 “시계가 리셋” — 이전 간격과 독립.
\(n\) 명의 육상 선수가 출발선에서 출발. 각자 독립적 지수 시간으로 골인.
- 첫 선수 도착 시간 = \(X_{(1)}\). 팀 기준으로는 \(nX_{(1)}\) 이 “표준화된 첫 도착” (팀 규모로 보정).
- 첫 선수 도착 후 남은 \(n - 1\) 명은 메모리리스: 지금까지 달린 시간을 잊고 새로 출발한 것과 같음.
- 두 번째 도착까지 추가 시간 \(X_{(2)} - X_{(1)}\) 이 새로운 지수 최솟값 (\(n-1\) 명이므로 \(\text{Exp}(n-1)\)).
핵심: 지수 분포의 메모리리스 성질 덕분에 각 구간이 과거에서 독립. 이것이 \(n!\) 의 결합이 완전히 분해되는 구조적 이유.
3.10 Rényi (1953) 의 포아송 과정 재해석
Rényi 의 통찰: 단위 지수 순서 통계 \(X_{(1)}, \ldots, X_{(n)}\) 는 파라미터 \(n\) 의 포아송 과정 의 처음 \(n\) 개 도착 시간과 분포가 같다.
포아송 과정의 도착 간격은 i.i.d. 지수 — Sukhatme 정리를 자연스럽게 낳는다.
이 해석은 생존 분석에서 Nelson-Aalen 추정량 의 이론적 기반이 된다 (Andersen & Gill, 1982). 순차 실패 시간을 포아송 과정의 도착 시간으로 보는 counting process 접근.
3.11 지수 분포만의 특성
“임의의 연속 분포의 순서 통계에도 같은 분해가 성립하는가?” → 아니오. 메모리리스 성질이 없으면 안 됨.
증명: Normal 이나 Weibull 순서 통계의 정규화 차이는 의존적. 예를 들어 \(n = 2\) 정규 분포에서 \(X_{(2)} - X_{(1)} = |X_1 - X_2|\) 의 분포가 \(X_{(1)}\) 에 의존 — 극한 관측치가 클수록 간격도 커지는 경향.
지수 분포가 이 특성을 가지는 유일한 연속 분포라는 더 강한 역정리도 성립 (Azlarov-Volodin, 1986).
4 두 연습문제의 공통 교훈
4.1 교훈 1 — 생존 분석의 범위는 Cox 부분 우도보다 크다
§13.1-§13.6 은 주로 추정 방법 을 다룬다. 13.1 연습은 이 방법론이 설계와 결합 될 때 비로소 의미를 얻는다는 것을 상기시킨다. 통계만으로는 부족하고 도메인 지식·규제 요건·실무 제약이 분석에 들어와야 한다.
4.2 교훈 2 — 지수 분포의 특별한 위치
13.2 연습은 지수 분포의 유일성 을 보인다. 메모리리스 성질 + 순서 통계 분해 + 포아송 과정 연결이 지수를 생존 분석의 기본 건축 블록 으로 만든다.
Weibull, 극치값 등 모든 모수적 분포가 “지수로부터의 변형” 으로 해석될 수 있다. Cox 비모수적 접근도 “각 구간에서 지수처럼 행동” 한다는 가정 위에서 작동 (piecewise exponential approximation).
4.3 교훈 3 — 이론과 실무의 교차
McCullagh-Nelder 의 두 연습은 순수 이론 (Sukhatme) 과 순수 실무 (임상시험 설계) 의 극단을 병치한다. 좋은 통계학자는 양쪽 모두 에 편안해야 한다.
- 13.1 만 잘하면: 이론적 엄밀성 부족, 새 방법 개발 못 함.
- 13.2 만 잘하면: 실무에서 길 잃음, 설계 편향에 무지.
5 Python 실전 — Sukhatme 정리 수치 검증
5.1 시뮬레이션 검증
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
np.random.seed(42)
n = 10
n_sim = 10000
Y_samples = np.zeros((n_sim, n))
for k in range(n_sim):
X = np.sort(np.random.exponential(scale=1.0, size=n))
Y_samples[k, 0] = n * X[0]
for i in range(1, n):
Y_samples[k, i] = (n - i) * (X[i] - X[i-1])
# 각 Y_i 의 분포 검증
print("각 Y_i 의 평균 (지수 이론값: 1):")
for i in range(n):
print(f" Y_{i+1}: 평균 = {Y_samples[:, i].mean():.3f}, 분산 = {Y_samples[:, i].var():.3f}")
# Kolmogorov-Smirnov 검정 (각 Y_i 가 Exp(1) 인지)
print("\n각 Y_i 의 Exp(1) 적합 K-S p-value:")
for i in range(n):
ks_stat, p_val = stats.kstest(Y_samples[:, i], 'expon')
print(f" Y_{i+1}: p = {p_val:.3f}")
# 쌍별 독립성 — 상관계수 행렬
print("\nY 성분 간 상관계수 (모두 0 근처여야 함):")
corr_matrix = np.corrcoef(Y_samples.T)
print(np.round(corr_matrix[:5, :5], 3)) # 처음 5x5 만기대 출력: - 모든 \(Y_i\) 평균 ≈ 1, 분산 ≈ 1. - K-S p-value 모두 0.05 이상 → Exp(1) 기각 불가. - 상관계수 행렬 대각 1, 비대각 0 근처.
5.2 시각 확인 — Q-Q 플롯
fig, axes = plt.subplots(2, 5, figsize=(15, 6))
for i in range(n):
ax = axes[i // 5, i % 5]
stats.probplot(Y_samples[:, i], dist='expon', plot=ax)
ax.set_title(f'$Y_{{{i+1}}}$')
plt.tight_layout()
plt.show()기대: 10 개 Q-Q 플롯 모두 직선에 가까움.
5.3 실제 데이터 활용 — Freireich 백혈병
실제 생존 분석 데이터에 Sukhatme 정리를 활용. 귀무 가설 “지수 분포” 검정:
t_placebo = [1, 1, 2, 2, 3, 4, 4, 5, 5, 8, 8, 8, 8, 11, 11, 12, 12, 15, 17, 22, 23]
X_sorted = np.sort(t_placebo)
n_obs = len(X_sorted)
# Y 계산
Y = np.zeros(n_obs)
Y[0] = n_obs * X_sorted[0]
for i in range(1, n_obs):
Y[i] = (n_obs - i) * (X_sorted[i] - X_sorted[i-1])
print(f"관측 Y 값: {Y}")
print(f"\n평균 = {Y.mean():.3f} (지수 하 이론: 람다의 역수)")
# 만약 데이터가 Exp(λ) 이면 λ̂ = 1/mean(X), 정규화 Y/λ̂ 가 Exp(1)
lambda_hat = 1 / X_sorted.mean()
Y_normalized = Y * lambda_hat
# K-S 검정 vs Exp(1)
ks_stat, p_val = stats.kstest(Y_normalized, 'expon')
print(f"\nK-S 검정 (Exp(1)): stat = {ks_stat:.3f}, p = {p_val:.3f}")기대: 위약군이 대체로 지수 분포에 적합하다면 p > 0.05. Freireich 위약군은 대략 그러함.
6 요약 — §13.7 의 두 메시지
6.1 메시지 1 — 설계가 분석의 절반이다
13.1 은 기술적 도구 없이도 통계적 사고의 깊이를 요구한다. 실패 정의·시간 원점·비준수 처리·위험 집합 구성 네 축의 선택이 결론을 좌우한다. “좋은 분석” = 좋은 Cox 적합 + 좋은 설계 선택.
6.2 메시지 2 — 지수 분포의 수학적 풍요
13.2 는 지수 분포의 메모리리스 성질이 순서 통계 분해로 이어지는 깊은 구조를 보인다. 이 구조가 포아송 과정과의 쌍대성, Cox 부분 우도, Nelson-Aalen 추정량 등 현대 생존 분석의 여러 도구의 뿌리.
두 메시지를 합치면: 생존 분석은 실무 지혜와 수학적 우아함이 동시에 요구되는 분야.
7 Ch.13 시리즈 완주 — 회고
이번 포스트가 Ch.13 의 마지막이다. 5 포스트 (12-1 ~ 12-5) 와 이 exercises 포스트 (12-6) 을 합해 McCullagh-Nelder Ch.13 의 모든 내용을 다뤘다.
7.1 전체 지도
| 파일 | 섹션 | 주제 |
|---|---|---|
| 12-1 | 개관 · §13.1-§13.3 압축 | Aitkin-Clayton 환원 + 생존/위험 함수 |
| 12-2 | §13.2 | 비례 가정의 기하와 검증 |
| 12-3 | §13.3 | 지수·Weibull·극치값 + 교대 추정 |
| 12-4 | §13.4 | Freireich 백혈병 완전 재현 |
| 12-5 | §13.5 | Cox 부분 우도 + Whitehead 환원 |
| 12-6 | §13.7 | 임상 설계 + Sukhatme 정리 |
7.2 핵심 기여
Ch.13 이 생존 분석 전 분야의 교과서적 입문 이기보다 GLM 관점에서의 재조명 을 제공한다는 점이 특별. Aitkin-Clayton 환원과 Whitehead 환원이 이 재조명의 핵심.
일반 Kleinbaum 스타일 생존 교재와 McCullagh-Nelder Ch.13 을 함께 읽으면 임상 · 수학 · 계산 세 각도에서 조망 가능.
8 관련 주제
Ch.13 전체 시리즈
- Models for Survival Data — 개관 (McCullagh Ch.13)
- Proportional-Hazards Models (McCullagh §13.2)
- Parametric Survival (McCullagh §13.3)
- Leukaemia Remission Example (McCullagh §13.4)
- Cox’s Proportional-Hazards Model (McCullagh §13.5)
관련 개념 — 13.1 설계 관점
- 생존 분석 개요 — Kleinbaum 기반
- Model Checking (McCullagh Ch.12) — 설계 선택의 견고성 진단
- A/B 테스트와 인과 추론 — ITT vs PP 정신 공유
관련 개념 — 13.2 지수 순서 통계
방법론 참고
- Sukhatme, P. V. (1937). “Tests of significance for samples of the chi-square population with two degrees of freedom.” Ann. Eugenics 8: 52-56.
- Rényi, A. (1953). “On the theory of order statistics.” Acta Math. Hungar. 4: 191-231.
- Andersen, P. K. & Gill, R. D. (1982). “Cox’s regression model for counting processes.” Ann. Statist. 10: 1100-1120.
Ch.14 시작 (다음 주제)
- Components of Dispersion — 개관 (McCullagh Ch.14) — 계층적 데이터의 분산 성분