Cox 비례위험모형이 적합한지 검토하는 방법은 여러 가지가 있습니다. 기본적인 비례 위험 가정 이외에도 각각의 변수를 넣은 모델이 비례성을 만족하는지 알아보는 Schoenfeld 잔차 (residuals) 분석이 있습니다. 기본적인 분석은 survival 패키지의 cox.zph()를 통해 가능합니다. 앞서 예제를 다시 해보겠습니다. 앞의 예제에서 sex가 비례 가정을 만족시키는지 확실치 않았던 부분이 있습니다. 과연 그래도 진행해도 될지 여기서 답을 구해 보겠습니다.
library(survival)
library(survminer)
kd3<-coxph data="kidney)</span" factor="" sex="" status="=1)~age" ties="efron" time="" urv="">-coxph>
summary(kd3)
cox.zph(kd3)
> cox.zph(kd3)
rho chisq p
age 0.0878 0.524 0.468996
factor(sex)2 0.4363 11.470 0.000707
GLOBAL NA 11.564 0.003083
이 결과를 보면 변수 sex는 비례성을 만족한다는 귀무가설을 기각합니다. (P=0.000707) 따라서 이 변수에 문제가 있을 가능성이 있습니다. 좀 더 자세히 알아보기 위해서 그래프를 그려볼 수 있습니다. 기본 그래프는 plot(cox.zph())입니다. 변수의 숫자 만큼 그래프가 나오므로 한 눈에 보기 위해서는 par(mfrow=c()) 기능을 적절히 사용합니다.
par(mfrow=c(2,2))
plot(cox.zph(kd3))
항상 그렇듯이 잔차는 랜덤하게 분포해야 문제가 없는 것입니다. age는 괜찮은 것 같지만, sex는 남녀 두 그룹으로 분명하게 분리되는 것 같습니다. 좀 더 컬러풀하게 그래프를 보려면 survminer 패키지의 ggcoxzph 기능을 사용할 수 있습니다.
ggcoxzph(cox.zph(kd3))
여기서도 비슷한 결론이 나오는데, 사실 같은 그래프를 좀 다루게 그린 것에 불과해서 큰 차이는 없습니다. 결론적으로 남녀를 비교하기 보다는 사실은 둘을 분리해서 분석하는 것이 더 좋을 수 있다는 것을 시사하는 결과라고 할 수 있습니다. 만약 Schoenfeld 잔차에서 비례성 가정을 만족시키지 않는다면 변수를 제외하거나 아예 분리해서 분석하거나 아니면 변환을 시도하는 것이 타당합니다.
참고
댓글
댓글 쓰기