[SAS] 생존분석 (Survival Analysis) - 다중공선성 및 비례위험가정, Kaplan-Meier Plot

1. 다중공선성

다중공선성은 SAS에서 3가지 옵션을 통해 계산할 수 있다.

주석에 적힌 다중공선성의 기준은 사람마다 다르게 받아들여지기 때문에 참고만 하자.

 

PROC REG DATA=MAIN_TABLE;
MODEL SURVIVED_TIME=AGE SEX DM / VIF; /*VIF, 기준 5 이상*/
RUN;
PROC REG DATA=MAIN_TABLE;
MODEL SURVIVED_TIME=AGE SEX DM / TOL; /*TOL, 기준 0.2 이하*/
RUN;
PROC REG DATA=MAIN_TABLE;
MODEL SURVIVED_TIME=AGE SEX DM / COLLIN; /*CI, 15 이상일 경우 의심*/
RUN;

 

2. 비례위험가정

Cox Proportional Hazard Model을 생성하기 위해 선행되어야 할 것은 비례위험가정인데, 이것은

1. Schoenfeld 잔차 계산
2. ZPH test
3. Kaplan-Meier Plot이 곡선이 겹치는지 (범주형)

위와 같은 방법들을 통해 알아볼 수 있다.

1) Schoendfeld 잔차 계산 (참고자료: https://rpackage.blogspot.com/2021/09/sas.html)

PROC PHREG DATA=MAIN_TABLE;
CLASS SEX DM;
MODEL SURVIVED_TIME*CENSORED(0) = AGE SEX DM;
OUTPUT OUT=SCHOEN_MODEL RESSCH = AGE_RES SEX_RES DM_RES; /*독립 및 보정변수 각각의 잔차 생성*/
PROC LOESS DATA=SCHOEN_MODEL;
MODEL AGE_RES=SURVIVED_TIME/SMOOTH=(0.2 0.4 0.6 0.8); /*나이 잔차 시각화*/
RUN;
PROC LOESS DATA=SCHOEN_MODEL;
MODEL SEX_RES=SURVIVED_TIME/SMOOTH=(0.2 0.4 0.6 0.8); /*성별 잔차 시각화*/
RUN;
PROC LOESS DATA=SCHOEN_MODEL;
MODEL DM_RES=SURVIVED_TIME/SMOOTH=(0.2 0.4 0.6 0.8); /*당뇨병 잔차 시각화*/
RUN;
PROC SGPLOT DATA=SCHOEN_MODEL;
LOESS X=SURVIVED_TIME Y=AGE_RES /CLM; /*나이 잔차 시각화(2)*/
PROC SGPLOT DATA=SCHOEN_MODEL;
LOESS X=SURVIVED_TIME Y=SEX_RES /CLM; /*성별 잔차 시각화(2)*/
PROC SGPLOT DATA=SCHOEN_MODEL;
LOESS X=SURVIVED_TIME Y=DM_RES /CLM; /*당뇨병 잔차 시각화(2)*/

 

2) ZPH test

ZPH test는 Cox PH Model에서 간단한 옵션 추가로 진행할 수 있다.

 
PROC PHREG DATA=MAIN_TABLE ZPH(TRANSFORM=RANK);
CLASS SEX DM;
MODEL SURVIVED_TIME*CENSORED(0) = AGE SEX DM;
RUN;

 

 

3) Kaplan-Meier Plot (범주형 변수로 그룹화)

 
ODS GRAPHICS ON;
PROC LIFETEST DATA=MAIN_TABLE PLOTS=SURVIVAL;
TIME SURVIVED_TIME*CENSORED(0);
STRATA SEX; /*성별로 그룹화*/
RUN;
PROC LIFETEST DATA=MAIN_TABLE ATRISK PLOTS=SURVIVAL(ATRISK CB); /*ATRISK 옵션 추가*/
TIME SURVIVED_TIME*CENSORED(0);
STRATA SEX; /*성별로 그룹화*/
RUN;