Cox Proportional Hazards 와 Weibull PH

Woodward Ch.11.6~11.7 — Cox PH Model & Weibull PH

Cox PH 모형의 핵심 — partial likelihood 의 발상, ties handling (Breslow·Efron·Exact), HR 의 해석 — 을 추상 → 일상어 → 반사실 3 단계 직관으로 풀어낸다. Weibull PH 와 Cox PH 의 비교, 두 모형의 결과 일치성, 그리고 임상·실험 분석 활용을 함께 다룬다.

Experimentation
Modeling
저자

Kwangmin Kim

공개

2026년 05월 08일

1 Cox PH — 반모수적 PH 모형

정의: Cox PH Model

\[h(t \mid X) = h_0(t) \cdot \exp(\beta^T X)\]

  • \(h_0(t)\): 비모수 baseline hazard — 형태 가정 X.
  • \(\exp(\beta_j)\): \(X_j\) 1 단위 증가당 HR.

핵심 차별점: Parametric PH 와 달리 \(h_0(t)\) 의 형태를 가정하지 않음 (Cox, 1972; Woodward, 2014, Ch.11.6).

1.1 Cox 의 천재성 — Partial Likelihood

정의: Partial Likelihood

각 사건 시점 \(t_i\) 의 risk set \(R(t_i) = \{j : T_j \ge t_i\}\) 에서 사건이 개인 \(i\) 에서 발생할 조건부 확률:

\[L_i(\beta) = \frac{\exp(\beta^T X_i)}{\sum_{j \in R(t_i)} \exp(\beta^T X_j)}\]

부분 가능도: \[L(\beta) = \prod_{i: \delta_i=1} L_i(\beta)\]

(censored 자는 likelihood 에 기여 안 함, 단 risk set 에는 포함).

1.2 직관 — 왜 “Partial”

직관 3 단계: 사건 순위만 사용
  • 추상 정의: \(h_0(t)\) 가 분자·분모 모두에 등장 → 약분되어 사라짐. \(\beta\) 가 partial likelihood 에 식별 가능.
  • 일상어 비유: 경마에서 우승마 식별 — 각 말의 절대 속도 모르고 순위만 알아도 평균적으로 빠른 말 추정 가능.
  • 반사실 시나리오: 만약 full likelihood 사용하려면 \(h_0(t)\) 의 함수 형태 가정 필요. Partial likelihood 가 이 부담 회피.

핵심 통찰: 사건 시점의 정확한 값은 무시, 순위만 사용. 그래도 \(\beta\) 의 정확한 추정 가능 — Cox 의 천재성.

1.3 Partial Likelihood 의 도출

직관: 시점 \(t_i\) 의 risk set 에서 누가 사건을 겪는지의 multinomial 분포.

각 risk set 의 사건 발생 확률: \[P(\text{사건 in } i \mid \text{event at } t_i, R(t_i)) = \frac{h(t_i \mid X_i)}{\sum_{j \in R(t_i)} h(t_i \mid X_j)} = \frac{\exp(\beta^T X_i)}{\sum_{j \in R(t_i)} \exp(\beta^T X_j)}\]

\(h_0(t_i)\) 가 분자·분모에서 약분 → \(\beta\) 만 남음.

직관: 약분의 본질
  • 추상 정의: PH 가정의 분리 (\(h = h_0 \cdot e^{\beta X}\)) 가 baseline 의 약분을 가능하게 함.
  • 일상어 비유: 분자·분모에 같은 항이 있으면 약분 — 최종 식이 더 단순.
  • 반사실 시나리오: 만약 PH 가 깨지면 (\(h_0\) 가 X 에 의존) 약분 안 됨 → partial likelihood 정의 안 됨.

1.4 MLE — Newton-Raphson

정의: \(\hat\beta\) 의 추정

Score function: \[U(\beta) = \frac{\partial \log L}{\partial \beta}\]

Information matrix: \[I(\beta) = -\frac{\partial^2 \log L}{\partial \beta \partial \beta^T}\]

Newton-Raphson: \[\beta^{(k+1)} = \beta^{(k)} + I^{-1}(\beta^{(k)}) U(\beta^{(k)})\]

수렴 후 \(\hat\beta\), asymptotic variance \(\hat{\text{Var}}(\hat\beta) = I^{-1}(\hat\beta)\).

2 11.6.1 Ties Handling

같은 시점에 여러 사건 발생 시 partial likelihood 의 정의가 모호.

가정 위반: Continuous Time 가정

Cox 의 partial likelihood 는 연속 시간 가정 — 같은 시점 사건 0 가정. 실제 자료는 종종 ties (예: 같은 날 사망) 발생.

2.1 3 가지 처리 방법

정의: Ties 의 3 가지 근사

Breslow (default 다수 SW): \[L_i(\beta) = \frac{\exp(\beta^T \sum_{i \in D_t} X_i)}{\left(\sum_{j \in R(t)} \exp(\beta^T X_j)\right)^{d_t}}\]

Efron (정확 근사): 사건 그룹 안에서 각 사건 별로 risk set 갱신.

Exact: 모든 가능한 사건 순위의 합산 — 계산 부담 ↑.

2.2 3 방법의 비교

직관 3 단계: Ties 의 처리 분업
  • Breslow: 빠르지만 ties 가 많으면 부정확.
  • Efron: 빠르고 Breslow 보다 정확. 일반적 default.
  • Exact: 가장 정확. 단 사건 그룹이 큰 경우 계산 부담.

3 단계 직관:

  • 추상 정의: 세 방법 모두 partial likelihood 의 근사. 차이는 정확도 vs 계산 비용.
  • 일상어 비유: 평균 계산의 표준 vs 가중 vs exact. 자료 크기에 따라 trade-off.
  • 반사실 시나리오: 사건 동률 (5 명 같은 날 사망) 이 흔한 자료에서는 Efron 또는 Exact. 동률 거의 없으면 (continuous 시간 측정) Breslow OK.

2.3 Ties 가 흔한 자료의 예

자료 Ties 빈도 권장
임상 시험 (일별 보고) 흔함 Efron
인구 통계 (연 단위) 매우 흔함 Efron 또는 Pooled Logistic
정확 시점 측정 (initiation, exit time) 드뭄 Breslow OK

3 11.7 Weibull PH — Cox 의 모수적 대안

정의: Weibull PH (재확인)

\[h(t \mid X) = \lambda_0 \gamma t^{\gamma-1} \exp(\beta^T X)\]

Cox 와의 차이: \(h_0(t) = \lambda_0 \gamma t^{\gamma-1}\) 가 명시적 모수 형태.

3.1 Weibull vs Cox — 자료 적합 비교

직관 3 단계: 두 모형의 검증
  • 추상 정의: 두 모형의 \(\hat\beta\) 가 거의 동일하면 Weibull 가정 충족 (가능). 큰 차이면 Weibull 부적합.
  • 일상어 비유: 두 측정 도구의 결과 비교 — 일치하면 측정 신뢰성 ↑.
  • 반사실 시나리오: Cox 가 robust default — Weibull 결과를 검증하는 reference.

예시: - Cox 의 \(\hat\beta_{\text{smoke}} = 0.71\). - Weibull PH 의 \(\hat\beta_{\text{smoke}} = 0.69\). - 차이 작음 → Weibull 가정 OK.

만약 차이 크면: - \(\log(-\log \hat S(t))\) vs \(\log t\) plot 이 곡선 → Weibull 부적합. - Cox 의 추정이 정직.

3.2 실험 분석 — Cox PH 의 표준성

직관: 임상·실험에서 Cox 가 default 인 이유
  • 추상 정의: PH 가정만 충족하면 분포 무관 — 분포 misspecification 위험 회피.
  • 일상어 비유: 융통성 있는 도구 — 다양한 자료 형태에 적용 가능.
  • 반사실 시나리오: A/B 테스트의 retention 이 Weibull 인지 log-logistic 인지 미지 → Cox 가 안전.

실무 선택 기준: - 분포 미지 + 외삽 불필요 → Cox PH. - 분포 검증 + 외삽 필요 → Weibull PH. - 매우 짧은 추적 + 일정 hazard → Exponential PH.

4 HR 의 임상 해석

사례: HR 의 다양한 시나리오
시나리오 HR 해석
흡연-폐암 10 ~ 30 흡연자 hazard 가 비흡연자의 10~30 배
Statin-CV 사망 0.7 Statin 사용자 hazard 가 30% 감소
BP 1 mmHg ↑ 1.02 1 mmHg ↑ 당 hazard 2% ↑

3 단계 직관:

  • 추상 정의: HR 1.0 = 효과 없음. > 1 = 위험 ↑, < 1 = 보호.
  • 일상어 비유: HR 2.0 = “처치군이 대조군보다 2 배 빨리 사건 발생” — 시간 차원 포함.
  • 반사실 시나리오: HR ≠ RR ≠ OR — 시간 차원 + 결과 빈도에 따라 의미 다름.

5 Cox PH 의 시간 의존 공변량

정의: Time-varying Covariate

\(X(t)\) — 시간 따라 변하는 변수.

\[h(t \mid X(t)) = h_0(t) \exp(\beta^T X(t))\]

예시: - 흡연 상태 (시간에 따라 금연·재흡연). - 약 복용량의 시간 변화. - A/B 테스트의 노출 강도 변화.

직관 3 단계: Time-varying 의 활용
  • 추상 정의: 사건 시점의 covariate 값을 사용 — 사건 발생 메커니즘과 정렬.
  • 일상어 비유: GPS 의 실시간 위치 — 출발 위치만 보면 부정확.
  • 반사실 시나리오: Baseline 만 사용하면 contamination (B6 의 경우구피임약 → IUD 전환) 못 잡음.

구현: Long-format 자료 + Cox 모형. 각 사건 시점의 covariate 값으로 risk set 평가.

6 모형 진단 — 미리 보기

PH 가정 검증 도구는 H-WOO11-6 에서 본격. 핵심: - Schoenfeld residual: 시간 vs 잔차 plot. - \(\log(-\log S(t))\) vs \(\log t\): 두 군 비교. - Time-interaction test: \(\beta(t) = \beta_0 + \beta_1 t\) 가설 검정.

7 코드 예시 — Cox PH

import numpy as np
import pandas as pd
from lifelines import CoxPHFitter, WeibullAFTFitter

np.random.seed(42)
n = 500

# 가상 자료
df = pd.DataFrame({
    "smoke": np.random.binomial(1, 0.4, n),
    "age": np.random.normal(60, 10, n),
    "sex": np.random.binomial(1, 0.5, n),
})

# 진성: smoke HR=2, age 1 살당 HR=1.05
true_hazard_factor = np.exp(0.7 * df["smoke"] + 0.05 * (df["age"] - 60))
true_T = np.random.exponential(scale=1.0/(0.05 * true_hazard_factor))
C = np.random.uniform(0, 10, n)
df["T"] = np.minimum(true_T, C)
df["event"] = (true_T <= C).astype(int)

# Cox PH
cph = CoxPHFitter()
cph.fit(df, duration_col="T", event_col="event", formula="smoke + age + sex")
print(cph.summary)

# HR
print("\nCox HR:")
for var in ["smoke", "age", "sex"]:
    HR = np.exp(cph.params_[var])
    lo, hi = np.exp(cph.confidence_intervals_.loc[var])
    print(f"  {var}: HR = {HR:.2f} ({lo:.2f}, {hi:.2f})")

# Weibull PH 비교
waft = WeibullAFTFitter()
waft.fit(df, duration_col="T", event_col="event", formula="smoke + age + sex")
print("\nWeibull AFT log-time effects (negate for PH):")
print(waft.summary)

해석: Cox 와 Weibull 의 결과 비교가 가정 검증.

8 A/B 테스트의 Cox PH

# A/B 테스트의 retention 분석
df["treatment"] = np.random.binomial(1, 0.5, n)
df["pre_engagement"] = np.random.normal(0, 1, n)

# 진성: treatment 가 churn HR 0.8 (보호)
hazard_factor = np.exp(-0.22 * df["treatment"] + 0.3 * df["pre_engagement"])
df["tenure"] = np.random.exponential(scale=1.0/(0.005 * hazard_factor))
df["churned"] = (df["tenure"] <= 365).astype(int)
df["tenure"] = np.minimum(df["tenure"], 365)

cph = CoxPHFitter()
cph.fit(df, duration_col="tenure", event_col="churned",
        formula="treatment + pre_engagement")

HR_treat = np.exp(cph.params_["treatment"])
print(f"Treatment HR: {HR_treat:.3f} (< 1 → retention 향상)")

해석: HR < 1 → treatment 가 churn 을 줄임. 임상 직관과 일치.

9 Frailty Models — Random Effect Cox

정의: Frailty Model

같은 cluster (가족·병원·연구) 의 individual 간 상관 처리.

\[h(t \mid X, u) = u \cdot h_0(t) \exp(\beta^T X)\]

\(u\) = frailty (random effect). 흔히 \(u \sim \text{Gamma}\) 또는 \(\log u \sim N\).

직관 3 단계: Frailty 의 활용
  • 추상 정의: 미관측 heterogeneity 모형. Cluster correlated 자료의 표준.
  • 일상어 비유: 가족별 유전 요인 — 같은 가족의 구성원이 비슷한 위험.
  • 반사실 시나리오: Cluster 무시 시 SE 부정확. Frailty 가 정직.

활용: - Family studies. - Multi-center 임상 시험. - Recurrent events (한 사람의 다중 사건).

10 Q&A — Cox PH 의 흔한 오해

Q1: Cox 의 baseline 이 모수 없으면 예측 불가?

A: 아니다. Breslow 추정량으로 \(\hat S_0(t)\) 산출 후 예측.

3 단계 직관:

  • 추상 정의: \(\hat S_0(t)\) = Breslow estimator (NA 의 일반화).
  • 일상어 비유: 자유 곡선의 적합 후 추출.
  • 반사실 시나리오: Cox 가 baseline 추정 가능 → 예측 가능. 단 외삽 불가.
Q2: PH 위반 시 무조건 다른 모형?

A: 아니다. 임상 의의 평가 + 기간별 분석.

3 단계 직관:

  • 추상 정의: 위반의 정도 + 임상 의의 결정.
  • 일상어 비유: 자동차 정렬 미세 위반 — 운전 가능 vs 큰 위반 — 정비 필요.
  • 반사실 시나리오: 작은 위반 시 Cox 그대로. 큰 위반 시 stratified 또는 시간 분할.

11 결론

Cox PH 는 partial likelihood 의 천재성 + 비모수 baseline 으로 robust default 가 됨. Ties handling 은 Efron 표준. Weibull PH 와의 결과 비교가 가정 검증의 1 차 도구. Time-varying covariate 으로 contamination 처리 가능. Frailty 모형이 cluster·recurrent events 의 일반화.

다음 글 (H-WOO11-6) 에서 PH 가정의 진단 도구를 본다.

12 관련 주제

Statistics 크로스링크

Phase B 크로스링크

Subscribe

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