분석방법 | 적용 | 특징 | 문제 | 수식 |
Wilcox rank test | ||||
KM method | 각 군의자료가 적은경우 | Time to event (발생할 시간)을 예측 | ||
Cox proportional | 제 3의 교란변수를 검정할 때 | 생존시간에 대한 별도의 가정이 없음+ 공변량, 각 변수들이 주어졌을 때 식으로 표현이 가능함 = Semi-parametric |
Time to event (발생할 시간)을 예측 | λ(t|Xi)=λ0(t)exp(Xiβ) |
Cox proportional hazard model
각 i번째 환자(데이터포인트) X가 있다고 하자. Xi=(Xi1,...Xip) 와 같이 표기할 수 있으며 i번쨰 환자의 각 p라는 변수(공변량, covariates)를 의미한다. Cox비례위험모형은 아래와 같이 작성할 수 있다식(2).
λ(t|Xi)=λ0(t)exp(β1Xi1+...+βpXip 식2
이를 Matrix 표기(Xi)로 변경하면 흔히 보는 식이다식3. 보통 이를 hazard function이라고 한다.
λ(t|Xi)=λ0(t)exp(Xiβ) 식3
위의 식을 들여다보면, X가 커지든 작아지든 t보다는 β와 연관이 있다.
1) 즉, 시점이 고정이라면(환자들끼리 같은 조건이라면), X가 커질수록 β가 커져서, 위험이 올라간다고 할 수 있다. 즉 시간에 따라서는 위험에 대한 비율이 일정하게 유지가 된다(비례위험ㄱ자ㅓㅇ)
2) 또한, t에 영향을 받는것은 λ0만 영향을 받기때문에, 시간이 증가할수록 커진다.
그리고, 흔히 위험비(harzard ratio, HR)라고 불리는 위험에 대한 비율(집단A에 대한 집단 B에 대한 이벤트 발생에 대한 비율)을 다음과 같이 구할 수 있다. 위의 hazard function을 A집단에 있는 환자a와 B집단에 있는 환자b에 대해서 적용하고자면 아래와 같이 각각 구할 수 있다.
λ(t|Xa)=λ0(t)exp(β1Xi1a+...+βpXia)
λ(t|Xb)=λ0(t)exp(β1Xi1a+...+βpXib)
위의 두 식을 나누면 아래와 같은 식을 구할 수 있는데, 보면 λ(t)은 없어지고, X,β로만 이뤄져있다. 즉, 시점 T에는 무관하게 위험이 동일하다고 할 수 있다.
λ(t|Xa)λ(t|Xb)=exp(β1Xi1a+...+βpXia)exp(β1Xi1a+...+βpXib)=exp(β(Xa−Xb))
HR=exp(β(Xa−Xb)=exp(β1(Xa1−Xb1)+...+betap(Xap−Xbp))을 의미하고, 각 βp은 Xp에 따른 위험을 의미한다. 만약 다른 환자 a와 환자b가 모든 변수가 동일하고 x1만 다르면 어떻게될까?
λ(t|Xa)λ(t|Xb)=h(t|x1=1)h(t|x1=0)=exp(β1(1−0))=exp(β1)
위처럼 모든 x1 변수만 제외하고 모든 변수가 동일하였을때 계수 β1이 x1가 1단위 변화할때마다 exp(β)한다고 해석하고, 이를 harzard ratio 라고 한다.
Python3에서는 lifelines패키지가 생존분석을 지원하는데, 시각화가 R보다는 약하다. 아래의 예시는 Cox을 이용한 시각화 및 통계플롯인데, CI값이 안나와서 다소 아쉽지만. python3에서 지원하는게 어딘가 싶다. (https://buildmedia.readthedocs.org/media/pdf/lifelines/latest/lifelines.pdf)
from lifelines.datasets import load_rossi
from lifelines import CoxPHFitter
rossi = load_rossi()
cph = CoxPHFitter()
cph.fit(rossi, duration_col='week', event_col='arrest')
cph.print_summary()
cph.plot()
cph.plot_partial_effects_on_outcome(covariates='race', values=list(set(rossi.race)), cmap='coolwarm')

'Data science > Statistics' 카테고리의 다른 글
5분컷이해 임상시험 IIT(intention to treat)이란? (0) | 2022.12.31 |
---|---|
5분컷이해 Latent class analysis (잠재계층분석) 쉬운 이해 (2) | 2022.10.18 |
2. 추론 통계(Inferential statistics) (0) | 2019.02.24 |
1. 확률변수와 확률분포 (0) | 2019.02.17 |