1. 생존 분석 이론
2. Tutorial
3. Advanced
1.생존 분석 이론
- From ChatGPT
Survival Analysis는 시간에 따른 사건(예: 사망, 질병 발생 등)이 일어날 확률을 계산하는 분석 방법입니다. [2] 이를 위해 전문 회귀 모형을 사용하여 실패가 발생하기 전까지의 시간의 길이에 영향을 미치는 다양한 요인들의 기여도를 계산합니다. 이 분석 방법은 생존 곡선을 통해 결과를 시각화할 수 있으며, 이는 시간에 따른 생존율을 보여줍니다. [3] Survival Analysis는 종양학 분야에서 널리 사용되며, Kaplan-Meier 방법을 사용하여 생존 분석을 수행하는 경우가 많습니다. [1]
- Censoring(중도절단)
- 데이터의 측정값이나 관찰치가 부분적으로만 알려진 상태
- Uncensored data: 정확한 생존기간을 파악할 수 있는 온전한 데이터
- Right censoring: 연구 종료 전 기타 이유로 사망하거나, 연구가 만료된 경우
- Left censoring: 연구 시작 전 위험군에 있었던 특정 시점을 모르는 경우(연구 시작전 질환을 보유) 측정한 생존 시간보다 실제 생존 시간이 길어짐
- Kaplan-Meier 추정방법
- Kaplan-Meier(카플란-마이어) 추정방법은 관찰 시간에 따라 사건이 발생한 시점의 사건 발생률을 계산하는 생존 분석 방법
- 미국 통계학자 폴 마이어와 에드워드 카플란에 의해 개발된 생존 함수 추정법
- 콕스 비례위험모형(Cox's proportional hazard model)
- 사건과 사건 사이의 예측 회귀 모형을 만드는 통계법
- ex)흡연여부/몸무게와 같은 관측치(설명변수)와 사망(사건) 사이의 관계를 정립하기 위해 사용
- Kaplan-Meier 분석은 타겟하는 특성 외의 다른 요인들을 통제할 수 없다는 점에서 한계 > Cox 비례위험모형 사용
- 다양한 관측치들을 동시에 통제, 사건 발생에 미치는 영향을 분석하는 다변량 분석법
- 관측치는 서로 독립적, Hazard Ratio(HR;위험비)는 시간에 관계없이 일정하다는 비례위험 가정이 필요
- 해석: HR>1 - 사망위험증가 / HR<1 사망위험감소
2. Tutorial
- packages and sample dataset
library(survival)
library(survminer)
library(dplyr)
data("cancer")
glimpse(ovarian)
- labeling
ovarian$rx <- factor(ovarian$rx,
levels = c("1","2"),
labels = c("A","B"))
ovarian$resid.ds <- factor(ovarian$resid.ds,
levels = c("1","2"),
labels = c("no","yes"))
ovarian$ecog.ps <- factor(ovarian$ecog.ps,
levels = c("1","2"),
labels = c("good","bad"))
# split old age
ovarian <- ovarian %>% mutate(age_group = ifelse(age>=50, "old", "young"))
ovarian$age_group <- factor(ovarian$age_group)
- kaplan-meier
surv_ob <- Surv(time = ovarian$futime, event = ovarian$fustat)
surv_ob
sf1 <- survfit(surv_ob ~ rx, data = ovarian)
summary(sf1)
- visualization
ggsurvplot(sf1, data=ovarian, pval=T)
- resid: yes vs no
sf2 <- survfit(surv_ob ~ resid.ds, data=ovarian)
ggsurvplot(sf2, data=ovarian, pval=T)
- cox proportional hazards model
fit.coxph <- coxph(surv_ob ~ rx + resid.ds + age_group + ecog.ps, data=ovarian)
ggforest(fit.coxph, data=ovarian)
3. Advanced
- 생존분석은 보통 Kaplan-Meier(univariate)로 그래프를 그리고 Cox 비례위험 모델(multivariate)을 사용하여 회귀 모형을 만들어 Hazard Ratio를 구함
- Cox 비례위험 모델은 비례위험(위험도는 시간과 무관하다, 위험함수(x=time, y=HR 그래프)의 기울기가 0)을 가정함
- 비례 위험 모형의 가정 체크: https://3months.tistory.com/357
- 사용된 변수들(covariates)이 비례위험 가정이 만족되지 않는다면 time-varying covariate를 고려하는 방법을 이용해야 편향이 없는 비교적 generalized 회귀 모형을 만들 수 있음
- IPW(Inverse Probability Weighting)를 이용해 중도절단(censoring)으로 발생하는 정보의 손실을 가중치를 통해 조정하는 방법도 있음 http://kasr.skyd.co.kr/survey_SR/21_3_3
- Time-varying covariate를 다루는 방법: Time-dependent Cox model https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6015946/