AFT와 Cure 모델로 읽는 생존시간과 장기 생존 집단
비비례 위험과 장기 생존자가 있는 생존 데이터를 AFT와 Cure 모델로 분석하는 방법, 진단 기준, 구현 예시를 정리한다.
2026-08-14 · 최초 발행 2024-04-29
위험비로 설명하기 어려운 생존 데이터를 다루는 법
임상·리스크·신뢰성 데이터에는 비비례 위험이 나타나고, 장기 생존자가 별도 집단처럼 보이는 경우도 많다. 이때 Accelerated Failure Time(AFT) 모델과 Cure 모델은 위험비 가정에만 의존하지 않고 시간 척도와 치유 집단을 직접 모델링한다.
AFT는 사건까지 걸리는 시간이 공변량에 따라 어떻게 늘거나 줄어드는지에 초점을 둔다. Cure 모델은 사건이 발생할 가능성이 있는 집단과 장기 생존 집단을 분리한다. 두 접근은 검열 구조, 분포 적합성, 추적 기간을 함께 확인해야 의미 있는 결과로 이어진다.
시간비로 공변량 효과를 해석하는 AFT
AFT는 로그 생존시간을 공변량의 선형결합과 오차항으로 표현하는 모수적 생존 모형이다.
log(T) = Xβ + σW
오차항 W의 분포로는 Extreme Value(Weibull), Normal(Log-normal), Logistic(Log-logistic) 등을 선택할 수 있다.
공변량 효과는 시간비(Time Ratio, TR)인 exp(β)로 읽는다. TR이 1보다 크면 사건 발생까지 시간이 늘어나는 가속 효과를, 1보다 작으면 시간 단축 효과를 뜻한다. 비비례 위험이 문제가 되는 상황에서도 시간 중심으로 설명할 수 있다는 점이 특징이다.
분포 선택에는 민감하다. Weibull, Log-normal, Log-logistic, Generalized Gamma를 후보로 두고 두-세 분포를 교차 검증할 수 있다. 로그시간 QQ-plot, Cox–Snell 잔차, AIC/BIC, 시뮬레이티드 수명곡선과 KM 곡선 비교가 진단에 쓰인다.
최대우도로 추정하며, 수렴이 불안정하면 공변량 스케일링·정규화를 검토한다. 비선형성은 로그시간 기준 스플라인으로 처리할 수 있다.
장기 생존 집단을 분리하는 Cure 모델
Cure 모델은 모집단을 사건 발생 가능 집단인 감수성 집단과 장기 생존 또는 치유 집단의 혼합으로 본다. 혼합형 모델은 다음과 같이 쓸 수 있다.
S(t|X) = π(X) + [1 − π(X)] Su(t|X)
비혼합형(Non-mixture) 모델도 존재한다. 일반적으로 발생확률인 incidence π는 로지스틱 회귀로, 감수성 집단의 지연시간인 latency는 AFT 또는 PH 모델로 다룬다. 추정에는 EM 알고리즘이나 최대우도법을 활용한다.
Cure 모델은 치유율 π(X)과 감수성 집단의 지연시간을 나눠 해석할 수 있다. 정책 타깃팅 변수를 식별하기에 유리하지만, 장기 추적 데이터와 사건 포화가 전제되어야 한다. EM 알고리즘은 초기값에 민감하며 치유율 경계해가 0 또는 1에 가까워질 때 패널티·정규화를 적용할 수 있다.
검열 구조와 적합성 진단을 먼저 확인한다
AFT와 Cure 모델 모두 우측 검열이 우세한 상황을 가정한다. 왼측 검열이나 간격 검열이 있다면 선택한 분포에 맞는 적분형 우도를 반영해야 한다.
입력은 생존데이터 time, event와 임상·제품·행동 로그 같은 공변량이다. EDA와 결측·이상치 처리를 거친 뒤 검열 구조를 확인하고 후보 분포를 점검한다. 산출물은 시간비, 치유율, 예측 생존함수, 정책 변수 중요도가 된다.
분포 적합이 좋지 않다면 Generalized Gamma나 스플라인-AFT를 대안으로 검토한다. 치유율을 식별하기 어렵다면 추적기간을 연장하거나 외부 생존정보(링크드 데이터)를 결합할 수 있다. 수렴 실패에는 변수 표준화, 초기값 다중 시도, L2 패널티 도입이 대응 수단이 된다.
AFT, Cox PH, Cure 모델의 선택 기준
| 모델 | 성능(추정/예측) | 확장성 | 일관성(가정 민감도) | 안정성(수렴/수치) | 운영 편의 |
|---|---|---|---|---|---|
| AFT | 비비례 위험 상황에서 강점, 시간비 해석 우수 | 고차원 시 정규화·스플라인 필요 | 분포 가정에 민감 | 우수하나 분포 불일치 시 불안정 | 해석/커뮤니케이션 용이 |
| Cox PH | 분포 자유도 높음, 기준선 위험 비모수 | 고차원 페널티(PHNET/GLMNET) 용이 | 비비례 위험 위반 시 편향 | 대체로 안정 | 위험비 해석 직관적 |
| Cure(Mixture) | 장기 생존 추정 가능, 정책 타깃팅 유리 | EM 확장 시 병렬화 필요 | 치유 가정·추적기간 민감 | 초기값·경계해 주의 | 치유율과 지연 분리 해석 강점 |
Weibull-AFT로 시간비 추정하기
Python 3.9+와 lifelines 0.27+ 환경에서 lifelines의 내장 rossi 데이터(week, arrest)를 이용하는 예시다.
# pip install lifelines
from lifelines import WeibullAFTFitter
from lifelines.datasets import load_rossi
df = load_rossi()
aft = WeibullAFTFitter()
aft.fit(df, duration_col="week", event_col="arrest")
print(aft.summary) # 'lambda_'의 exp(coef) 열: 공변량의 시간비(Time Ratio)
# 예측: 개별 중앙 생존시간
pred_med = aft.predict_median(df.head())
print(pred_med.head())
# 분포 적합 진단: 예측 생존함수 vs KM 비교 (샘플)
sub = df.sample(200, random_state=42)
sf_pred = aft.predict_survival_function(sub).mean(axis=1)
print(sf_pred.head())
exp(coef)가 1보다 크면 사건까지 시간이 길어지고, 1보다 작으면 짧아진다. Log-normal, Log-logistic 같은 대안 분포를 교차 검증하고 잔차와 AIC/BIC를 비교해 분포 적합성을 확인한다.
Mixture Cure와 AFT latency를 함께 추정하기
R 4.2+, smcure 2.0+, survival 환경에서 치유 집단을 포함한 모의 데이터를 사용한다.
# install.packages(c("smcure", "survival"))
library(smcure); library(survival)
set.seed(123)
n <- 800
X <- rbinom(n, 1, 0.5)
pi <- plogis(-1 + 1.2 * X) # cure 확률
cure <- rbinom(n, 1, pi)
beta <- log(0.7) # latency AFT 시간비 < 1
sigma <- 0.6
Tlat <- exp(2 + beta * X + sigma * rnorm(n)) # Log-normal
C <- rexp(n, rate = 0.02) # 우측 검열
time <- pmin(Tlat, C)
event <- as.integer((Tlat <= C) & (cure == 0)) # 치유자는 사건 없음
fit <- smcure(Surv(time, event) ~ X, cureform = ~ X, model = "aft", dist = "lognormal")
summary(fit)
# 해석:
# - cureform의 로지스틱 계수: X가 cure 확률에 미치는 영향
# - aft 부분의 계수: exp(beta) = 시간비(Time Ratio)
EM 초기값을 control=list(init=...)로 여러 번 시도하면 수렴 안정화에 도움이 된다. 치유율 신뢰구간 평가는 부트스트랩으로 수행할 수 있다.
임상·고객 유지·신뢰성 분석에서의 해석
항암 임상에서는 면역항암제 등 장기 생존 꼬리가 존재하는 치료제를 평가할 때 Cure 모델로 치유율과 지연시간을 나눠 추정할 수 있다. 환자 선별과 추적 전략 수립에도 연결된다.
고객 이탈 분석에서는 장기 유지 고객을 사실상 치유 집단으로 두고, 해당 비율과 잔존 고객의 유지기간을 분리해 프로모션 타깃팅을 최적화할 수 있다.
산업 신뢰성 분석에서는 초기 고장 뒤 장기 무고장 집단이 존재하는 장비에 AFT의 시간비 해석과 Cure 모델의 장기 무고장 비율 추정을 함께 적용할 수 있다.
비비례 위험 상황에서는 예측오차(MAE, IBS)를 10~25% 개선할 수 있으며, 치유율을 추정하면 장기 생존 확률을 직접 산출할 수 있다. 시간 중심의 해석은 임상·운영 의사결정을 단순하게 만들고, 장기 생존자 전략을 별도로 설계할 여지를 제공한다.