Hi SAS Community, I am working on a Cox proportional hazards model, and the test of proportional assumption has indicated violations for five covariates. To address this, I am attempting to create time-varying covariates within PROC PHREG in SAS. The issue I am facing is related to the creation of these time-varying covariates. Out of the five covariates, one is continuous, and the remaining four are categorical. However, when I run my code, the SAS log displays an error that 4 categorical Variables are not found. Only the continuous variable is created. Here is my code: proc phreg data=cox_001 covs(aggregate);
CLASS RArace_time1(ref=first) RAEDUC4_time1(ref=last) HwATOTBcd_time1(ref=last) Cohort_time1(ref='3.Hrs')
ragender(ref=last) RWSTROKE(ref=first) RWDIABE(ref=first) RWHEARTE(ref=first) RWHIBPE(ref=first) BMIcd(ref='2.18.5-24.9')
clustervar/ PARAM=REF ;
MODEL Time*event1(0,2)=BLage_time1 RArace_time1 RAEDUC4_time1 Cohort_time1 HwATOTBcd_time1
ragender RWSTROKE RWDIABE RWHEARTE RWHIBPE BMIcd/RL;
if Time lt 7 then do; BLage_time1=BLRAGEY;end; else do;BLage_time1=0;end;
if Time ge 7 then do; BLage_time2=BLRAGEY;end; else do;BLage_time1=0;end;
if Time lt 7 then do; RArace_time1=RArace;end; else do;RArace_time1=0;end;
if Time ge 7 then do; RArace_time2=RArace;end; else do;RArace_time2=0;end;
if Time lt 7 then do; RAEDUC4_time1=RAEDUC4;end; else do;RAEDUC4_time1=0;end;
if Time ge 7 then do; RAEDUC4_time2=RAEDUC4;end; else do;RAEDUC4_time2=0;end;
if Time lt 7 then do; Cohort_time1=RACOHBYR;end; else do;Cohort_time1=0;end;
if Time ge 7 then do; Cohort_time2=RACOHBYR;end; else do;Cohort_time2=0;end;
if Time lt 7 then do; HwATOTBcd_time1=HwATOTBcd;end; else do;HwATOTBcd_time1=0;end;
if Time ge 7 then do; HwATOTBcd_time2=HwATOTBcd;end; else do;HwATOTBcd_time2=0;end;
end;
format RArace_time2 RAracef. RAEDUC4_time2 RAEDUC4f. Cohort_time2 RACOHBYR2f. HwATOTBcd_time2 HwATOTBcd1f.
RArace_time1 RAracef. RAEDUC4_time1 RAEDUC4f. Cohort_time1 RACOHBYR2f. HwATOTBcd_time1 HwATOTBcd1f.;
id clustervar; weight rWtcrnh2sd;
ODS OUTPUT PARAMETERESTIMATES=parest;
run;quit; SAS log: 39 proc phreg data=cox_001 covs(aggregate); 40 CLASS RArace_time1(ref=first) ragender(ref='2.Female') ERROR: Variable RARACE_TIME1 not found. 41 RAEDUC4_time1(ref=last) HwATOTBcd_time1(ref=last) ERROR: Variable RAEDUC4_TIME1 not found. ERROR: Variable HWATOTBCD_TIME1 not found. 42 RWSTROKE(ref=first) RWDIABE(ref=first) RWHEARTE(ref=first) RWHIBPE(ref=first) BMIcd(ref='2.18.5-24.9') 43 Cohort_time1(ref='3.Hrs') clustervar/ PARAM=REF ; ERROR: Variable Cohort_time1 not found. 44 MODEL T_CIND1yr*event1(0,2)=BLRAGEY_time1 RArace_time1 ragender RAEDUC4_time1 Cohort_time1 45 HwATOTBcd_time1 RWSTROKE RWDIABE RWHEARTE RWHIBPE BMIcd/RL; 46 47 if T_CIND1yr lt 7 then do; BLRAGEY_time1=BLRAGEY;end; else do;BLRAGEY_time1=0;end; 48 if T_CIND1yr ge 7 then do; BLRAGEY_time2=BLRAGEY;end; else do;BLRAGEY_time2=0;end; 49 if T_CIND1yr lt 7 then do; RArace_time1=RArace;end; else do;RArace_time1=0;end; 50 if T_CIND1yr ge 7 then do; RArace_time2=RArace;end; else do;RArace_time2=0;end; 51 if T_CIND1yr lt 7 then do; RAEDUC4_time1=RAEDUC4;end; else do;RAEDUC4_time1=0;end; 52 if T_CIND1yr ge 7 then do; RAEDUC4_time2=RAEDUC4;end; else do;RAEDUC4_time2=0;end; 53 if T_CIND1yr lt 7 then do; Cohort_time1=RACOHBYR;end; else do;Cohort_time1=0;end; 54 if T_CIND1yr ge 7 then do; Cohort_time2=RACOHBYR;end; else do;Cohort_time2=0;end; 55 if T_CIND1yr lt 7 then do; HwATOTBcd_time1=HwATOTBcd;end; else do;HwATOTBcd_time1=0;end; 56 if T_CIND1yr ge 7 then do; HwATOTBcd_time2=HwATOTBcd;end; else do;HwATOTBcd_time2=0;end; 57 end; 58 format RArace_time2 RAracef. RAEDUC4_time2 RAEDUC4f. Cohort_time2 RACOHBYR2f. HwATOTBcd_time2 HwATOTBcd1f. 59 RArace_time1 RAracef. RAEDUC4_time1 RAEDUC4f. Cohort_time1 RACOHBYR2f. HwATOTBcd_time1 HwATOTBcd1f.; 60 id clustervar; weight rWtcrnh2sd; 61 ODS OUTPUT PARAMETERESTIMATES=parest; 62 run; NOTE: The SAS System stopped processing this step because of errors. Here are my specific questions: Does the code look correct for creating time-varying covariates, considering that one is continuous and the rest are categorical? is the way I format the created variables correct? Are there any potential pitfalls or improvements that you would recommend? Thank you in advance for taking the time to review my code.
... View more