Cox model과 시간가정
이 토픽을 마치면
Cox proportional hazards model의 hazard ratio를 시간·위험집합·공변량 구조와 연결할 수 있습니다. proportional hazards 가정을 진단하고, 가정이 어긋날 때 단일 hazard ratio를 자동으로 확정하지 않습니다.
hazard와 hazard ratio
hazard는 특정 시점 직전까지 사건이 발생하지 않은 단위가 그 시점에 사건을 경험하는 순간적 위험을 표현하는 개념입니다. Cox model은 baseline hazard와 공변량의 관계를 분리해 쓰는 semi-parametric 구조입니다. hazard ratio는 다른 조건이 같다는 모델 내 비교이며, 확률·위험 차이·생존율과 같은 값이 아닙니다.
CoxPHFitter 실행
from lifelines import CoxPHFitter
cph = CoxPHFitter()cph.fit(survival_df, duration_col="T", event_col="E")print(cph.hazard_ratios_)print(cph.confidence_intervals_)T는 관찰 시간, E는 사건 관찰 여부이며, covariate 열은 사전에 정의돼야 합니다. 이 API는 survival overlay에서 실행했으며 CoxPHFitter의 hazard ratio와 confidence interval 결과를 확인했습니다.
proportional hazards 가정
Cox model은 공변량의 hazard ratio가 시간에 따라 일정하다는 가정을 포함합니다. 시간이 지나며 효과가 바뀌면 하나의 hazard ratio가 전체 추적 기간의 관계를 잘 요약하지 못할 수 있습니다.
lifelines에는 적합된 Cox model의 가정을 점검하는 check_assumptions()와 proportional hazard test API가 있습니다. 진단 결과는 자동으로 모델을 고치는 명령이 아니라, 시간상호작용·strata·다른 구조를 검토하라는 신호입니다.
cph.check_assumptions(survival_df, p_value_threshold=0.05)연구 질문으로 돌아가 해석하기
hazard ratio가 1보다 크거나 작다는 사실만으로 사건 확률이나 임상적 유용성을 확정하지 않습니다. baseline hazard, follow-up, censoring, covariate 단위와 proportional hazards 진단을 함께 보고합니다. 관측자료의 Cox 계수는 인과 효과가 자동으로 아닙니다.
자주 생기는 실패
- hazard ratio를 risk ratio나 생존확률로 번역하지 않습니다.
- proportional hazards 진단 없이 전체 기간의 단일 HR을 확정하지 않습니다.
- censoring과 entry time을 숨기지 않습니다.
- warning과 convergence 문제를 결과에서 삭제하지 않습니다.
핵심 정리
- Cox model은 hazard와 covariate 관계를 모델링합니다.
- hazard ratio는 시간·모델·공변량 조건 안에서 읽습니다.
- proportional hazards는 진단해야 하는 가정입니다.
다음 토픽으로
다음 작성 가능 블록은 count matrix·normalization·batch와 오믹스 특수성입니다.
참고 자료
- lifelines CoxPHFitter: https://lifelines.readthedocs.io/en/latest/fitters/regression/CoxPHFitter.html
- lifelines Survival Regression: https://lifelines.readthedocs.io/en/latest/Survival_Regression.html
- lifelines statistics: https://lifelines.readthedocs.io/en/latest/lifelines.statistics.html
본 편의 survival schema와 합성 자료는 BioStatPy가 독립적으로 작성했습니다.