1 서론 — 왜 이 예제가 중요한가
Freireich et al. (1963) 의 급성 백혈병 임상시험은 생존 분석에서 가장 많이 인용되는 벤치마크 데이터 중 하나다. 이유:
- 깨끗한 무작위 설계: 21 명 vs 21 명, 균형. 외부 교란 최소.
- 극적 치료 효과: 6-mercaptopurine (6-MP) 이 완화 기간을 눈에 띄게 연장 — 통계 분석이 실제 의학사에 영향.
- 비대칭 중도절단: 실험군에만 중도절단 존재 (위약군은 모두 재발). 생존 분석의 중도절단 처리 필요성을 명확히 보여 줌.
- 다양한 방법론 비교의 표준: Gehan (1965) 의 Wilcoxon 유사 검정, Aitkin-Clayton (1980) 의 모수적 GLM, Whitehead (1980) 의 Cox 비모수적 — 모두 같은 데이터 로 비교 가능.
§13.4 는 이 데이터에 §13.3 의 Aitkin-Clayton Poisson GLM 환원 을 적용해 지수·Weibull 모형을 적합하고, Cox 비모수 결과와 비교한다. 숫자 하나하나가 기록되어 있어 재현·학습용으로 이상적.
이 포스트는 데이터의 임상적 맥락부터 모든 숫자의 유도, 프로파일 이탈도 대칭성 검사, 네 방법의 비교표 해석까지를 단계별로 풀어낸다.
2 데이터와 임상 배경
2.1 Freireich 연구의 맥락
시대: 1962년 임상시험. 당시 급성 림프구성 백혈병 (acute lymphoblastic leukemia, ALL) 은 소아 환자에서 치명적. 평균 생존 1 년 미만.
약물: 6-mercaptopurine (6-MP) — 당시 새로 개발된 항대사 화학요법제. 이전 분석에서 단독 투여로 완화 유도 가능성 시사.
연구 설계: - 대상: 42 명의 소아·청소년 ALL 환자, 기존 치료 (prednisone + methotrexate) 로 완화 유도에 성공. - 무작위 배정: 완화 상태에서 21 명 6-MP 유지요법 vs 21 명 위약. - 일차 평가 변수: 재발까지의 주 수 (weeks to relapse). - 특이사항: 6-MP 군에서 연구 종료 시점까지 재발하지 않은 환자 존재 → 중도절단.
2.2 Table 13.1 — 원시 데이터
| 완화 시간 (주), 괄호 = 중도절단 | |
|---|---|
| Sample 1 (6-MP) | (6), 6, 6, 6, 7, (9), (10), 10, (11), 13, 16, (17), (19), (20), 22, 23, (25), (32), (32), (34), (35) |
| Sample 2 (위약) | 1, 1, 2, 2, 3, 4, 4, 5, 5, 8, 8, 8, 8, 11, 11, 12, 12, 15, 17, 22, 23 |
관찰: - 6-MP 군의 가장 긴 관측치 35 주 는 중도절단. 실제 재발 시점은 35 주 이후 (알 수 없음). - 위약군은 모두 완전 관측. 최대 23 주. - 위약군의 중앙값 \(\approx 8\) 주, 6-MP 군은 중앙값 계산에도 중도절단 영향 고려 필요.
2.3 눈으로 본 치료 효과
단순 평균 비교: 6-MP 군 평균 관측 시간 \(\approx 17.1\) 주 vs 위약 군 \(\approx 8.7\) 주 — 약 2 배 차이. 그러나 이는 6-MP 군의 중도절단 된 장기 생존자들을 “평균 이하” 로 처리 한 것. 실제 효과는 더 크다.
Gehan (1965) 는 Wilcoxon 유사 검정으로 \(p < 0.005\) 를 보고. 치료 효과의 존재 는 명확. 크기의 정량화가 Aitkin-Clayton 의 공헌.
3 모형 설정
3.1 환원 구조 (§13.3 복습)
- 반응 변수: \(w_i \in \{0, 1\}\) (재발 = 1, 중도절단 = 0).
- 공변량: \(x_i\) = 군 지표 (0 = 6-MP, 1 = 위약).
- 분포: Poisson (pseudo).
- 링크: log.
- Offset: \(\log \Lambda(t_i)\) — 지수에서는 \(\log t_i\), Weibull 에서는 \(\alpha \log t_i\).
3.2 두 모형 비교
- 모형 1 (null): \(\log \mu_i = \beta_0 + \log \Lambda(t_i)\) — 모든 환자 같은 위험.
- 모형 S (sample): \(\log \mu_i = \beta_0 + \beta_1 x_i + \log \Lambda(t_i)\) — 군별 다른 위험.
\(\beta_1\) 검정이 곧 “6-MP 대 위약의 위험비 차이 검정”.
4 지수 분포 적합
4.1 Offset 설정
\(\Lambda(t) = \lambda t\), \(\log \Lambda(t_i) = \log \lambda + \log t_i\). \(\log \lambda\) 는 절편에 흡수 → 실질 offset \(\log t_i\).
4.2 두 모형의 이탈도
| 모형 | 이탈도 | d.f. |
|---|---|---|
| 1 (null) | 54.50 | 41 |
| S (group) | 38.02 | 40 |
이탈도 차이: \(54.50 - 38.02 = 16.48\) on 1 d.f. \(\chi_1^2(0.001) = 10.83\) 보다 훨씬 크므로 \(p < 10^{-4}\) — 군 효과 매우 유의.
4.3 군 효과 추정
\(\widehat\beta_1 \approx 1.53\) (Table 13.2, 지수 모형 줄).
해석: 위약군의 위험이 6-MP 군의 \(e^{1.53} = 4.62\) 배. 즉 6-MP 가 재발 위험을 약 1/5 로 감소.
SE \(\approx 0.40\), 95% CI \(\beta_1 \in (0.75, 2.31)\), HR CI \((2.12, 10.08)\).
4.4 지수 모형의 한계
이탈도 38.02 / 40 d.f. 는 기준치 40 과 거의 같다 — 포화 모형 대비 적합 양호. 그러나 이 기준은 포아송 근사에 대한 것, 실제 분포 적절성은 별개 문제.
Weibull 로의 확장이 필요한지 확인하려면 \(\alpha\) 자유 추정 후 비교.
5 Weibull 분포 적합
5.1 교대 추정 절차 실행
§13.3 의 알고리즘: 1. \(\alpha = 1\) 초기화 (지수). 2. \(\alpha\) 고정 → offset \(\alpha \log t_i\) 로 GLM 적합 → \(\widehat\beta^{(k)}\). 3. \(\beta\) 고정 → \(\alpha\) 점수 방정식 (13.2) 풀이. 4. 수렴까지 반복.
5.2 수렴 결과
\(\widehat\alpha = 1.366\), 이탈도 34.13 on 39 d.f.
\(\widehat\alpha > 1\) 의 해석: 위험이 시간에 따라 증가 — 6-MP 군이든 위약 군이든, 완화 후 시간이 지날수록 재발 위험 상승. 생물학적으로 타당 (장기 완화 후에도 누적된 증가 위험).
5.3 지수 대 Weibull 검정
이탈도 감소: \(38.02 - 34.13 = 3.89\) on 1 d.f. (Weibull 이 지수보다 \(\alpha\) 하나 더 많음).
\(\chi_1^2(0.05) = 3.84\) — 한계 유의. Weibull 이 미세하게 나음.
\(p\)-value: \[p = P(\chi_1^2 > 3.89) \approx 0.049.\]
경계에 있지만 통계적 판단으로는 Weibull 채택이 합리적.
5.4 두 군의 \(\alpha\) 개별 추정
\(\alpha\) 가 두 군에서 다를 수도 있다. 개별 적합:
\[\widehat\alpha_1 = 1.35 \text{ (6-MP)}, \qquad \widehat\alpha_2 = 1.37 \text{ (placebo)}.\]
거의 일치 — 공통 \(\alpha\) 가정 정당화. 따라서 \(\widehat\alpha = 1.366\) 의 단일 추정치 사용.
Weibull 의 \(\alpha\) 는 “위험 증가율의 속도” 를 결정한다. \(\alpha_1 \neq \alpha_2\) 이면 두 군의 생존 곡선 모양 이 다르다는 뜻 — 비례 위험 가정과 잘 연결되지 않는다.
\(\widehat\alpha_1 \approx \widehat\alpha_2\) 는 “두 군의 생존 모양 은 같고 (log-log 평행) 수평 이동만 있다” 는 §13.2 의 비례 가정과 양립. 6-MP 가 위험의 크기 를 낮추지 시간 형태 를 바꾸지 않는다는 의미.
이 관찰이 모형 선택의 정합성 을 확인해 준다 — 분석자가 명시하지 않은 가정이 데이터에서 만족됨.
5.5 치료 효과 추정 — Weibull 하
\(\widehat\beta_1 = 1.731\) (Weibull 모형). 지수의 1.53 보다 높다.
HR \(= e^{1.731} = 5.65\) — 위약군 위험이 6-MP 군의 5.65 배.
5.6 SE 계산 — Bordering 기법
\(\widehat\beta_1\) 의 SE 는 두 가지 방식으로 계산된다.
방식 1 — \(\alpha\) 고정 시 SE: \(\alpha = 1.366\) 을 알려진 상수 로 취급하고 GLM 을 적합한 뒤 \(\text{SE}(\widehat\beta_1) = 0.398\).
방식 2 — \(\alpha\) 동시 추정 시 SE: \(\alpha\) 도 미지 모수로 취급. \((\beta_0, \beta_1, \alpha)\) 에 대한 확장 Fisher 정보 행렬 을 만들고 역행렬의 \(\beta_1\) 대각 원소로 SE 계산.
5.7 Bordering 수식
지수 가족 로그 가능도의 관측 정보 행렬 구조:
\[ I = \begin{pmatrix} I_{\beta\beta} & I_{\beta\alpha} \\ I_{\alpha\beta} & I_{\alpha\alpha} \end{pmatrix}. \]
프로파일 정보 (Schur 보수):
\[ I_{\beta\beta | \alpha} = I_{\beta\beta} - I_{\beta\alpha} I_{\alpha\alpha}^{-1} I_{\alpha\beta}. \]
\(\alpha\) 가 자유 모수이면 \(\beta\) 의 실제 정보는 \(I_{\beta\beta | \alpha}\) — 줄어든 정보. 따라서 SE 증가.
Aitkin-Clayton (1980) 의 계산:
\[\widehat\beta_1 = 1.73, \qquad \text{SE}(\widehat\beta_1) = 0.41 \text{ (bordered)}.\]
\(\alpha\) 고정 SE 0.398 에서 약 3% 증가 한 0.41. 이 증가분이 “\(\alpha\) 추정의 불확실성이 \(\beta_1\) 에 미치는 영향”.
\(I_{\beta\alpha}\) 항은 “\(\beta\) 와 \(\alpha\) 의 결합 정보” 를 나타낸다. 두 모수가 독립 정보 를 가지면 \(I_{\beta\alpha} = 0\) 이고 Schur 보수 없음. 정보 혼입 이 있으면 \(I_{\beta\alpha} \neq 0\) 이고 공제됨.
Weibull 에서 \(I_{\beta\alpha}\) 는 \(\partial^2 l / \partial\beta \partial\alpha\) 에서 나오는데, 구체적으로 \(\sum(\mu_i - w_i)\{x_i \log t_i\}\) 꼴. \(\alpha\) 추정에 \(\log t\) 가중 잔차 가 쓰이므로, \(\beta\) 추정과 약간 얽힌다.
Freireich 데이터에서 이 얽힘이 작다 — SE 증가 3%. 점근 직교성이 거의 성립.
5.8 프로파일 이탈도 검증
Wald SE 0.41 의 정당성을 확인하려면 프로파일 이탈도 곡선 을 그린다. \(\beta_1\) 을 고정 격자로 바꾸며 나머지 (\(\beta_0, \alpha\)) 를 최대 가능도로 적합해 얻는 이탈도 곡선.
McCullagh-Nelder 의 관찰: 곡선이 \(\widehat\beta_1 = 1.73\) 주변에서 거의 대칭. 아래쪽 (작은 \(\beta_1\)) 에서 약간 더 가파르지만 \(2 \times\) SE = 0.82 거리에서 비대칭 효과는 작다.
결론: Wald 근사 충분히 정당. 95% CI 를 \(1.73 \pm 1.96 \times 0.41\) 로 계산해도 프로파일 기반 CI 와 거의 같다.
5.9 95% 신뢰구간 — 로그 HR 과 HR
\[\log \text{HR} \in (0.93, 2.53).\]
\(\text{HR} \in (e^{0.93}, e^{2.53}) = (2.52, 12.6)\).
해석: 위약군 위험이 6-MP 군의 적어도 2.52 배, 최대 12.6 배. CI 가 넓지만 전체가 1 초과 — 치료 효과의 존재 는 확고하나 크기 는 불확실.
표본 크기 42 는 임상시험으로는 작다. 위약군 중앙 생존 \(\approx 8\) 주라 총 관측 재발 수 는 제한적. 정보량이 \(\beta_1\) 의 SE 0.41 을 낳는데, 이것이 로그 HR 단위에서는 “크지 않아” 보이지만 HR 로 지수 변환하면 \(e^{\pm 0.8}\) 배 범위 \(= (0.45, 2.25)\) — 왜곡 확대.
정리: 지수 변환이 구간 비대칭을 과장 한다. HR 3배와 HR 6배 사이에 임상 의미는 비슷하지만, 로그 스케일에서는 각각 \(\log 3 \approx 1.1\), \(\log 6 \approx 1.8\) 로 상당한 차이.
실무 권고: 로그 HR 에서 대칭 CI 를 보고하고 HR 로의 역변환은 해석용으로만 제시.
6 Cox 비모수 적합 — Whitehead (1980)
6.1 설정
Cox 모형 (§13.5): \(\lambda(t)\) 를 비모수로 두고 부분 우도만으로 \(\beta\) 추정.
\[L_P(\beta) = \prod_{j: w_j=1} \frac{e^{\beta^T x_j}}{\sum_{l \in R(t_j)} e^{\beta^T x_l}}.\]
6.2 동률 처리의 두 방식
Freireich 데이터에 동률 시점이 많다 (1, 1, 2, 2, …, 8, 8, 8, 8). 동률 처리 방법에 따라 부분 우도가 달라진다.
Peto (1972): 분자에 동률자의 공변량 합, 분모는 그대로.
Cox (1972): 동률자의 모든 순서를 고려한 정확 부분 우도 — 계산 비싸지만 정확.
Breslow (1974): 분자에 합, 분모 변경 없음 — 가장 단순, 큰 동률에서 편향.
6.3 결과
Whitehead (1980) 가 계산한 두 Cox 변종:
| 방법 | \(\widehat b_1\) | SE |
|---|---|---|
| Cox (Peto 동률) | 1.51 | 0.41 |
| Cox (Cox 동률) | 1.63 | 0.43 |
Peto 가 Cox 보다 약간 낮은 추정치. 이유: Peto 근사가 동률이 많을 때 \(\widehat\beta_1\) 을 과소추정 하는 경향.
6.4 Whitehead 의 교정
Whitehead 는 Sample 1 의 6 번 관측치가 원래 오타로 중도절단으로 표기 되었음을 밝혀내 수정. 수정된 결과가 Table 13.2 의 Cox 열.
7 Table 13.2 — 네 방법의 비교
| 모형 (동률 처리) | \(\widehat b_1\) | SE |
|---|---|---|
| Exponential | 1.53 | 0.40 |
| Weibull | 1.73 | 0.41 |
| Cox (Peto) | 1.51 | 0.41 |
| Cox (Cox) | 1.63 | 0.43 |
7.1 네 값의 관찰
추정치 범위: \(1.51 \sim 1.73\). 스프레드 \(= 0.22\). 평균 SE 0.41 의 약 0.5 배 이내.
SE 범위: \(0.40 \sim 0.43\). 거의 변화 없음. Cox 비모수가 Weibull 모수적보다 SE 증가가 미미 (0.41 → 0.41~0.43).
7.2 Efron (1977) · Oakes (1977) 의 이론적 설명
두 저자는 독립적으로 Cox 부분 우도의 점근 효율 이 참 모수적 우도의 효율에 매우 가깝다 는 것을 증명.
직관: \(\lambda(t)\) 의 형태 추정은 공변량 효과 \(\beta\) 추정과 점근적으로 직교 하다 (§12-1 에서 언급). \(\lambda(t)\) 를 비모수로 두고 포기해도 \(\beta\) 의 정보 손실이 크지 않다.
이 현상이 Cox 모형을 실무에서 지배적으로 쓰게 만들었다 — 분포 가정 없이도 모수적과 거의 같은 효율.
7.3 어느 값을 보고할 것인가
각 방법의 근거:
- 지수 (1.53): 가장 보수적. 지수 가정이 틀렸으면 편향.
- Weibull (1.73): 지수 가정 완화. 그러나 \(\alpha\) 가 모든 환자에 공통이라는 가정.
- Cox (Peto, 1.51): 가장 단순한 비모수. 동률이 많은 데이터에서 약간 과소.
- Cox (Cox, 1.63): 동률 정확 처리. 계산 비용 높지만 정확.
실무 권고: Cox (Breslow 또는 정확) 을 주 결과 로, 지수/Weibull 을 민감도 분석 으로 병기. 네 값이 거의 일치함으로써 결론의 강건성 확보.
8 Python 실전 — 모든 수치 재현
import numpy as np
import pandas as pd
import statsmodels.api as sm
# Table 13.1 — Freireich et al. (1963)
t1 = [6, 6, 6, 6, 7, 9, 10, 10, 11, 13, 16, 17, 19, 20, 22, 23, 25, 32, 32, 34, 35]
w1 = [0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0]
# McCullagh 표기: 괄호 안이 중도절단. 위의 w1은 (6) 포함 — 0 위치.
t2 = [1, 1, 2, 2, 3, 4, 4, 5, 5, 8, 8, 8, 8, 11, 11, 12, 12, 15, 17, 22, 23]
w2 = [1] * 21
t = np.array(t1 + t2)
w = np.array(w1 + w2)
group = np.array([0]*21 + [1]*21) # 0 = 6-MP, 1 = placebo
X = sm.add_constant(group.astype(float)[:, None])
# ===== 1. 지수 적합 =====
offset_exp = np.log(t)
# Null 모형 (절편만)
m_null = sm.GLM(w, np.ones((42, 1)), family=sm.families.Poisson(), offset=offset_exp).fit()
print(f"지수 Null: Deviance = {m_null.deviance:.2f} / {m_null.df_resid}")
# Sample 모형 (그룹 포함)
m_exp = sm.GLM(w, X, family=sm.families.Poisson(), offset=offset_exp).fit()
print(f"지수 S: Deviance = {m_exp.deviance:.2f} / {m_exp.df_resid}")
print(f" LRT (null vs S) = {m_null.deviance - m_exp.deviance:.2f}")
print(f" β₁ = {m_exp.params[1]:.3f} ± {m_exp.bse[1]:.3f}")
print(f" HR = {np.exp(m_exp.params[1]):.2f}")기대 출력:
지수 Null: Deviance = 54.50 / 41
지수 S: Deviance = 38.02 / 40
LRT (null vs S) = 16.48
β₁ = 1.527 ± 0.398
HR = 4.61
8.1 Weibull 교대 절차
def fit_weibull(t, w, X, tol=1e-5, max_iter=50):
alpha = 1.0
hist = [alpha]
for k in range(max_iter):
offset = alpha * np.log(t)
m = sm.GLM(w, X, family=sm.families.Poisson(), offset=offset).fit()
mu = m.fittedvalues
alpha_new = len(t) / np.sum((mu - w) * np.log(t))
hist.append(alpha_new)
if abs(alpha_new - alpha) < tol:
break
alpha = alpha_new
return m, alpha, hist
m_wei, alpha_hat, hist = fit_weibull(t, w, X)
n_d = int(w.sum())
dev_wei_corrected = m_wei.deviance - 2 * n_d * np.log(alpha_hat)
print(f"\nWeibull:")
print(f" α̂ = {alpha_hat:.4f} (수렴 이력: {[f'{a:.3f}' for a in hist[:5]]}...)")
print(f" 보정 Deviance = {dev_wei_corrected:.2f} / df {m_wei.df_resid - 1}")
print(f" β₁ = {m_wei.params[1]:.3f} ± {m_wei.bse[1]:.3f}")
print(f" (Note: 이 SE 는 α 고정 기준. Bordering SE 는 ≈ 0.41)")
print(f" HR = {np.exp(m_wei.params[1]):.2f}")
print(f"\n LRT (exp vs Weibull) = {m_exp.deviance - dev_wei_corrected:.2f}")8.2 두 군 별도 \(\alpha\) 추정
for g, name in [(0, '6-MP'), (1, 'Placebo')]:
mask = group == g
X_g = np.ones((mask.sum(), 1))
m_g, a_g, _ = fit_weibull(t[mask], w[mask], X_g)
print(f" {name}: α̂ = {a_g:.3f}")기대:
6-MP: α̂ = 1.35
Placebo: α̂ = 1.37
8.3 Bordering 방식 SE 계산
# Observed information matrix for (β₀, β₁, α)
# Likelihood: Weibull proportional hazards
# 수동 수치 미분으로 Hessian 계산
from scipy.optimize import approx_fprime
def neg_log_likelihood(params, t, w, X):
beta = params[:-1]
alpha = params[-1]
if alpha <= 0:
return np.inf
eta = X @ beta
mu = t**alpha * np.exp(eta)
# Weibull log likelihood kernel
ll = np.sum(w * (np.log(alpha) + (alpha - 1) * np.log(t) + eta) - mu)
return -ll
params_init = np.array([m_wei.params[0], m_wei.params[1], alpha_hat])
# 수치 Hessian
eps = 1e-5
n_params = len(params_init)
H = np.zeros((n_params, n_params))
for i in range(n_params):
grad_plus = approx_fprime(
params_init + eps * np.eye(n_params)[i],
neg_log_likelihood, eps, t, w, X
)
grad_minus = approx_fprime(
params_init - eps * np.eye(n_params)[i],
neg_log_likelihood, eps, t, w, X
)
H[i] = (grad_plus - grad_minus) / (2 * eps)
H = (H + H.T) / 2 # 대칭화
cov = np.linalg.inv(H)
bordered_SE_beta1 = np.sqrt(cov[1, 1])
print(f"\n Bordered SE(β₁) = {bordered_SE_beta1:.3f}")기대 출력: Bordered SE(β₁) ≈ 0.41 (Aitkin-Clayton 수치와 일치).
8.4 프로파일 이탈도 대칭 검사
import matplotlib.pyplot as plt
beta1_grid = np.linspace(0.9, 2.6, 25)
dev_profile = []
for b1 in beta1_grid:
# β₀, α 를 고정된 β₁ 에서 다시 최대화
# 간단화: Weibull 교대에서 β₁ 제약
from scipy.optimize import minimize
def obj(vars, b1):
b0, alpha = vars
return neg_log_likelihood(np.array([b0, b1, alpha]), t, w, X)
res = minimize(obj, [m_wei.params[0], alpha_hat], args=(b1,), method='L-BFGS-B',
bounds=[(None, None), (0.01, None)])
dev_profile.append(2 * res.fun)
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(beta1_grid, dev_profile, 'o-')
ax.axvline(m_wei.params[1], ls='--', color='red', label=f'β̂₁ = {m_wei.params[1]:.2f}')
ax.axhline(min(dev_profile) + 3.84, ls=':', color='gray', label='95% 경계')
# Wald 근사
ax.axvline(m_wei.params[1] - 1.96 * 0.41, ls=':', color='blue', alpha=0.5)
ax.axvline(m_wei.params[1] + 1.96 * 0.41, ls=':', color='blue', alpha=0.5, label='Wald 95% CI')
ax.set_xlabel(r'$\beta_1$'); ax.set_ylabel('profile deviance')
ax.set_title(r'프로파일 이탈도 — $\widehat\beta_1 = 1.73$ 주변 거의 대칭')
ax.legend(); plt.show()기대: 곡선이 대략 대칭, Wald CI 와 프로파일 CI 가 거의 일치.
8.5 Cox 비모수 적합 (lifelines)
from lifelines import CoxPHFitter
df = pd.DataFrame({'time': t, 'event': w, 'group': group})
cph = CoxPHFitter()
cph.fit(df, 'time', 'event')
cph.print_summary()
print(f"\nCox (Breslow 기본): β₁ = {cph.params_['group']:.3f} ± {cph.standard_errors_['group']:.3f}")기대 출력: Cox 추정치 약 1.51-1.63 범위, SE 0.41-0.43.
8.6 Table 13.2 재생성
results = pd.DataFrame({
'Model': ['Exponential', 'Weibull', 'Cox'],
'β₁': [m_exp.params[1], m_wei.params[1], cph.params_['group']],
'SE': [m_exp.bse[1], bordered_SE_beta1, cph.standard_errors_['group']],
'HR': [np.exp(m_exp.params[1]), np.exp(m_wei.params[1]), np.exp(cph.params_['group'])],
})
print(results.round(3))9 실무적 해석 — 임상 결론
통계적 결론 (위 네 방법 일치): - 6-MP 가 위약 대비 재발 위험을 약 5 배 감소. - 95% CI (HR): (2.52, 12.6) — 효과 크기는 큰 불확실성. - LRT \(p < 10^{-4}\): 효과 존재는 확고.
임상적 함의: - 신규 항대사 화학요법제가 유지 요법에 효과적임을 증명. - 비록 42 명의 작은 표본이었지만 HR 5 정도의 강한 효과이기에 검출 가능. - 이후 6-MP 는 ALL 표준 유지 요법 으로 편입.
방법론적 함의: - 중도절단 비대칭 (실험군에만) 상황에서 생존 분석의 필요성. - 모수적 (Weibull) 과 비모수적 (Cox) 결과 근접성 → 방법 선택의 강건성. - 임상시험 보고에서 여러 방법 병기 로 강건성 시현하는 관행의 근거.
10 요약
§13.4 의 핵심 교훈:
- Aitkin-Clayton 환원은 실제로 작동: pseudo-Poisson 이 정확히 재현.
- Weibull 이 지수 위에서 한계 개선 (\(\widehat\alpha = 1.366\), LRT 3.89): 위험 증가 포함.
- Bordering SE 가 필요하지만 영향 작음 (0.398 → 0.41).
- 프로파일 이탈도 거의 대칭 → Wald 근사 충분.
- 네 방법의 근접성 → 결론 강건.
Freireich 데이터는 생존 분석의 알파벳 연습 — 모든 방법을 적용해 비교해 볼 수 있는 이상적 학습 데이터. 실무에서 새 방법을 검증할 때 여전히 기준 데이터.
11 관련 주제
선행 지식
- Models for Survival Data — 개관 (McCullagh Ch.13)
- Proportional-Hazards Models (McCullagh §13.2)
- Parametric Survival — Aitkin-Clayton 환원 (McCullagh §13.3)
관련 개념
방법론 배경
- Freireich, E. J. et al. (1963). “The effect of 6-mercaptopurine on the duration of steroid-induced remissions in acute leukemia.” Blood 21: 699-716.
- Gehan, E. A. (1965). “A generalized Wilcoxon test for comparing arbitrarily singly-censored samples.” Biometrika 52: 203-223.
- Aitkin, M. & Clayton, D. (1980). “The fitting of exponential, Weibull and extreme value distributions to complex censored survival data using GLIM.” Appl. Statist. 29: 156-163.
후속 주제 — Ch.13 심화